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
情報
systemd-sysvパッケージをインストールしておかないと、後述のwsl.confでのsystemd有効化後にディストリビューションが起動しなくなります。

/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を使うことが推奨されているようです。

<<OWASP ZAPのコンテナを日本語対応させる 開発コンテナー(Dev Containers)でRails開発環境を準備する>>