如果 Microsoft Store 無法正常執行,請為 wsl2 安裝 20.04?

如果 Microsoft Store 無法正常執行,請為 wsl2 安裝 20.04?

有沒有辦法安裝 20.04 以便與 wsl2 一起使用依賴 Microsoft Store(或 Add-AppxPackage)工作嗎?

原因:我的電腦上的 Microsoft Store 和 Add-AppxPackage 損壞,嘗試修復它們沒有成功,微軟唯一的解決方案是“重新安裝 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

如果您仔細研究EventViewer 中的錯誤訊息,它們最終會歸結為「Microsoft Store 所需的XML 檔案已以某種方式刪除,並且如果不透過重新安裝Windows 來重新安裝Store,則無法將其還原」: -(

不管怎樣,我不希望這裡有人幫忙診斷 Microsoft Store,我只是希望有一些替代方法來安裝 Ubuntu 20.04 for WSL2,但不會需要Windows 應用程式商店可以正常運作。

答案1

只要您已經安裝了 WSL(無論如何它都不依賴應用程式商店,所以這應該不是問題),您就可以使用wsl --import子命令來「側面載入」Ubuntu 發行版。

您已經下載的軟體包包含您需要的文件,但為了簡化說明,我將讓您再次下載。當然,如果您願意,您可以調整這個食譜:

  • 首先,選擇 WSL 檔案的位置。例如:

    cd $env:USERPROFILE
    mkdir -p wsl\instances\Ubuntu20_04
    mkdir wsl\images
    cd wsl
    
  • wsl透過找到的正確直接連結將 Appx 套件手動下載到該目錄中這裡或者,就您而言,透過:

    # 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 安裝創建預設用戶的方式相同。

  • 以 root 身分啟動 WSL Ubuntu:

    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/is-there-a-way-of-installing-ubuntu-windows-subsystem-for-linux-on-win10-v170 最後一篇,連微軟也記錄了這一切: https://docs.microsoft.com/en-us/windows/wsl/install-manual

希望我的貼文現在的反對票數量會減少。

相關內容