💔

起動しなくなったWSL2を復活させるまでにしたあれこれ

2022/02/25に公開

WSL2が何もしていないのに(カーネルビルドしたら)壊れた

WSL2でカーネルビルドとかしていたらUbuntuが一切立ち上がらなくなりました。

Ubuntuを再インストールしても以下のようなエラーが出続けます。

仕方なく復帰を試みることにしました。

無事復帰するまでの試行錯誤です。

Ubuntuアンインストール

「アプリ -> アプリと機能」からUbuntuをアンインストールします。軽症だったら、リセットするだけで復帰するみたいです(リセットは詳細オプションから選択できます)。私はダメだったのでアンインストールしました。

WSL2無効化→有効化

Ubuntuアンインストールでダメな場合(ダメでした)、WSL2を一回機能をオフにして再起動します。

「コントロールパネル -> プログラム -> Windowsの機能の有効化または無効化」を選択します。

「Linux用Windowsサブシステム」のチェックを外して再起動します。

再起動したら再度「コントロールパネル -> プログラム -> Windowsの機能の有効化または無効化」を選択して、「Linux用Windowsサブシステム」のチェックをつけて再起動します。

再度Ubuntuをインストールすれば復帰するはず…が無慈悲なWslRegisterDistribution failed with error

その他の試行錯誤

ネットで効果があったと書かれているコマンドを試します。管理者権限でPowerShellを起動して、以下コマンドを実行します。

sfc /scannow
dism /online /cleanup-image /restorehealth

意味はわかっていませんが、色々いい感じにクリーンナップしてくれるようです。これも効果なし

.wslconfigを退避して復帰

絶望しかけて、症状をツイートしてふて寝していたところに神(@PINTO03091氏)の声が!

https://twitter.com/PINTO03091/status/1496837929251270664

これだと思いc:\Users\<user name>以下にある.wslconfigを退避(適当な名前に変更)したところ、今までの苦労が嘘のようにあっさり復活。

WSL環境のバックアップ

他、export/importを使ったWSL環境のバックアップ方法も教えていただきました。次は使ってみたいです(今回Ubuntu環境をぶっ飛ばしてしまいました…)

https://forest.watch.impress.co.jp/docs/serial/yajiuma/1220926.html

https://twitter.com/ko_noike/status/1496841608507293702

指定されたファイルの仮想ディスク サポート プロバイダーが見つかりませんでした

「指定されたファイルの仮想ディスク サポート プロバイダーが見つかりませんでした」と表示されて起動できないときがありました。

Windowsアップデートが来ていたのが気になって、Windowsを何回か再起動したら直りました。謎。

まとめ

WSL2を復帰するまでの試行錯誤をまとめました。

もともと @PINTO03091 さんの以下記事のやつをやりたかっただけなのですが、訳わからずコピペしてたのがダメでしたね。

https://zenn.dev/pinto0309/articles/7c7ce81bea8b6c

今見直して、なんでダメだったか完全に理解しました。また再チャレンジしようと思います。

参考リンク

https://minus9d.hatenablog.com/entry/2018/12/29/105151

https://github.com/microsoft/WSL/issues/3828

関連記事

https://zenn.dev/karaage0703/articles/211d89cc0a29a1

Discussion