ある日突然 Windowsのubunts が起動しない…
いつも通り Windowsで Ubuntu を使おうとしたら、こんなエラーに遭遇しました:
ディスク 'C:\Program Files\WSL\system.vhd' を WSL2 にアタッチできませんでした: 指定されたファイルが見つかりません。
エラー コード: Wsl/Service/CreateInstance/CreateVm/MountVhd/HCS/ERROR_FILE_NOT_FOUND
Press any key to continue..
自分は特にアップデートや設定変更をしていないのに、突然このエラーが出るようになりました。
調べたところ、system.vhd ファイルが存在しない、もしくは壊れていることが原因のようです。
この記事ではこの問題の簡単な復旧方法をご紹介します。
環境
OS:Windows 11
状況:Windows で Ubuntu を起動しようとしたときにエラー発生
エラー内容:system.vhd が存在しない旨のエラー
原因
C:\Program Files\WSL\system.vhd という仮想ディスクが何らかの理由で削除または破損してしまい、WSL2 が起動できなくなっている状態です。
解決手順
以下の手順で、system.vhd を復元し、WSL2 を再度正常に動作させることができました.
1. system.vhd が存在しないことを確認
まずは以下のパスにファイルがあるか確認します:
C:\Program Files\WSL\system.vhd
2.公式 GitHub リポジトリから、最新の WSL の .msi インストーラをダウンロード
ページ内の「Releases」から2.4.13を探してダウンロードします。
3. 適当な作業ディレクトリに移動
ダウンロードフォルダにある「wsl.2.4.13.0.x64.msi」を
C:\wslErrorFolder にファイルを移動します。
wslErrorFolderは自分で作成したフォルダです。
4. コマンドプロンプトを起動
次のコマンドで .msi を展開します:
msiexec /a C:\wslErrorFolder\wsl-2.1.5.0.msi /qb TARGETDIR=C:\wslErrorFolder\wsl
TARGETDIRで指定した場所に展開できます。任意の場所で大丈夫です。
5. 展開された中から system.vhd を探す
以下のパスにあるはずです(x64 の場合):
C:\wslErrorFolder(任意のフォルダ)\wsl\PFiles64\WSL\system.vhd
6. system.vhd を元の場所にコピー
最後に、system.vhd を次の場所にコピーします:
copy C:\wslErrorFolder\wsl\PFiles64\WSL\system.vhd "C:\Program Files\WSL\"
7. WSL を起動して動作確認
もう一度 Ubuntu などの WSL を起動して、正常に動作するか確認します
お知らせ
この方法は WSL の完全な再インストールではないので、既存のファイルやフォルダが削除されることはありません。
注意
万が一に備えて、WSL のバックアップはとることをおすすめします。