Как исправить ошибку 0x8027025a при установке Ubuntu 22.04 LTS на WSL?

Следующее сообщение об ошибке появилось, когда я попытался установить Ubuntu 22.04 LTS на WSL. Я не могу ничего напечатать, поэтому я не могу завершить настройку.

Это результаты , которые я получаю от команд «wsl -l -o» и «wsl -l -v».

Это Ubuntu-22.04, работающая после неудачной установки.

Как я могу это исправить?

6 ответов

Для тех, кто столкнулся с этой ошибкой, ниже было несколько идей, как ее исправить. Из комментариев следует, что первый вариант, установка как WSL1 и последующее преобразование в WSL2, является самым простым обходным путем для большинства людей. Два других предложения существуют только в качестве запасного варианта, если это не является для вас жизнеспособным решением.

Установите как WSL1, затем конвертируйте в WSL2

Ubuntu22.04 использует только новый шаг настройки TUI в WSL2. Я считаю, что этот шаг - это то, что терпит неудачу с .

Давайте посмотрим, сможем ли мы избежать этого сбоя, установив его как WSL1. Если это сработает, вы можете перейти на WSL2.

  • Снова удалите неудачную версию Ubuntu22.04 (забавно, я знаю)

  • Перезагрузка (необязательно, но рекомендуется)

  • Из PowerShell запустите:

            wsl --set-default-version 1
    
  • Запустите установщик еще раз.

Обратите внимание, что установщику потребуется гораздо больше времени для запуска под WSL1.

Если я прав (а я знаю, что до сих пор этого не делал), то этот установщик завершится успешно. Обратите внимание, что он пропустит настройку TUI имени пользователя/пароля вместе с необязательным шаг, который он выполняет для WSL2. Он перейдет прямо к настройке имени пользователя/пароля на консоли. Надеюсь, это позволит вам успешно войти в него.

Если да, и дистрибутив подходит как ваш пользователь, то:

  • Выйти из Ubuntu
  • Вернитесь в PowerShell и выполните:
            wsl --shutdown
    wsl --set-version Ubuntu-22.04 2
    # This will take a while
    wsl --set-default-version 2
    wsl -l -v
    # Confirm the proper version
    

Если это по какой-то причине не работает, то переходим к следующим вариантам...

Вручную установите rootfs и создайте правильного пользователя

Возможно, вы сможете сразу перейти к следующему шагу, но я включаю его как «безопасный» вариант, позволяющий убедиться, что rootfs извлечен правильно.

  • На этот раз не удаляйте Ubuntu 22.04.

  • Выйдите из любого дистрибутива WSL2

  • Запустите административную оболочку PowerShell, скопируйте, вставьте и запустите каждую строку по отдельности:

            # Edit paths below to your preference
    $WSL_IMAGE_PATH = "$env:USERPROFILE\WSL\Images"
    $WSL_INSTANCE_PATH = "$env:USERPROFILE\WSL\Instances"
    mkdir $WSL_IMAGE_PATH
    mkdir "$WSL_INSTANCE_PATH\Ubuntu-22.04"
    $UBUNTU_ROOTFS = (Get-ChildItem -Recurse 'C:\Program Files\WindowsApps\Canonical*22.04*' | Where-Object {$_.Name -eq 'install.tar.gz' })[0].FullName
    cp "$UBUNTU_ROOTFS" "$WSL_IMAGE_PATH\Ubuntu22.04.tar.gz"
    

    Выйдите из административной оболочки PowerShell.

  • Запустите обычный PowerShell, скопируйте, вставьте и запустите каждую строку по отдельности:

            wsl --shutdown
    # Make sure these paths match those created above
    $WSL_IMAGE_PATH = "$env:USERPROFILE\WSL\Images"
    $WSL_INSTANCE_PATH = "$env:USERPROFILE\WSL\Instances"
    
    wsl --import Ubuntu2204 "$WSL_INSTANCE_PATH" "$WSL_IMAGE_PATH\Ubuntu22.04.tar.gz" --version 2
    

    Если изображение импортируется успешно, то чтобы начать это.

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

    Перейдите к следующему разделу (который можно сделать независимо от этого).

