WSL2にUbuntu 23.10をインストールしてみた

2023.10.19

こんにちは。CX事業本部Delivery部のakkyです。

先日、Ubuntu 23.10 Mantic Minotaurがリリースされました。このリリースはLTSではないので運用には使いづらいですが、ツールが新しくなっているので開発環境で使うのには良さそうです。

さっそく開発で普段使っているWSL2環境で使ってみたいと思ったのですが、あいにくまだWSL用パッケージが公開されていません。

そこで今回は、rootfsから新しいディストリビューションを導入する方法を試してみましたので、ご紹介します。 以下のMicrosoft公式のドキュメントを参考に作業しました。

検証環境はWindows 10 Pro 22H2です。WSL2がデフォルトの環境で作業しました。

Ubuntu 23.10のダウンロードとインポート

まず、Ubuntu 23.10の最新デイリービルドからrootfsをダウンロードしてきます。

https://cloud-images.ubuntu.com/mantic/current/mantic-server-cloudimg-amd64-root.tar.xz

こちらはxz形式なので、7zipなどで解凍しtarを取り出しておきます。(tarの中身まで完全に展開する必要はありません)

次に、仮想マシンのディスクイメージを保存するフォルダを作っておきます。場所はどこでもよいはずですが、今回はユーザープロファイル(C:\Users\ユーザー名)に作ります。Windowsのコマンドプロンプトで作る場合は以下のようにします。

cd %USERPROFILE%
mkdir Ubuntu23.10

rootfsをWSLにインポートします。.tarのあるディレクトリで次のコマンドを実行します。

wsl --import Ubuntu23.10 %USERPROFILE%\Ubuntu23.10 .\mantic-server-cloudimg-amd64-root.tar

私の場合は数秒でインポートできましたので、以下のコマンドで起動します。

wsl -d Ubuntu23.10

一般ユーザーの設定

このままではrootユーザーで使うことになりますので、一般ユーザーを追加してsudoで昇格するように設定を変更します。

/etc/wsl.confファイルにデフォルトのユーザー名を指定することで、今回新たに作成するユーザー(今回で言うとakky)が使われるようにします。マイクロソフトのドキュメントの例はCentOSなので、Ubuntuとは微妙にコマンドが異なります。useraddに関する参考ページ

この作業はUbuntuで行います。

useradd -m -s /bin/bash akky
usermod -aG sudo akky
passwd akky
echo -e "[user]\ndefault=akky" >> /etc/wsl.conf

WindowsのコマンドプロンプトでUbuntu23.10をシャットダウンし、再び起動します。これで一般ユーザーでログインされるようになりました。

wsl --shutdown Ubuntu23.10
wsl -d Ubuntu23.10

なお、一般ユーザーがsudoグループに入っていない状態で起動してしまうとシステムファイルが変更できなくなってしまいますが、その際には以下のコマンドをで起動するとrootでログインしなおせます。

wsl -d Ubuntu23.10 -u root

OSのバージョンがきちんと23.10になっていることを確認できました。

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 23.10"
NAME="Ubuntu"
VERSION_ID="23.10"
VERSION="23.10 (Mantic Minotaur)"
VERSION_CODENAME=mantic
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=mantic
LOGO=ubuntu-logo

以上