Установить 20.04 для wsl2, если Microsoft Store неисправен?

Установить 20.04 для wsl2, если Microsoft Store неисправен?

Есть ли способ установить 20.04 для использования с wsl2, которыйне делаетзависите от работы 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

Если покопаться в сообщениях об ошибках в EventViewer, то в конечном итоге они сводятся к следующему: «XML-файл, необходимый Microsoft Store, был каким-то образом удален, и нет способа восстановить его без переустановки Store путем переустановки Windows» :-(

В любом случае, я не жду, что кто-то здесь поможет с диагностикой Microsoft Store, я просто надеюсь, что есть какой-то альтернативный способ установки Ubuntu 20.04 для WSL2, который ненуждатьсяМагазин Windows для работы.

решение1

Если у вас уже установлен 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 под вашим идентификатором пользователя.

У меня не было возможности протестировать каждый шаг здесь от начала до конца, но это комбинация того, что я делал в прошлом, и других ответов, которые я предоставил. Я считаю, что собрал все части, которые вам нужны, но если у вас возникнут проблемы, дайте мне знать, и я рассмотрю и подправлю это.

решение2

Чтобы решить проблему, которая, казалось, требовала переустановки Windows, я воспользовался так называемой возможностью "обновления на месте" установщика Windows, которая переустанавливает систему, сохраняя все ваши файлы и приложения! Это может вам помочь. Смотритеэтот урокнапример, для получения подробной информации.

Сегодня мне даже удалось найти это окончательное объяснение вашего главного вопроса, если только его не скопировал другой парень здесь, так как этот пост более старый: https://superuser.com/questions/1271682/есть-способ-установки-подсистемы-окна-Ubuntu-для-Linux-на-Win10-v170 И последнее: даже MS документирует все это: https://docs.microsoft.com/en-us/windows/wsl/install-manual

Надеюсь, теперь количество отрицательных отзывов у моего поста уменьшится.

Связанный контент