离线环境中将现有的 WSL 1 升级到 WSL 2

在离线环境中将现有的 WSL 1 升级到 WSL 2 需要特殊处理。以下是完整的解决方案:

离线升级步骤(关键操作)

  1. 准备 WSL 2 内核更新包:

    • 从联网电脑下载内核更新包:wsl_update_x64.msi
    • 通过U盘/内网传输到离线环境
  2. 强制关闭 WSL 服务:

    powershell 复制代码
    wsl --shutdown
  3. 安装内核更新:

    • 双击传输的 wsl_update_x64.msi 完成安装
  4. 手动设置版本转换:

    powershell 复制代码
    # 设置默认版本为 WSL2
    wsl --set-default-version 2
    
    # 强制转换现有发行版
    wsl --set-version <发行版名称> 2 --force

    例如:wsl --set-version Ubuntu-20.04 2 --force

离线环境特殊问题解决

若转换后仍是 WSL 1

原因:系统组件注册异常或虚拟化支持未启用

解决方案:

  1. 手动注册 WSL 2 组件:

    powershell 复制代码
    # 以管理员身份运行 PowerShell
    reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss" /v DefaultVersion /t REG_DWORD /d 2 /f
  2. 检查虚拟化支持(离线环境必须):

    • 重启进入 BIOS/UEFI
    • 确保启用:
      • Intel VT-x 或 AMD-V
      • 二级地址转换(SLAT)
  3. 手动启用 Windows 功能:

    powershell 复制代码
    dism /online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /NoRestart
    dism /online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /All /NoRestart
    shutdown /r /t 0

替代方案:导出/导入迁移

若直接转换失败,使用此方法:

powershell 复制代码
# 1. 导出当前发行版
wsl --export <发行版名称> C:\wsl-backup.tar

# 2. 注销旧实例
wsl --unregister <发行版名称>

# 3. 重新导入为 WSL2
wsl --import <新发行版名称> C:\wsl\new-instance C:\wsl-backup.tar --version 2

# 4. 设置默认用户(替换YourUsername)
<新发行版名称> config --default-user YourUsername

验证命令

powershell 复制代码
# 检查WSL版本
wsl -l -v

# 检查内核版本(在Linux内运行)
uname -a
# 应显示:4.19.128-microsoft-standard 或更高

离线环境注意事项

  1. 确保 Windows 版本 ≥ 2004(19041)

  2. 提前下载以下依赖(如有):

  3. 禁用快速启动:

    powershell 复制代码
    powercfg /h off

重要提示:在转换过程中如遇卡死,尝试运行:

powershell 复制代码
wsl --terminate <发行版名称>
wsl --shutdown
netsh winsock reset

通过以上步骤,即使在没有互联网连接的环境中,也能成功完成 WSL 1 到 WSL 2 的迁移。

相关推荐
bosins13 天前
WSL2 启动即崩溃?调整超时参数解决 Docker 阻塞问题
linux·docker·wsl
bosins15 天前
彻底解决 WSL 2.7+ 空闲自动关闭/内存回收导致 Docker 中断的问题
linux·docker·wsl·dashboard
正仪16 天前
如何用vs code打开WSL内的文件目录
wsl
Mr-Apple21 天前
系统找不到指定的文件-CreateInstance/CreateVm/HCS/ERROR_FILE_NOT_FOUND
linux·windows·ubuntu·wsl
2601_962298931 个月前
配置 Python 解释器
pycharm·wsl·虚拟环境·配置python解释器·远程解释器
x861 个月前
WSL 里的 node 不是你装的那个
wsl
玖石书1 个月前
WSL升级到2代并设置默认版本
wsl
youngerwang1 个月前
【WSL2 VHDX 文件格式深度研究报告(开发 + 性能优化向)】
性能优化·wsl·vhdx·文件格式解析
玖石书1 个月前
WSL2 手动安装 Ubuntu 24.04 到指定磁盘位置
linux·运维·ubuntu·wsl
DAVIED92 个月前
llama.cpp 本地部署完全指南
windows·llama·wsl·llamacpp