624 字
3 分钟
wsl_恢复与迁移实录
2026-01-22

记录一次在重装 Windows 后,找回原有 WSL Ubuntu 环境的全过程,包括踩坑、排错思路与最终稳定方案。


一、背景#

  • 之前已将 WSL Ubuntu 的存储迁移到 D 盘
  • 系统重装后:
    • wsl 命令本身可用(2.6.3.0)
    • 但导入、挂载旧系统全部失败
  • 旧数据仍在:D:\wsl2\ubuntu\ext4.vhdx(约 54GB)

目标:无损恢复原 WSL 系统与用户环境


二、初始问题表现#

1. 导入旧系统失败#

Terminal window
wsl --import-in-place Ubuntu D:\wsl2\ubuntu
# 报错:E_INVALIDARG
Terminal window
wsl --mount D:\wsl2\ubuntu\ext4.vhdx --vhd --bare
# 报错:WSL_E_WSL2_NEEDED
Terminal window
wsl --list --verbose
# 没有任何已注册发行版

结论:WSL2 内核/驱动并未真正工作,尽管命令表面可用。


三、WSL2 运行环境修复流程#

按顺序执行:

Terminal window
wsl --shutdown
wsl --update --web-download
Terminal window
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  • 重启 Windows
  • 验证:
Terminal window
wsl --status

如果仍然报挂载 / import 异常,说明:

WSL2 组件损坏或 Hyper-V 底层不可用。


四、关键判断:绕过 WSL2 内核#

当以下情况同时存在时:

  • wsl --mount 失败
  • --import-in-place 失败
  • ext4.vhdx 文件完整存在

最稳妥方案:绕过 WSL2,手工导出 rootfs 再导入。


五、100% 成功的恢复方案#

Step 1:Windows 侧只读挂载旧 VHDX#

Terminal window
Mount-VHD -Path D:\wsl2\ubuntu\ext4.vhdx -ReadOnly
  • 在“磁盘管理”中查看新出现的 RAW 磁盘号
  • 右键 → 分配盘符(如 X:

Step 2:用临时 Ubuntu 打包 rootfs#

Terminal window
sudo mkdir /mnt/old
sudo mount -t drvfs X: /mnt/old
sudo tar -C /mnt/old -cpf /mnt/c/rootfs.tar .

Step 3:重新导入为新发行版#

Terminal window
wsl --import UbuntuRecovered D:\wsl2\UbuntuRecovered C:\rootfs.tar --version 2

验证:

Terminal window
wsl -d UbuntuRecovered

六、恢复默认用户#

导入后默认用户可能变成 root 或新用户,但原用户目录仍在:

Terminal window
ls /home

修复默认用户:

Terminal window
sudo usermod -d /home/olduser -s /bin/bash olduser
Terminal window
UbuntuRecovered config --default-user olduser

七、如果恢复后仍像“新系统”#

说明导入的 不是原系统盘

全盘搜索真实旧盘:

Terminal window
dir D:\ -Recurse -Filter ext4.vhdx

判断标准:

  • 体积最大
  • 修改时间最接近重装前

找到后重新执行本博客的恢复流程。


八、核心经验总结#

  1. WSL 命令可用 ≠ WSL2 内核可用
  2. ext4.vhdx 只要在,系统就 100% 可救
  3. wsl --import-in-place 并不可靠
  4. Mount-VHD + tar + wsl --import 是最终保险方案
  5. 永远定期导出 rootfs:
Terminal window
wsl --export Ubuntu D:\backup\ubuntu-rootfs.tar

九、结语#

这次恢复本质是一次:

在 WSL2 底层损坏场景下的人肉冷迁移

比重装 Ubuntu、重配开发环境快 10 倍。

强烈建议所有长期用 WSL 的人:

  • 迁移前先导出
  • 重装前先导出
  • 系统大版本升级前先导出

wsl_恢复与迁移实录
https://fuwari.vercel.app/posts/wsl_恢复与迁移实录/
作者
Lorem Ipsum
发布于
2026-01-22
许可协议
CC BY-NC-SA 4.0