WSL2アンインストール時でやってはいけないこと
はじめに
はじめまして。Webエンジニアを目指している非エンジニアのオオカミコウタです。
技術学習のアウトプット場所を元々GitHubにしていたのですがZENNのようなプラットフォームに書いた方が身になると思い、今日から出来る限り頻繁にZENN記事を投稿したいと思います。よろしくお願いします。
さて今回はWSL2のアンインストールの記事ですが、皆さんも知っての通り中々の曲者です。
そのためアンインストール方法は他記事でほぼ体系化されているため、今回の記事ではあまりその話はせずに
無謀にもやってはいけないことをやったアホこと私と、そのパソコンで何が起きたか
を中心に書きたいと思います。
筆者の環境
- OS : Windows11 24H2 64bit
- CPU : Intel i5 13700K
- VS code
基本的にWindows向けの記事になります。
WSL2のアンインストール手順
色々書く前に一応WSL2の正しいアンインストール方法を出します。
が、私より詳しく書いている人も居るので詳しくはご自身で検索してください。
WSL2のシャットダウン
wsl --shutdown
WSL上でのコマンドではなくwindowsターミナル等で実行してください
インストール済みLinuxディストリビューションの登録解除
まず、インストールされているディストリビューションの一覧を確認しましょう。
wsl -l -v
次に、一覧に書かれていたディストリビューションの名前で登録解除(unregister)します。(デフォルトはUbuntuなはず)
wsl --unregister Ubuntu
複数のディストリビューションをインストールしている場合は、それぞれに対してこのコマンドを実行してください。
アプリ一覧からディストリビューションをアンインストール
コマンドでの登録解除が終わっても、Windowsの「アプリと機能」の一覧にはまだディストリビューション(Ubuntuなど)が残っている場合があります。
念のため、こちらもアンインストールしておきましょう。(Ubuntuなど)
WSL2関連のWindows機能を無効化する
WSL2は、Windowsの追加機能として動作しています。そのため、WSL2自体を完全に無効化するには、これらの機能をオフにする必要があります。
- スタートメニューの検索ボックスに「Windowsの機能の有効化または無効化」と入力し、表示されたコントロールパネルを開きます。
- 一覧の中から以下の2つの項目のチェックを外します。
- Linux 用 Windows サブシステム
- 仮想マシン プラットフォーム
- 「OK」をクリックすると、機能の無効化が始まります。処理が完了したらPCの再起動を求められますが、後の手順をすべて終えてから行うので一旦無視します
関連アプリケーションのアンインストール
最後に、アプリと機能からWSL2の管理用アプリケーション(Windows Subsystem for Linux)などがインストールされている場合は、それも削除します。
全部終わったら再起動で以上になります。
お疲れ様でした。
【警告】絶対にやってはいけないこと
さて、ここからが本題です。
Windowsのソフトウェアは、アンインストールしてもレジストリやフォルダの奥深くに設定ファイルの「ゴミ」が残りやすい、という特性があります。
WSL2も上記の手順を踏まずに削除しようとすると結構データが残ります。
だからといってこれから下記に記載することを実施するのはやめましょう。私は結構大変な目に遭いました。
やってはいけないこと1:GeekUninstallerなど強力なアンインストーラーの使用
「GeekUninstaller」や「Revo Uninstaller」のような、プログラムの残骸やレジストリエントリまで根こそぎ削除してくれる強力なアンインストール支援ツールがあります。
通常のアプリケーションの削除では非常に便利ですが、OSに近い環境で動作するWSL2にこれらを使用するのはやめましょう。思わぬ不具合が発生する可能性があります。
やってはいけないこと2:「Everything」などでのファイル検索と手動削除
同様に、ファイル検索ツール「Everything」などを使って、「WSL」や「Ubuntu」といったキーワードでPC内を検索し、ヒットしたファイルを片っ端から手動で削除する行為もやめましょう。
システムに重要なファイルも削除してしまい、結果としてWSLが起動しなくなります。
何が起きたかとその解決
私に起きたのはWSL2のインストールのためのコマンド入力が効かなくなったことと、VSCodeのWSL2拡張機能がゾンビ化したことです。
まずwsl --install コマンドを実行しても、「WSL?知りませんけど」とエラーを吐きました。
公式サイトからWSL2のカーネル更新プログラムパッケージをダウンロードして実行し、結果的にはこれでWSLコマンドが機能したので通常通りにインストールしてなんとか復活しました。
ゾンビ化についてはVS code上の拡張機能のアンインストールができなくなる不具合でした。
アンインストールボタンを押しても反応しない状態になっていました。無効化も不可だったのでゾンビ化した状態でした。
当然、新しいWSL環境を(もしインストールできたとしても)認識してくれるはずもなく、開発作業に必須のツールが全く使い物にならなくなってしまいました。
まず、ゾンビ化した拡張機能をどうにかするため、VSCodeのクリーンインストールを実施しました。
通常のアンインストールでは設定ファイルが残ってしまうため、以下のフォルダを手動で完全に削除する必要があります。
- VSCodeをアンインストールする。
- エクスプローラーで以下の2つのフォルダを開き、中身を完全に削除する。
C:\Users\あなたのユーザー名\.vscode-
C:\Users\あなたのユーザー名\AppData\Roaming\Code
(AppDataは隠しフォルダなので、表示設定をオンにしてください)
これらのフォルダには、拡張機能や個人の設定がすべて保存されています。これを削除することで、VSCodeをまっさらな状態で再インストールできます。
もしVSCodeがどうにもならなくなったら、このあたりをお試しください。
まとめ
WSL2は非常に強力で便利なツールですが私の二の舞いにならないように以下の点には注意してください。
- アンインストールは慎重に
- GeekUninstallerのような強力なアンインストーラーを使う場合は注意する
- 手動で関連ファイルと思われるもののを検索して削除するようなこともしない
まあそんな感じで私のエンジニア人生の最初の最初で出てきた地獄のセットアップでしたがまあこういうこともあるよねとは思いました。
これから毎日とは言いませんが定期的にこういった形でアウトプットをしたいと思います。
重ね重ねよろしくお願いします。
Discussion