wsl2で使用するために20.04をインストールする方法はありますか?しないMicrosoft Store (または Add-AppxPackage) が動作することに依存しますか?
理由: 私のコンピューターでは Microsoft Store と Add-AppxPackage が壊れており、修復を試みても失敗し、Microsoft の唯一の解決策は「Windows を再インストールする」ことです。これは、単に再生成する方法も、Store 自体をアンインストールして再インストールする方法もないため、です。他の人は、Add-AppxPackage が壊れた Microsoft Store を回避する抜け道ではないことをすでに発見しています。
ちなみに、私はすでに次のコマンドを実行してダウンロードしようとしました:
Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing
Add-AppxPackage .\Ubuntu.appx
残念ながら、次のようなエラー メッセージが返されました。
Add-AppxPackage : Deployment failed with HRESULT: 0x80073CF3, Package failed updates, dependency or conflict
validation.
Deployment Add operation with target volume C: on Package
CanonicalGroupLimited.Ubuntu20.04onWindows_2004.2020.424.0_x64__79rhkp1fndgsc from: (Ubuntu.appx) failed with error
0x80073CF3. See http://go.microsoft.com/fwlink/?LinkId=235160 for help diagnosing app deployment issues.
NOTE: For additional information, look for [ActivityId] 014ee586-6a11-0004-ce43-5001116ad701 in the Event Log or use
the command line Get-AppPackageLog -ActivityID 014ee586-6a11-0004-ce43-5001116ad701
At line:1 char:1
+ Add-AppxPackage .\Ubuntu.appx
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (D:\Downloads\Ubuntu.appx:String) [Add-AppxPackage], IOException
+ FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.AddAppxPackageCommand
イベント ビューアーのエラー メッセージを詳しく調べると、最終的には「Microsoft Store に必要な XML ファイルが何らかの理由で削除され、Windows を再インストールして Store を再インストールしない限り、それを復元する方法はありません」ということになります :-(
とにかく、Microsoft Storeの診断を手伝ってくれる人はいないと思いますが、WSL2用のUbuntu 20.04をインストールする別の方法があればいいなと思っています。必要Windows ストアが動作します。
答え1
WSL が既にインストールされている限り (WSL はストアに依存しないので、問題はないはずです)、wsl --import
サブコマンドを使用して Ubuntu ディストリビューションを「サイドロード」できます。
すでにダウンロードしたパッケージには必要なファイルが含まれていますが、手順を簡素化するために、もう一度ダウンロードしていただきます。もちろん、このレシピを微調整することもできます。
まず、WSL ファイルの場所を選択します。例:
cd $env:USERPROFILE mkdir -p wsl\instances\Ubuntu20_04 mkdir wsl\images cd wsl
Appxパッケージを手動でその
wsl
ディレクトリにダウンロードします。適切な直接リンクからダウンロードするか、ここまたは、あなたの場合は次の方法で:# Assuming we are still in the `wsl` directory created above Invoke-WebRequest -Uri https://aka.ms/wslubuntu2004 -OutFile Ubuntu.appx -UseBasicParsing
結果として得られるファイルは、実際には名前が変更されただけの
.zip
ファイルです。PowerShell でそれを抽出し、上記で作成したディレクトリinstall.tar.gz
に移動しますimages
。# Still in the `wsl` directory Expand-Archive Ubuntu.appx mv Ubuntu\install.tar.gz images\ Remove-Item -Recurse Ubuntu
install.tar.gz
ファイルを に抽出する必要がありますinstall.tar
。PowerShell にも Windows にもこれを行うための組み込み機能がないため、これは好みに任せます。すでに 7-zip のようなものがインストールされていると思います。images\install.tar
の名前を に変更しますimages\Ubuntu20_04.tar
。これは厳密には必要ではありませんが、追加のインスタンスをインストールする場合に備えて、「初期」イメージを保持しておくことをお勧めします。WSL は、メイン インスタンスを破損する恐れなく、潜在的に破壊的なものを試すことができる「使い捨て」インスタンスを起動するのに最適です。ディレクトリ内からの続き
wsl
:wsl --import Ubuntu20.04 instances\Ubuntu20_04 images\Ubuntu20_04.tar --version 2 wsl --set-default Ubuntu20.04 # Optional, and perhaps unnecessary if this is the first distribution installed wsl -u root useradd --create-home --user-group --groups adm,dialout,cdrom,floppy,sudo,audio,dip,video,plugdev,netdev --password "encryptedPassword" username
...もちろん、
username
ユーザー名に合わせて調整してください。ここ暗号化されたパスワードを作成する方法。私の知る限りでは、これにより、Ubuntu 20.04 の Microsoft Store インストールによってデフォルトのユーザーが作成されるのと同じ方法でユーザーが作成されます。
WSL Ubuntu を root として起動します。
wsl -u root
インスタンスの起動時に実行されるデフォルトのユーザーを設定するには、
/etc/wsl.conf
次の内容の を作成します。[user] default=username
...もちろん、ユーザー名を置き換えてください。
PowerShell に戻る
インスタンスをシャットダウンして再起動し、次の内容を読み取れるようにします
wsl.conf
。wsl --terminate Ubuntu20.04
これで完了です。実行すると、wsl
Ubuntu 20.04 がユーザー ID で実行されるはずです。
ここではすべてのステップをエンドツーエンドでテストする機会はありませんでしたが、これは私が過去に行ったことと私が提供した他の回答を組み合わせたものです。必要なすべての要素をまとめたと思いますが、問題が発生した場合はお知らせください。確認して調整します。
答え2
Windows の再インストールが必要と思われる問題を解決するために、Windows インストーラーのいわゆる「インプレース アップグレード」機能を利用しました。この機能は、すべてのファイルとアプリを保持したまま再インストールします。これが役立つかもしれません。このチュートリアルたとえば、詳細については、
今日、私はあなたの主な質問に対する究極の説明を見つけることができました。これは古い投稿なので、他の人がコピーしたものではないのですが: https://superuser.com/questions/1271682/win10-v170 に ubuntu-windows-subsystem-for-linux をインストールする方法はありますか? 最後に、MS でもこれをすべて文書化しています。 https://docs.microsoft.com/en-us/windows/wsl/インストールマニュアル
私の投稿への反対票の数が減ることを願っています。