离线环境中将现有的 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 的迁移。

相关推荐
Qres8212 天前
docker & WSL & Ubuntu安装记录
ubuntu·docker·容器·wsl
weixin_ab3 天前
【WSL2 + PgVector 远程连接排坑记】
wsl
糖少主6 天前
WSL中使用Beyond Compare 3/4/5作为difftool
git·wsl·beyond compare·difftool
Dontla9 天前
修改默认wsl发行版环境后报错(wsl --set-default)(wsl别名,$PROFILE)
wsl
勤奋的大熊猫10 天前
VS code 打开后自动提示 WSL 更新
wsl
likerhood11 天前
WSL 下安装 Miniconda 笔记
笔记·wsl
冲上云霄的Jayden11 天前
在 WSL 中安装 中文支持
乱码·wsl·中文支持
Dontla12 天前
Powershell打开wsl2 Ubuntu Nano无法粘贴内容解决方法(Use Ctrl+Shift+C/V as Copy/Paste)
wsl
zizle_lin12 天前
WSL初始化Ubuntu的使用
linux·运维·ubuntu·wsl
Dontla14 天前
WSL2危险设计:默认挂载/mnt/c,易误删系统文件导致系统崩溃(附解决方法)(关闭自动挂载(不推荐关闭))/etc/wsl.conf
wsl