WSL2にUbuntuをrootfsからインストールする
UbuntuはMicrosoft Storeからインストールできるため、このページの内容はあまり意味が無いものになります。
特に理由がなければ、wsl —install
コマンドでUbuntuをインストールした方が楽であり確実です。
Ubuntu Baseの入手
UbuntuのrootfsファイルはUbuntu Baseとして公開されています。
複数のアーキテクチャー向けのファイルが公開されていますが、WSL2で使う場合はamd64かarm64のどちらかになります。間違わないように注意しましょう。
WSL2へのインポート
WSL2にUbuntu Baseをインポートする手順はAlpine Linuxと同様です。
ここではWSL2に登録するディストリビューション名をUbuntuとしています。
wsl --import Ubuntu C:\wsl\ubuntu ubuntu-base-24.04.1-base-amd64.tar.gz --version 2
Ubuntuの起動
インポートしたディストリビューションを起動します。起動後のユーザーはrootになります。
wsl -d Ubuntu
パッケージの更新とインストール
パッケージリストの更新と、最新版パッケージへの更新を行います。
apt update
apt upgrade
Ubuntu Baseの初期状態で使えるコマンドが限られているため、後の手順で使うコマンドをインストールしておきます。
apt install vim
systemdの有効化
systemdパッケージをインストールします。
apt install systemd systemd-sysv
/etc/wsl.conf
を作成して、下記内容を記載します。
[boot]
systemd=true
一般ユーザーの追加とsudoの有効化
ユーザーを追加します。
adduser <ユーザー名>
sudoパッケージをインストールします。
apt install sudo
ユーザーのサブグループにsudoグループを追加します。
usermod -aG sudo <ユーザー名>
/etc/wsl.conf
に下記のデフォルトユーザーの設定を追記すると、次回ディストリビューション起動時は指定したユーザーでログインした状態で起動します。
[user]
default=<ユーザー名>
ディストリビューションの再起動
UbuntuからWindowsのコマンドプロンプトに戻ります。
exit
コマンドプロンプトでディストリビューションを停止します。
wsl -t Ubuntu
改めてディストリビューションを起動します。
wsl -d Ubuntu
Dockerのインストール
パッケージマネージャーにもdoskerは収録されていますが、docker公式の手順に沿ってインストールことで最新のdockerを使用できます。
Install Docker Engine on Ubuntu
インストール後に作成されるdockerグループをユーザーのサブグループに追加すると一般ユーザーでdockerコマンドを使用できますが、セキュリティ上の問題があるためにsudoコマンド経由でdockerを使うことが推奨されているようです。