2024/02/10

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!

サイト内検索