Вручную создать пользователя

Изнутри Ubuntu22.04

      read -p "Username: " NEWUSER
# Enter your desired username
adduser $NEWUSER
# This will create your username/password
usermod -aG  adm,cdrom,sudo,dip,plugdev,lxd $NEWUSER

# The following 4 lines must be entered together
cat <<EOF > /etc/wsl.conf
[user]
default=$NEWUSER
EOF

cat /etc/wsl.conf
# Confirm the contents

Выйдите из Ubuntu и из PowerShell:

      wsl --terminate Ubuntu2204
wsl ~ -d Ubuntu2204

Если все прошло хорошо, вы должны быть в Ubuntu22.04 в качестве пользователя по умолчанию.

Мой ответ такой же, как вариант 2 от @NotTheDr01ds, но избавляет от необходимости удалять и переустанавливать сбойную Ubuntu. Большое ему спасибо, так как я бы не придумал этот ответ без понимания, почерпнутого из его ответа.

  1. Вместо удаления и повторной установки перейдите к Settings> Apps> Ubuntu 22.04 LTS> Advanced Options> Reset. Это, кажется, приведет вас к тому же состоянию, что и загрузка Ubuntu, устанавливаемая из Магазина Microsoft, но до того, как она будет распакована.
  2. wsl --set-default-version 1
      The operation completed successfully.
  1. Теперь запустите Ubuntu, щелкнув значок на рабочем столе или в меню «Пуск», чтобы успешно запустить Ubuntu с WSL 1.
  2. Выйдите из оболочки Ubuntu, затем wsl --shutdown
        NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         1
  1. wsl --set-version Ubuntu-22.04 2
      Conversion in progress, this may take a few minutes...
For information on key differences with WSL 2 please visit https://aka.ms/wsl2
Conversion complete.
  1. wsl --set-default-version 2
      For information on key differences with WSL 2 please visit https://aka.ms/wsl2
The operation completed successfully.
  1. wsl -l -v
        NAME            STATE           VERSION
* Ubuntu-22.04    Stopped         2
  1. Снова запустите Ubuntu и убедитесь, что он все еще работает, теперь уже под WSL 2.

Примечание. Для тех, кто сталкивается с этим, кто испытывает 0x8027025aошибка при установке Ubuntu22.04 в WSL, обратите внимание, что этот ответ не решил проблему для исходного постера. Я оставляю его здесь, так как у него есть некоторая информация о том, как работает установщик (для устранения неполадок), но я бы рекомендовал сначала попробовать мой другой ответ здесь.


Я вижу похожие сбои (но не точно эту ошибку) сейчас в моей системе Windows 10 (но пока не в моей системе Windows 11). В первый раз он установился нормально, но после удаления и повторной установки (что я часто делаю, чтобы попробовать разные вещи, чтобы ответить на вопросы) я увидел то же сообщение. Возможные обходные пути ниже (но пока нет «решения»).

Немного предыстории — Ubuntu22.04 на WSL — это первая производственная версия, в которой используется новый «Ubuntu WSL Out-of-Box Experience», впервые представленный в предварительном просмотре сообщества. Предыдущие дистрибутивы WSL, установленные из Microsoft Store, использовали довольно простой консольный установщик (например, ubuntu.exe) что:

  • Распаковал tar-архив rootfs в соответствующее место в вашем $env:USERPROFILE\AppData\Local\Packages\<package>каталог.
  • Зарегистрировал дистрибутив в WSL
  • Запустил этап «начальной настройки», который запросил имя пользователя и пароль по умолчанию.
  • Зарегистрировал имя пользователя по умолчанию в WSL, что создало соответствующие записи в реестре.

Насколько я могу судить, именно в таком порядке и происходили события.

