4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ぽんぬの個人的Advent Calendar 2023

Day 2

WSLのインストールエラーの時に確認すること

Last updated at Posted at 2023-12-10

はじめに

WSLでubuntuなどのディストリビューションをインストールしようとすると、以下のようなエラーが出ることがあります。
このエラーの原因は多岐にわたり、なかなか状況を改善できないことが多いです。
そういう時に、以下の内容を確認してみてください。

Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0xXXXXXXXX
Error: 0xXXXXXXXX ??????????????????????????????????????

確認すること

管理者権限のPowerShellで実行しているか?

そもそもですが、WSLをインストールする際は、管理者権限を持つPowerShellで実行する必要があります。

Windows Updateが溜まっていないか?

Windowsのバージョンが古い場合、WSLが正常に動作しないことがあります。
更新プログラムを確認して、適応していないパッチがある場合はWindows Updateをインストールしてください。

BIOS/UEFIのバージョンが古くないか?

古いBIOS/UEFIバージョンでは、仮想化機能や関連する機能が正しくサポートされていないことがあります。
自身のPCメーカーのサポートページから最新のBIOS/UEFIアップデートを確認し、アップデートを行ってください。

CPUの仮想化機能が有効になっているか?

BIOS/UEFI設定画面で、仮想化機能(Intel VT-xまたはAMD-V)が有効になっていることを確認してください。
Intel製CPUの場合は「Virtualization Technology」、AMD製CPUの場合は「SVM Mode」といった名前で表示されます。

マザーボードのメーカーによってBIOS内の項目の場所は異なりますが、大体以下のようになっているはずです。

Intel製:
「System Configuration」->「Virtualization Technology」->「Enabled」

AMD製:
「Advanced」 -> 「CPU Configuration」 -> 「SVM Mode」->「Enabled」

Hyper-Vは有効になっているか?

WSL 2を利用するためには、Hyper-Vが有効になっている必要があります。コントロールパネルの「プログラムと機能」から「Windowsの機能の有効化または無効化」に移動し、Hyper-Vを有効にしてください。

以下のコマンドでHyper-Vを有効化できます。

dism.exe /online /enable-feature /featurename:HypervisorPlatform /all /norestart

※PCの再起動が必要です。

WSLのバージョンが2になっているか?

WSL 2を利用するには、適切なバージョンにアップグレードする必要があります。以下のコマンドを使用してWSL 2にアップグレードできます。

# インストールされている各ディストリビューションのバージョンを確認
wsl --list --verbose

# 上記でバージョンが1となっているものがあれば、バージョンを2に変更する
wsl --shutdown
wsl --set-version <ディストリビューションの名前> 2

WSLのバージョンが古くないか?

以下のコマンドで、WSLを最新化できます。

wsl --update

PC本体のメモリは足りているか?

WSLはメモリを多く消費します。タスクマネージャーなどで確認して、十分なメモリ量が使用可能であることを確認してください。
PC本体のメモリ上限にもよりますが、大体2GB~4GB程度消費されます。

PC本体のストレージは足りているか?

WSLはかなりのストレージ容量を占有します。十分な空き容量を確保してください。
WSL本体は約1GB程度で、ubuntuなどのディストリビューションは5, 6GBほど占有します。
ディストリビューション内でDockerを使用している場合は、いつの間にか100GBを超えているなんてこともあるので注意しましょう。

以下のコマンドで、指定したディストリビューションの容量を確認することが出来ます。
Usedが占有している容量です。

wsl --system -d <ディストリビューションの名前> df -h /mnt/wslg/distro

# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sdc        251G   42G  197G  18% /mnt/wslg/distro

それでも解決しない場合

以上のことすべてを確認しても状況が改善しない場合は、WSLの再インストールをしてみるのも1つの手です。

以下の3機能を1度無効化した後に、再度有効化します。

  • 仮想マシンプラットフォーム
  • Linux 用 Windows サブシステム
  • Windows ハイパーバイザー プラットフォーム
# 機能を無効化
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
dism.exe /online /disable-feature /featurename:HypervisorPlatform /norestart
# PCを再起動
Restart-Computer -Force

# 機能を有効化
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:HypervisorPlatform /all /norestart
# PCを再起動
Restart-Computer -Force

参考

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?