Windows Subsystem for Linux の手動インストールをリセットするにはどうすればよいですか?

Windows Subsystem for Linux の手動インストールをリセットするにはどうすればよいですか?

関連している:ストアを使用せずに Win10 (v1709) に Windows Subsystem for Linux をインストールする方法はありますか?

WSLディストリビューションをインストールする場合Microsoft Store の (たとえば、制限されたネットワークでは、リンクを参照してください) 場合、そのディストリビューションを操作するための標準的な手段の多くが利用できません。私の例では、[設定] > [アプリと機能] に移動すると、ディストリビューションがリストに表示されず、管理機能が利用できません。手動でインストールした Linux インスタンスが不良な状態になった場合、それをリセットして新規インストールに戻す正しい方法は何ですか?

編集: これまでに遭遇した「悪い状態」の例には、「apt-get update」中に BSOD が発生し、回復不能な状態になることがあります。また、問題のトラブルシューティングのために複数の構成変更を実行し、サービスを削除または無効化し、変更内容を厳密に追跡せずに他のパッケージをインストールし、「最初からやり直して」、到達した解決策が実際に単独で機能するかどうかをテストしたいという願望もあります。

答え1

手動でインストールした Linux インスタンスが不良な状態になった場合、それをリセットして新規インストールに戻す正しい方法は何ですか?

Windows 10 バージョン1903を実行している場合:

wsl --unregister <DistributionName>

Windows 10 バージョン 1709、1803、または 1809 を実行している場合:

wslconfig /unregister <DistributionName>

Windows Subsystem for Linux の管理と構成

答え2

使用することができますチョコレート(たとえば、プライベート NuGet リポジトリを使用)、次の Debian イメージを選択します。

choco install wsl-debiangnulinux

しかしその後

  • 「WSL ターミナル」や「Debian ターミナル」のようなショートカットのみが利用可能です。
  • ユーザー作成のプロンプトは表示されず、ルートシェルのみが起動されます。
  • 「設定/アプリと機能」にWSL用のLinuxディストリビューションが見つからないため、「詳細オプション」や「リセット」は表示されません。

ちなみに、wslコマンドラインは利用可能ですが、手動でユーザーアカウントを作成し(ディストリビューションに応じてuseraddまたはadduser)、sudo(sudoグループまたはsudoers)を付与し、セクション/etc/wsl.confで作成する必要があります。[user]default=yourlogin-wsl-configドキュメント。私の場合は<distribution> config --default-user yourlogin効果がありませんでした。

完全な停止が発生した場合、唯一のオプションは次のシーケンスを実行するようです:

wsl --export <distribution> wsl-backup-<distribution>.tar
wsl --unregister <distribution>
choco install wsl-<distribution>
wsl --import <distribution> wsl-backup-<distribution>.tar

インポートしたファイルで問題が発生しないことを願っています。

答え3

警告:以下の情報は、WSLでのディストリビューションの「手動インストール」に関する質問であるため、完全に公式に文書化されているわけではありません。したがって、手順は次のようになります。少し違う将来の Windows 10 リリースで。

まず、これを理解するには、Windows ストア経由でディストリビューションをインストールする場合と手動でインストールする場合の違いを知る必要があります。Windows ストアは、Windows のパッケージ マネージャーと考えてください。インストール、アンインストール、更新されたすべてのパッケージを監視します。そのため、設定メニューにはインストールされているアプリの一覧があります。ディストリビューションがインストールされると、Appx パッケージ (ZIP アーカイブ) として提供されます。そのパッケージには、そのディストリビューションの rootfs tarball (GZIP tar ファイル) (例install.tar.gz)、ランチャー実行可能ファイル (例ubuntu.exe)、およびその他のものが含まれています。

ランチャーが最初に実行されると、tarball が抽出され (tar -xfコマンドのように)、レジストリ キーにレジストリ エントリが作成されますHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{GUID}。このレジストリ キーは、ディストリビューションがインストールされている場所、既定のユーザーなどを指定する重要なものです。

ディストリビューションがインストールされると手動でこの同じレジストリ キーが作成されますが、ベースパスなどが異なります。この手動の手順は Windows ストア経由では実行されないため、設定アプリには表示されません。ただし、wsl.exe --list --allコマンドを使用すると、WSL にインストールされているすべてのディストリビューションを表示できます。この方法では、ランチャー実行ファイルは取得されませんが、 ですべての操作を実行できますwsl.exe

どうすれば「悪い状態」からリセットできるでしょうか?UNIXの世界に精通しているなら、WSLのディストリビューションを次のように想定してください。chroot 環境。 いつもWSLディストリビューションをバックアップする実際の Debian ベースのディストリビューションでは通常、パッケージを修正するために次のコマンドを実行します。

sudo dpkg –configure -a
sudo apt update –fix-missing
sudo apt install -f

それでも問題が解決しない場合は、アンインストールして再インストールすると解決する場合があります。ほとんどのユーザー固有の構成がそこに保存されるため、/homeフォルダーをバックアップすることをお勧めします。次に、コマンドを使用してディストリビューションをアンインストールします。前のコマンドはルートフォルダー全体を削除するため、バックアップはユーザーにとって重要になる可能性があります。これで、通常どおり、新しいディストリビューションをインストールし、以前のバックアップフォルダーを抽出できます。tar -czfwsl.exe --unregister <Distribution Name>//hometar -xf

答え4

これを試して:

wsl --set-default-version 2

インストールされているディストリビューションに応じて wsl のバージョンを設定することもできます。

wsl --set-version Ubuntu-20.04 1

関連情報