WSL2 に Ubuntu22 セットアップ
Ubuntu18 で glibc が古くてどうにもならなくなったので重い腰をあげてアップグレードする。すでに WSL2 に Ubuntu18 が動いている状態からスタート。
WSL2 アップデート
管理者権限のPowerShell
管理者権限のシェルを起動する(PowerShellで以下を実行すると、別ウィンドウで管理者権限のシェルが立ち上がる)
$ Start-Process PowerShell.exe -Verb runas
日本語が化ける
PowerShellで日本語を表示するために、ウィンドウの端を右クリックしてプロパティを表示して、フォントタブを選択し「MS Gothic」を選ぶ。
ついでに、文字コードが ascii になっているので、UTF-8 にしておく(日本語表示の文字化けとは直接関係ない)
$ $OutputEncoding.encodingName
US-ASCII
$ $OutputEncoding = [Text.UTF8Encoding]::UTF8
$ $OutputEncoding.encodingName
Unicode (UTF-8)
Windows Update と WSL2の更新
WSL2を更新する。
$ wsl --update
更新をチェック中...
更新をダウンロード中...
更新をインストール中...
この変更は、次回の WSL 再起動時に有効になります。強制的に再起動するには、'wsl --shutdown' を実行してください。
カーネル バージョン: 5.10.102.1
ここで、WSL2でインストールできるディストリビューション一覧を表示( wsl -l -o
)すると、Ubuntu22が出てこない。Ubuntu20だとあと1年くらいしかもたないのでUbuntu22にしたい。
Windows Update を実行して、以下のような環境になった。
- Windows10 Pro 64bit
- バージョン 22H2
- ビルド 19045.3996
- エクスペリエンス Windows Feature Experience Pack 1000.19053.1000.0
- PowerShell
インストールできる一覧
$ wsl --list --online
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.5 openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4 SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed openSUSE Tumbleweed
無事、Ubuntu22がインストールできるようになった。
Ubuntu22インストール
wsl
コマンドで Ubuntu22 をインストール
(当初、Ubuntu18をアップグレードしようと思いましたが、新規インストールに逃げました)
$ wsl --install -d Ubuntu-22.04
インストール中: Ubuntu 22.04 LTS
Ubuntu 22.04 LTS はインストールされました。
Ubuntu 22.04 LTS を起動しています...
しかし、Ubuntu22を起動してみるとエラー
WslRegisterDistribution failed with error
ネットを漁ると、WSL2の有効化(使いはじめに実行したもの)を試してみると直るとある
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
エラーでなくなりました。
YAS!