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はまた明日にしよう。。。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)