在 WSL 上安装 Ubuntu 22.04 LTS 时如何修复 0x8027025a 错误?

在 WSL 上安装 Ubuntu 22.04 LTS 时如何修复 0x8027025a 错误?

下列失败消息当我尝试在 WSL 上安装 Ubuntu 22.04 LTS 时出现。我无法输入任何内容,因此无法完成设置。

这些是输出我从“wsl -l -o”和“wsl -l -v”命令获得。

这是Ubuntu-22.04 正在运行安装失败后。

我该如何修复它?

答案1

对于遇到此错误的人,可以尝试以下几种方法来解决:

  • 选项 1:先尝试一下。感谢@蠹虫在下面的评论中确认它是否有效。这应该是解决问题的最简单方法许多Ubuntu 22.04 WSL 安装失败。

  • 选项 2:从评论来看,这似乎是解决问题的可靠方法,但它比选项 1 要长得多。

  • 选项 3 和 4:仅当前两个选项不适合您时才可选择。*

选项 1:非图形安装

从 PowerShell:

  • 取消注册现有的 22.04 安装。请注意,这是破坏性操作并将删除发行版中的所有文件,因此它只应在安装失败时使用,或者如果您确信可以安全删除发行版:

    wsl -l -v
    # Confirm the distribution name.
    # It should be either "Ubuntu-22.04" or
    # "Ubuntu" depending on when and how you
    # installed from the Store.
    # Update the commands below based on your version.
    
    wsl --unregister Ubuntu-22.04
    # or wsl --unregister Ubuntu
    
  • 使用“旧”的非图形安装程序安装 22.04:

    ubuntu2204.exe install --ui=none
    # or ubuntu.exe install --ui=none
    

这应该可以跳过安装中有问题的部分并成功。

选项 2:作为 WSL1 安装,然后转换为 WSL2

Ubuntu 22.04 仅在 WSL2 下使用新的 TUI 配置步骤。我相信这一步就是失败的原因The app didn't start in the required time.

让我们看看是否可以通过安装为 WSL1 来避免该故障。如果可行,则可以转换为 WSL2。

  • 再次卸载失败的 Ubuntu 22.04(很有趣,我知道)

  • 重新启动(可选,但建议这样做)

  • 从 PowerShell 运行:

    wsl --set-default-version 1
    
  • 再次运行安装程序。

请注意,安装程序在 WSL1 下运行需要更长的时间。

如果我没记错的话(我知道到目前为止我还没记错),那么这个安装程序将成功完成。请注意,它将跳过用户名/密码的 TUI 配置,以及/etc/wsl.conf它为 WSL2 运行的可选步骤。它将直接进入基于控制台的用户名/密码配置。希望这能让你成功输入。

如果是这样,并且分发作为您的用户出现,那么:

  • 退出 Ubuntu
  • 返回 PowerShell 并运行:
    wsl -l -v
    # Confirm your distribution name, as in Option 1
    wsl --shutdown
    wsl --set-version Ubuntu-22.04 2
    # Or wsl --set-version Ubuntu 2
    # This will take a while
    wsl --set-default-version 2
    wsl -l -v
    # Confirm the proper version
    

如果由于某种原因这不起作用,请继续下一个选项...

选项 3:手动安装 rootfs 并创建正确的用户

您可能可以直接跳到下一步,但我将这一步作为确保正确提取 rootfs 的“安全”选项。请注意,这些说明适用于商店中“版本化”的 Ubuntu 22.04 版本。如果您想使用(现已更新为 22.04)“Ubuntu”(没有版本号),则需要进行适当的修改。

  • 不是这次卸载 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
    

    如果镜像导入成功,则wsl ~ -d Ubuntu2204启动它。

    您应该有一个类似上面显示的启动屏幕——您将以 root 用户身份登录。

    继续下一部分(可以独立于本节进行)。

选项 4:手动创建用户

在 Ubuntu 22.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 -l -v
# Substitute "Ubuntu" as the distribution name below if needed
wsl --terminate Ubuntu-22.04
wsl ~ -d Ubuntu-22.04

如果一切顺利,您应该以 Ubuntu 22.04 作为默认用户。

答案2

我的答案与 @NotTheDr01ds 的选项 2 相同,但无需卸载并重新安装失败的 Ubuntu。非常感谢他,因为如果没有从他的答案中获得的见解,我就不会想出这个答案。

  1. 无需卸载并重新安装,请转到Settings> Apps> Ubuntu 22.04 LTS> Advanced Options>Reset。这似乎会将您带到与从 Microsoft Store 安装但在解压之前下载的 Ubuntu 相同的状态。
  2. wsl --set-default-version 1
The operation completed successfully.
  1. 现在通过单击桌面或开始菜单图标启动 Ubuntu,即可使用 WSL 1 成功启动 Ubuntu。
  2. 退出 Ubuntu shell,然后wsl --shutdown
  3. wsl -l -v
  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 下。

答案3

注意:对于在 WSL 中安装 Ubuntu 22.04 时遇到此0x8027025a错误的其他用户,请注意,此答案并未解决原始发帖人的问题。我将其留在这里,因为它提供了一些有关安装程序工作原理的背景信息(用于故障排除),但我建议尝试我的其他答案先在这里。


