WSLをシステムドライブ以外にインストールする(2020年版)_ArchLinux版

ArchLinuxをWSL2環境に

色々と見てるとArchWSLとかを紹介して導入しているのは見るんですけど、
未だにimportでやってるのは海外のスレッドぐらいでしか見たことないんですよね。。。
なんで標準でやらないんだろう、と

ということで、なにはなくとも、まず公式からtarballを取得します。
ちなみに、準備段階ではWSLの環境で実施します。
wget http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/iso/2020.06.01/archlinux-bootstrap-2020.06.01-x86_64.tar.gz

そして解凍
sudo tar -xzf archlinux/iso/2020.06.01/archlinux-bootstrap-2020.06.01-x86_64.tar.gz
※sudo付けるように

中身を再度tar.gzに固める
cd root.x86_64
sudo tar -czvf ArchLinux.tar.gz .
※ここもsudo

作成したファイルをWindows側に持っていき、import
wsl –import ArchLinux D:\WSL\ArchLinux .\ArchLinux.tar.gz

環境に入ります
wsl -d ArchLinux

rootにて環境に入れれば完了です。
後は
pacman-key –init
pacman-key –populate archlinux
pacman-mirrorlistを編集して、pacmanを自由にして自由な環境へ。。。

※ユーザー追加などは基本的にはUbuntuと一緒なので割愛

WSLをシステムドライブ以外にインストールする(2020年版)

約2年前、LxRunOfflineを使わせてもらって、WSL環境をCドライブ以外にインストールする方法を書いた
http://fumiword.azurewebsites.net/2018/09/18/wslinstall/

WSLもimport機能等、標準で付いたのでそろそろLxRunOfflineを卒業できるだろう、ということで、今回の記事

さて今回の目標としては、
・WSL2環境にUbuntu20.04をtarballからDドライブにインストール
・ついでにArchLinuxもtarballからインストール

基本WindowsStoreからダウンロードしてWSL環境を整えれば良いと思うのだが、
未だにCドライブにしかインストールを許可していないという状況。
(一度インストールして、export、importという手段もあるにはあるが二度手間感半端ない)

ということで、最初からimportする手段を行う。

・Ubuntuのtarball取得
今回は以下のURLから取得することとする
https://partner-images.canonical.com/core/
trustyからfocalまであるので今回は以下からimg取得

https://partner-images.canonical.com/core/focal/current/ubuntu-focal-core-cloudimg-amd64-root.tar.gz

・UbuntuのImport

取得したtar.gzを、以下コマンドでimportする
wsl –import Ubuntu D:\WSL\Ubuntu ubuntu-focal-core-cloudimg-amd64-root.tar.gz

※元ファイルが26MBしかないので一瞬で終わるはず
展開後のフォルダを見ても80MB弱

・一応WSL2となっているか確認
以下コマンドでVersionを確認
wsl -l -v

もし、Versionが2でなく1の場合は、以下コマンドで変換
wsl –set-version Ubuntu 2

また、Version1になっていた場合、デフォルトでVersion2にしておきたい場合は以下コマンドをたたいておく
wsl –set-default-version 2

・環境に乗り込む
wsl -d Ubuntu

rootで入ると思うので一旦環境を最新化
(currentから取っているはずなのでAll packages are up to date.が表示されるはず)
apt update

もし、何かしらのupdateがあるならupgradeするかはよしなに。。。

・デフォルトユーザー変更
今のままだとrootでWSL環境に入るので、
ユーザー追加をしておき、sudo設定をする。
そしてデフォルトユーーザ変更をレジストリから変える。
なんでwslconfigコマンドにないんだろうか・・・wsl -uとかあるから多分必要でないと思っているんだろうなぁ

・ユーザー追加
adduser fumi
※uidは後々必要になるのでメモ・・・まぁ1000のはずだが。

・sudo設定
sudoが多分入ってないので、apt install sudo
gpasswd -a fumi sudo

別ユーザーでログインした後、su -とかしたい場合、
現在rootユーザーにはパスワード設定がないので出来ないと思われる
その場合は、passwdコマンドでパスワード設定をしておくこと

・レジストリでデフォルトユーザー変更
Win+Rからregeditでレジストリエディタ起動

wslの各Distro情報は以下に格納されている
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss

DistributionNameで今回入れたUbuntuを特定し、
DefaultUidの値を変更する
今回は0から1000(16進数では3e8)に変更
これで環境に入りなおせば該当ユーザーになっているはず

ちなみに・・・
WindowsTerminalを個人的に使用しているのだが、
このままだと環境に入った際、初期ディレクトリがwsl環境内ではなく/mnt/c/配下とかになっているかもしれない。
その場合はsetting.jsonの今回のdistro設定群に以下を追加すると良い具合となる。
“commandline”: “wsl.exe ~ -d Ubuntu”

ということで、一旦ここまで。
後は日本語化するなりなんなりと。
lessやviすら入ってないので自分の好きなものを入れること

ArchLinuxはまた明日にしよう。。。