С другой стороны, новый установщик Ubuntu22.04 выглядит следующим образом:

  1. Начать распаковку архива
  2. Переход к графическому вращающемуся рекламному щиту «Вот что хорошего в Ubuntu».
  3. После извлечения rootfs регистрирует дистрибутив в WSL.
  4. Переходит к этапу конфигурации TUI (предварительное консольное меню), где вы можете установить свой язык, имя пользователя, фактическое имя и пароль.
  5. Добавляет дополнительный экран TUI, который будет устанавливать некоторые общие параметры.
  6. Регистрирует имя пользователя в WSL
  7. Записывает любые измененные значения в /etc/wsl.conf
  8. Выходит из TUI и запускает дистрибутив под своим пользователем.

Есть несколько возможных точек отказа (и связанных с ними решений), и, возможно, некоторые из них я еще не знаю:

Основной потенциальный обходной путь, если пользователь создан

Обратите внимание, что это, вероятно, не сработает для вас, учитывая вывод, который вы показываете в своем вопросе, но я оставлю его здесь для других:

  • В моем случае я обычно вижу проблему после шага 6 или 7. Когда он переходит к терминалу, он думает , что что-то на предыдущих шагах не завершилось успешно. Затем он пытается запросить имя пользователя и пароль, используя «старый метод», который терпит неудачу, поскольку он уже был установлен с помощью графического установщика.

    В этом случае вы можете попробовать закрыть существующее окно терминала и перезапустить его через wsl ~ -d Ubuntu-22.04. Если он запускается как root, проверьте, существует ли ваше имя пользователя в /etc/passwd. Если это так, установите его по умолчанию с помощью sudo -e /etc/wsl.confи добавьте записи, как указано в этом ответе суперпользователя (метод 1).

  • Я также могу воспроизвести несколько иной сбой с помощью параметра «Справка» , но, если процесс происходит достаточно поздно, можно решить те же шаги, описанные выше.

Установщик не завершается вообще
  • Если установщик не работает на более раннем этапе, возможно, вам придется начать все сначала. Обратите внимание, что это полностью удалит дистрибутив и все данные, поэтому (для других потенциальных читателей) выполняйте эти шаги только в том случае, если вы только что установили и потерпели неудачу, без существующих данных в Ubuntu22.04 .

    1. Закройте все окна установщика (и любые другие экземпляры WSL)

    2. Перейдите в PowerShell и:

                wsl --shutdown
      wsl --unregister Ubuntu-22.04
      ubuntu2004.exe
      
    3. Графический интерфейс снова запустится. Ничего не нажимайте , даже когда вас спросят, можете ли вы перейти к следующему шагу. Он должен автоматически перейти к Willkommen! Bienvenue! Welcome! Добро пожаловать! Welkom!где вы можете выбрать свой язык.

    4. Ни при каких обстоятельствах не выбирайте «Помощь», иначе программа установки снова выйдет из строя. Его можно восстановить, а может и нет, но он выйдет из строя (по моему опыту).

    5. Не используйте мышь — на данный момент это не графический установщик — это TUI, который, насколько мне известно, будет реагировать только на клавиатуру.

    6. Выберите свой язык в TUI с помощью клавиш со стрелками иEnter

    7. Установите имя пользователя/пароль в TUI. Выберите поля с помощью Tab. После завершения нажмите Tab« Готово» и нажмите Enter.

    8. Если у вас нет особой необходимости, не меняйте параметры на следующем экране. «Готово» должно быть выбрано по умолчанию. Просто нажмитеEnter

    9. ПОДОЖДИТЕ на следующем экране с надписью «Настройка завершена» и «Применение изменений» (противоречивая информация, ИМХО). Этот шаг занимает слишком много времени, и, вероятно, что-то сломано «за» этим. Опять же, не выбирайте здесь «Помощь» , иначе установщик не будет полностью (по моему опыту).

    10. В конце концов, он перейдет к экрану «Привет» . Возьмите не инструкции по обновлению, а нажмите Enterна опцию «Перезагрузить сейчас» .

Надеюсь, в этот момент это перейдет на обычную оболочку.

Если не:

Один последний вариант

