🙄

wslのインストールやセットアップについて

2023/10/14に公開

wslのインストール手順って諸説が多い

歴史的な事情はあるけど、wslがインストールできない時の回避手順をネットで調べると、
みんなやり方がバラバラなので結構振り回される。

NixOSをwslで使うために、wslを有効にする手順をまとめてみた。

環境

  • Windows10以降
  • WindowsUpdateは最新にしておく(Windows10なら、バージョン22H2 以上)
  • PowerShell、またはWindowsTerminalいずれかを起動してコマンド入力を行う

初手、バージョン確認

とりあえず下記を実行

wsl -v         # wslのバージョン情報

この時点でエラーが出たら、後述の「エラー対応」を見てごにょごにょしましょう。

自分が確認した環境は「WSL バージョン: 1.2.5.0」だったので、
バージョン情報が表示されてそれ以下だったら、
wslのアップデートをしましょう。

wslのアップデート

wsl --update

下記がでたら、すでに最新ぽいです。

wsl --update
更新プログラムを確認しています。
Linux 用 Windows サブシステムの最新バージョンは既にインストールされています。

エラー対応

おおざっぱな要因はこんな感じみたいです。

  • Windows の機能の有効化設定 が足りない
  • C:\Windows\System32 にパスが通ってなくて、wsl.exe にアクセスするのにフルパス指定がいる
  • BIOSの設定が足りない
  • PCが古すぎて動かない
  • Windowsのバージョンが古い
  • システムドライブ以外のディスクにインストールした
  • 圧縮と暗号化がされたディスクにインストールした
  • 回避設定はしたけど、Windowsの再起動してなくて設定が反映されてない

調べてみると結構エラーパターンがあるっぽい
全部読むとなかなかのボリュームです・・・。
https://learn.microsoft.com/ja-jp/windows/wsl/troubleshooting

いくつか事例を挙げます。

Windows の仮想マシン プラットフォーム機能を有効に

Windows の仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっていることを確認してください。
Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS.

コントロールパネルの「Windows の機能の有効化または無効化」 を開き、 「仮想マシンプラットフォーム」の設定を有効にします。

(詳細)

Windowsの機能を有効または無効にするには、次の手順を実行します。

  1. 「スタート」ボタンをクリックします。
  2. [コントロールパネル]をクリックします
  3. 「プログラム」をクリックします
  4. Windows の機能の有効化または無効化」をクリックします。
  5. 「仮想マシンプラットフォーム」のチェックボックスをONにします。
  6. 「OK」ボタンを押下
  7. Windowsを再起動します。

WslRegisterDistribution failed

WslRegisterDistribution failed with error 0x8007019e (エラー0x8007019e で WslRegisterDistribution が失敗しました)

Windows の機能の有効化 で、「Windows Subsystem for Linux オプション」が足りない

Windows Subsystem for Linux オプション コンポーネントが有効になっていません。
[コントロール パネル] ->[プログラムと機能] ->[Windows の機能の有効化または無効化] を開いて、[Linux 用 Windows サブシステム] をチェックする

エラー 0x80070003 またはエラー 0x80370102

エラー 0x80070003 またはエラー 0x80370102 で失敗した

BIOS 内部で仮想化が有効になっていない。
または、CPUが古すぎて(Intel Core 2 Duo)、 WSL2の実行に必要なSecond Level Address Translation (SLAT) 機能がサポートされていない(WSL1で頑張りましょう)

Invalid command line option: wsl --set-version

エラー Invalid command line option: wsl --set-version で失敗した
  • Linux 用 Windows サブシステムが有効になっていない(WslRegisterDistribution failed を参照)
  • Windows ビルド バージョン 18362 以降を使用している

急にwslが使えなくなった

BIOSのアップデートで、「知らぬ間にIntel VTが無効化されていた」・・・という原因が多かったです。
これはわからん・・・。
https://github.com/microsoft/WSL/issues/10076#issuecomment-1613455872

参考サイト

シンプルな対応
https://kunassy.com/wsl-install-error/

気合の入った対応
https://learn.microsoft.com/ja-jp/windows/wsl/troubleshooting

Discussion