オフライン端末にWSL2+Ubuntuをインストールしたが、はまった部分もあったので備忘録として残す。
オンライン端末での作業
インストーラーの準備
以下のページからWSL2の最新版インストーラー(.x64.msi)をダウンロードする。 github.com
以下のページからを使用したいUbuntu(.AppxBundle)をダウンロードする。 learn.microsoft.com
ダウンロードしたインストーラーをオフライン端末に移動する。
オフライン端末での作業
WSL2のインストール
まずWSL2を有効化する。 管理者権限で以下を実施。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
PCの再起動を行う。
事前にダウンロードしたWSL2のインストーラーを実行し、インストールする。
インストール後に以下を実行して、デフォルトのWSLのバージョンを2に設定。
wsl --set-default-version 2
Ubuntuのインストール
事前にダウンロードしたUbuntuのインストーラーを実行する。
この時、普通にAppxBundleファイルをGUIからインストールすると、そのあとの起動がうまくいかないという現象が発生した。
事象としてはこちらと同様っぽい。
Can't get WSL Linux distros (e.g. Ubuntu) to launch on offline Windows 11 pc - Super User
この場合以下の回避策が見つかった。
https://bwgjoseph.com/a-better-way-to-install-windows-app-bundle-file-in-offline-machine
AppxBundleファイルの中からappxファイルを取り出し、さらにそのappxファイルの中からUbuntuのインストーラー(ubuntu.exe)を取り出し、そのインストーラーを実行することで、インストールできるというもの。
AppxBundleやappxは拡張子こそ違うものの、実態としてはzip形式のようなので、拡張子を.zipにリネームすれば普通に展開できるようだ。
細かい手順としては、
- .AppxBundleを.zipに名称変更
- .zipを展開
- 展開後のフォルダに.appxがあるので.zipに名称変更
- .zipを展開
- 展開後のフォルダにubuntu.exeが存在するのでそれを実行。
注意点として、手順5で作成されるubuntu.exeが存在するフォルダの中身は、初回以降もUbuntuの起動に必要なので、削除してはならない。
インストール自体は以上で終わり。
これ以降はPowershell上からwslと実行すればUbuntuにログイン可能。