蝴蝶与花786 2026-03-25 17:29 采纳率: 50%
浏览 8

电脑上安装 Docker Compose,安装WSL 提示灾难性故障

在电脑上安装 Docker Compose 打开提示WSL needs updating
通过管理员打开cmd命令窗口 执行wsl --update,提示“WSL 正在完成升级
灾难性故障 错误代码: Wsl/CallMsi/Install/E_UNEXPECTED”

img


img


操作环境是win10系统家庭版,适合WSL 1
在网上搜查了很多解决方式都试过了 ai提供的方法也试了,感觉越严重了,不知道怎么处理了
最后一个尝试的方法是安全模式下清理损坏的 WSL 注册表,结果还是不行

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2026-03-25 17:30
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    你目前遇到的问题是关于 WSL(Windows Subsystem for Linux) 在升级过程中出现的 “灾难性故障”,错误代码为 Wsl/CallMsi/Install/E_UNEXPECTED。这通常意味着 WSL 安装或更新过程中出现了严重问题,可能与系统文件损坏、注册表异常、权限问题或兼容性冲突有关。


    ✅ 问题分析

    1. WSL 更新失败:执行 wsl --update 后提示“灾难性故障”,说明 WSL 的安装包或系统组件在更新时出现了不可恢复的错误。
    2. Windows 10 家庭版限制:虽然 WSL 1 在家庭版中支持,但 WSL 2 需要 Windows 10 Pro 或更高版本(部分版本也支持)。如果你尝试启用 WSL 2,可能会导致不兼容。
    3. 注册表损坏:你在安全模式下清理了 WSL 注册表,但问题依旧存在,说明注册表可能不是唯一原因。
    4. Docker Compose 依赖 WSL:Docker Desktop 默认使用 WSL 2 来运行容器,如果 WSL 无法正常工作,Docker Compose 也会报错。

    🔧 解决方案(分步骤)

    1. 重置 WSL 环境

    步骤:

    • 打开 PowerShell(以管理员身份)。
    • 运行以下命令来卸载 WSL:
    wsl --unregister <distro-name>
    

    例如:wsl --unregister Ubuntu(根据你实际安装的发行版替换)

    • 如果你不知道已安装的发行版名称,可以运行:
    wsl --list --verbose
    
    • 然后删除所有 WSL 发行版。

    • 接着,彻底卸载 WSL:

    dism.exe /online /disable-feature /featurename:Microsoft-Hyper-V /NoRestart
    dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /NoRestart
    

    注意:此操作会禁用 Hyper-V 和虚拟机平台,建议在完成修复后再重新启用。


    2. 重置 Windows 系统文件

    步骤:

    • 打开 PowerShell(管理员权限)。
    • 运行以下命令来修复系统文件:
    sfc /scannow
    
    • 等待扫描和修复完成后,重启电脑。

    3. 重新启用 WSL 并设置为 WSL 1

    由于你使用的是 Windows 10 家庭版,不支持 WSL 2,所以需要确保 WSL 被设置为 WSL 1

    步骤:

    • 打开 PowerShell(管理员权限),运行以下命令:
    wsl --set-default-version 1
    
    • 确保 WSL 已启用:
    dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /NoRestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /NoRestart
    
    • 重启计算机。

    4. 手动安装 WSL(适用于家庭版)

    如果你无法通过 wsl --update 升级,可以尝试手动下载并安装 WSL 的 .msu 文件。

    步骤:


    5. 安装 Docker Desktop 并配置 WSL 1

    • 下载并安装 Docker Desktop
    • 在 Docker Desktop 设置中,选择 Use WSL 2 选项(注意:如果你没有 WSL 2 支持,这个选项可能不可选)
    • 如果你只能使用 WSL 1,确保 Docker Desktop 配置为使用 WSL 1。

    注意:Docker Desktop 对 WSL 1 的支持有限,建议在 WSL 2 上运行 Docker。


    6. 最终解决方案(推荐)

    如果你已经尝试过以上方法仍然无效,建议考虑以下方式:

    6.1 重装 Windows 10 家庭版

    • 备份重要数据。
    • 通过 Microsoft 提供的 Windows 10 安装介质 重新安装系统。
    • 安装后,先启用 WSL 再安装 Docker。

    6.2 升级到 Windows 10 Pro

    • 如果你需要 WSL 2 和 Docker 的完整功能,建议将系统升级为 Windows 10 Pro
    • 升级后,可以正常使用 WSL 2 和 Docker Desktop。

    🛠️ 修改后的代码示例(可选)

    如果你希望手动安装 WSL,可以使用以下命令:

    # 禁用 WSL 相关功能
    dism.exe /online /disable-feature /featurename:Microsoft-Hyper-V /NoRestart
    dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /NoRestart
    
    # 重新启用 WSL 功能
    dism.exe /online /enable-feature /featurename:Microsoft-Hyper-V /NoRestart
    dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /NoRestart
    
    # 设置默认 WSL 版本为 1
    wsl --set-default-version 1
    
    # 安装 WSL 发行版(例如 Ubuntu)
    wsl --install -d Ubuntu
    

    ✅ 总结

    | 问题 | 解决方案 | |------|----------| | WSL 更新失败 | 重置 WSL、修复系统文件、手动安装 WSL | | Windows 10 家庭版限制 | 设置 WSL 1,或升级到 Pro 版 | | Docker Compose 报错 | 确保 WSL 正常运行,或改用 Docker Desktop + WSL 1 |


    如果你能提供更详细的错误日志或截图,我可以进一步帮助你定位问题。希望以上方案能帮你解决问题!

    评论

报告相同问题?

问题事件

  • 创建了问题 3月25日