Если вышеуказанное не помогло, попробуйте полностью удалить Ubuntu22.04 (но не сам WSL):

  • Необязательно: Запустить RegEditв Windows перейдите к HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss. Найдите запись под DistributionName"Ubuntu-22.04" (точно).

  • Примите это к сведению — больше ничего не делайте. Мы просто хотим убедиться, что он будет удален.

  • Щелкните правой кнопкой мыши «Ubuntu22.04» в меню «Пуск» и выберите «Удалить» . Опять же, это приведет к удалению дистрибутива, поэтому делайте это только в том случае, если у вас не удалось выполнить установку и в нем нет данных. Кроме того, убедитесь, что вы удаляете правильный — например, не удаляйте неправильный «Ubuntu», если у вас установлено несколько.

    Обратите внимание, что в будущем «неверсионная версия Ubuntu» в меню «Пуск», скорее всего, будет 22.04 и для новых пользователей (хотя, надеюсь, эти проблемы будут решены в первую очередь). Опять же, убедитесь, что вы удаляете правильный.

  • Вернитесь в RegEdit, выберите « Вид » -> « Обновить » и убедитесь, что запись реестра исчезла. Если нет, возможно, вам придется удалить его вручную. Обратите внимание, что он был правильно удален для меня. Я просто ожидаю случая, когда нам действительно нужно убедиться, что все ушло, прежде чем переустанавливать.

  • Откройте проводник и перейдите к %userprofile%\AppData\Local\Packages\

  • Ищите тот, который начинается с CanonicalGroupLimited.Ubuntu22.04LTS(вероятно CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc). Если его нет, то ладно. Предыдущие деинсталляторы Ubuntu удалили этот каталог. Но похоже (по крайней мере, для меня), что деинсталлятор 22.04 оставляет виртуальный диск нетронутым. Это, вероятно, хорошо, так как мы видели несколько вопросов здесь, на AU, где люди теряли данные при удалении.

    Но если он все еще существует после удаления, вы можете удалить каталог 22.04 вручную. При желании вы можете сделать резервную копию ..\LocalState\ext4.vhdxфайл, но поймите, что это около 1,5 ГБ.

  • После всего этого перезагрузка, вероятно, была бы неплохой идеей.

  • Затем вернитесь в Microsoft Store и попробуйте снова переустановить Ubuntu22.04, следуя инструкциям на предыдущем шаге.

Это может не подходить для всех. Но в моем случае установка места установки приложения по умолчанию на другие диски, кроме моего системного диска (C:), всегда приводит к одной и той же ошибке. Я также попробовал классический способ установки WSL на свой диск D:\, вручную загрузив и распаковав его в каталог на этом диске, но столкнулся с той же ошибкой.

Это облом, так как я не хотел загружать свой диск C:\ приложениями, но это то, что есть. После очистки ошибочной установки, вернув его на C:\, а затем установив Ubuntu 22.04 из MS Store, я могу полностью настроить дистрибутив.

Если у вас мало места на системном диске, сначала попробуйте другие ответы.

Спасибо dhalsim2 за эту информацию. На шаге 1 вместо "сброс" выбираю "восстановить" у меня сработало.

К счастью, у меня установлено программное обеспечение PrimoCache.

  1. Я запустил кеш для этого конкретного диска.
  2. Сбросьте приложение Ubuntu.
  3. Запустите приложение снова. Это завершит процесс, включая графический интерфейс.

После того, как вы закончите установку всего, вы можете удалить диск из primocache или даже удалить программное обеспечение. Я думаю, что медленный HDD влияет на полную установку.

РЕДАКТИРОВАТЬ:

LMAO Я только сейчас придумал самый простой способ!

  1. Сбросьте и восстановите приложение Ubuntu.

  2. Откройте приложение Ubuntu. Это покажет диалог установки. БЫСТРО закройте это и фоновое окно оболочки Ubuntu, как только они появятся.

  3. Откройте тип PowerShell :

    ubuntu config --default-user ваше имя

Появится сообщение « Установка», это может занять несколько минут... затем завершите процесс, введя имя пользователя и пароль.

Другие вопросы по тегам