我现在在 Windows 10 系统上看到了类似的故障(但不是这个确切的错误)(但到目前为止,在我的 Windows 11 系统上没有)。第一次安装没问题,但在卸载并重新安装后(我经常这样做以尝试不同的方法来回答问题),我看到了相同的消息。下面是可能的解决方法(但还没有“解决方案”)。

一些背景知识——WSL 上的 Ubuntu 22.04 是第一个生产版本使用新的“Ubuntu WSL 开箱即用体验”,首次出现在社区预览。以前从 Microsoft Store 安装的 WSL 发行版使用了相当简单的纯控制台安装程序(例如ubuntu.exe),它:

  • 将 rootfs tarball 解压到目录中的适当位置$env:USERPROFILE\AppData\Local\Packages\<package>
  • 使用 WSL 注册发行版
  • 运行“初始配置”阶段,要求输入默认用户名和密码
  • 使用 WSL 注册了默认用户名,从而创建了适当的注册表项。

据我所知,这就是事情发生的顺序。

另一方面,新的 Ubuntu 22.04 安装程序似乎:

  1. 开始解压压缩包
  2. 过渡到图形化的“Ubuntu 的优点”旋转广告牌。
  3. 提取 rootfs 后,使用 WSL 注册发行版
  4. 转换到 TUI(美化控制台菜单)配置阶段,您可以在其中设置您的语言、用户名、真实姓名、密码。
  5. 添加一个额外的 TUI 屏幕,用于设置一些常用/etc/wsl.conf选项。
  6. 使用 WSL 注册用户名
  7. 将所有修改的值写入/etc/wsl.conf
  8. 退出 TUI 并以您的用户身份启动分发。

有几个可能的故障点(和相关的解决方案),可能还有一些我还不知道:

主要的潜在解决方法(如果创建了用户)

请注意,根据您在问题中显示的输出,这可能不适合您,但我会将其保留在这里以供其他人使用:

  • 就我而言,我通常会在步骤 6 或 7 之后看到问题。当它转换到终端时,它前面的步骤中有些事情没有成功完成。然后它尝试使用“旧方法”询问用户名和密码,但失败了,因为用户名和密码已经通过图形安装程序设置过了。

    在这种情况下,您可以尝试关闭现有终端窗口并通过 重新启动wsl ~ -d Ubuntu-22.04。如果它以 root 身份启动,请检查 中是否存在您的用户名/etc/passwd。如果存在,请将其设置为默认值sudo -e /etc/wsl.conf,并添加 中指定的条目这个超级用户的回答(方法 1)。

  • 我也可以通过以下方式重现稍微不同的失败“帮助”选项,但假设过程已经足够晚了,则上述相同的步骤可以解决。

安装程序根本没有完成
  • 如果安装程序在前面的步骤中失败,您可能需要重新开始。请注意,这将完全删除分发版和所有数据,因此(对于其他潜在读者)仅当你刚刚安装失败且 Ubuntu 22.04 中没有现有数据时才执行这些步骤

    1. 关闭所有安装程序窗口(以及任何其他 WSL 实例)

    2. 转到 PowerShell 并:

      wsl --shutdown
      wsl --unregister Ubuntu-22.04
      ubuntu2004.exe
      
    3. GUI 将再次启动。 不要点击任何东西,即使系统询问您是否可以转到下一步。系统会自动转到Willkommen! Bienvenue! Welcome! Добро пожаловать! Welkom!您可以选择语言的位置。

    4. 在任何情况下都不要选择“帮助”,否则安装程序将再次崩溃。它可能会恢复,也可能不会,但它将要崩溃(根据我的经验)。

    5. 请勿使用鼠标 - 这是不是此时的图形安装程序 - 它是一个 TUI 并且只会响应键盘,据我所知。

    6. 使用箭头键在 TUI 中选择您的语言并Enter

    7. 在 TUI 中设置您的用户名/密码。使用 选择字段Tab。完成后Tab“完毕”并击中Enter

    8. 除非有特殊需要,否则请不要更改下一个屏幕上的任何选项。 “完毕”应默认选中。只需点击Enter

    9. 等待下一个屏幕上显示“设置完成”“应用更改”(在我看来,信息有冲突)。这一步花费的时间太长了,而且可能“背后”有东西坏了。再次强调,不要选择“帮助”这里,否则安装程序将无法完全(根据我的经验)。

    10. 最终它将过渡到“你好 ”屏幕上。注意更新说明,然后Enter点击“马上重启”选项。

希望到那时它能够转变为常规 shell。

如果不:

最后一个选择

如果上述操作失败,请尝试完全删除 Ubuntu 22.04(但不删除 WSL 本身):

  • 可选:RegEdit在 Windows 中运行,导航到HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss。找到下面的条目,DistributionName其中的“Ubuntu-22.04”(准确)。

  • 记下来——不要做其他任何事情。我们只是想确保它被删除。

  • 右击“Ubuntu 22.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.5GB。

  • 完成所有这些后,重新启动可能并不是一个坏主意。

  • 然后返回 Microsoft Store 并按照上一步中的说明再次尝试重新安装 Ubuntu 22.04。

答案4

感谢 dhalsim2 提供这些信息。在步骤 1 中,我选择“修复”而不是“重置”,这样对我有用。

相关内容