WSLを標準ユーザーで使おうとした際にWsl/Service/E_UNEXPECTEDが出たときの対処

Linux

今回は、WSLを既に管理者が使っているPCにおいて、標準ユーザーでも使えるようにしようとした際に地味に躓いたので、覚書も兼ねて対処法を紹介します。

なお、ここで言う標準ユーザーというのはWSLの中でのユーザーのことではなく、Windowsユーザーのことを指します。(念のため)

また、既に管理者がWSLを使っているというのは「Linux用Windowsサブシステム」の有効化などは既に済ませている前提となりますので、この辺については割愛いたします。

Windowsの情報

項目内容
エディションWindows 11 Home
バージョン25H2
OSビルド26200.8875

躓いた点

まず、コマンドプロンプトを開いて次を実行。

wsl -l -v

下記のようにディストリビューションが登録されていないと出たので、

Windows Subsystem for Linux has no installed distributions.

標準ユーザー用にUbuntuをインストールします。

wsl --install -d Ubuntu

本来であれば、しばらくインストール処理が走って完了した後、ユーザー情報の初期化(パスワード設定とか)をするはずのところで何も出ずに終了してしまいました。

ディストリビューションが正常にインストールされました。'wsl.exe -d Ubuntu' を使用して起動できます。

という文言は出ています。

次のコマンドを実行すると、

wsl -d Ubuntu

下記エラーが出て起動できません。

致命的なエラーです。
エラー コード: Wsl/Service/E_UNEXPECTED

私の場合は、管理者アカウントでは何の問題もなく起動できる状態でした。

色々調べて試してみたところ、結論としては案外簡単な操作で解決できました。

結論

私の場合は、下記操作を行うことで無事起動できるようになりました。

PowerShellを管理者として実行します。(コマンドプロンプトではありません)

次を実行します。

wsl --update

続いて下記を実行します。

wsl --shutdown

そして、Windows PCを再起動します。

やることは簡単なのですが、これに気付くのに地味に時間を要したので、同様の現象が起きている方は参考にしてみてください。

付録

その他、試してみたことを記載しておきます。

上記結論の内容で解決できなかった場合は、一度試してみるのもよいかもしれません。

ディストリビューションの再登録

標準ユーザーでインストールする際に、何らかの理由でUbuntuの登録情報が壊れた可能性があります。

標準ユーザーでコマンドプロンプトを開き下記を実行します。

wsl --unregister Ubuntu

正常に終了したら、再インストールします。

wsl --install -d Ubuntu

これでユーザー情報の初期化まで進むか確認します。

Ubuntuの状態を確認

Ubuntuのインストール後に、正常にインストールが出来ているか確認します。
PowerShellで下記コマンドを実行。

wsl -l -v

下記のように出力されればOKです。

  NAME      STATE           VERSION
* Ubuntu    Stopped         2

もし、下記のようになった場合は、ディストリビューションが何も登録されていない状態です。

Windows Subsystem for Linux has no installed distributions.

おわりに

今回は、WSLを標準ユーザーで使用する際の躓きポイントについて扱いました。普段使いはWindowsにしたいけどLinuxも使いたい方にとってWSLはとても便利な機能です。

ただ、WSLを初めて使おうと思った際に、OSのバージョンによって設定やインストール方法が異なったり、ディストリビューションをコマンドかMicrosoft Storeからインストールしたかで状態が変わったりもするようなので、PCを新調する際はスムーズに導入できるか少し緊張しますね。

以上、最後まで読んでいただき、ありがとうございました。