方法1
将WSL中的Ubuntu 20.04迁移到E盘的具体步骤如下(综合多个来源并标注关键依据):
详细迁移步骤
-
停止WSL运行
关闭所有WSL实例,避免文件占用:wsl --shutdown # 停止所有WSL进程 [[3, 7, 11]]
-
导出系统镜像
将当前Ubuntu-20.04导出为E盘的.tar
备份文件:wsl --export Ubuntu-20.04 E:\WSL\Ubuntu-20.04.tar # 备份到E盘 [[5, 11, 14, 20]]
注意:路径中的盘符需替换为目标盘(如
E:\
),文件夹需提前创建。 -
注销原系统
卸载C盘中的原始系统(数据将被清除,但已有备份):wsl --unregister Ubuntu-20.04 # 注销原系统 [[1, 2, 3, 9, 11]]
-
导入到E盘
将备份文件导入E盘指定目录(需创建目标文件夹如E:\WSL\Ubuntu-20.04
):wsl --import Ubuntu-20.04 E:\WSL\Ubuntu-20.04 E:\WSL\Ubuntu-20.04.tar --version 2 # 导入到E盘 [[1, 5, 11, 14]]
参数说明:
Ubuntu-20.04
:新系统名称(建议与原名称一致)E:\WSL\Ubuntu-20.04
:目标路径(存放虚拟磁盘文件)--version 2
:强制使用WSL2
-
恢复默认用户
方法1(推荐) :通过PowerShell设置ubuntu2004.exe config --default-user <原用户名> # 例如原用户名为`ubuntu` [[2, 8, 11]]
方法2:修改WSL配置文件(若方法1无效)
- 启动Ubuntu:
wsl -d Ubuntu-20.04 -u root
- 编辑配置:
echo -e "[user]\ndefault=<用户名>" >> /etc/wsl.conf
- 退出并重启:
exit
→wsl --shutdown
- 启动Ubuntu:
-
验证迁移结果
- 运行
wsl -l -v
确认系统状态为Running
- 打开Ubuntu检查用户名和存储路径(应显示在E盘)
- 运行
关键注意事项
-
路径格式:
- Windows路径使用反斜杠(
E:\
),非Linux风格(/
) - 目标文件夹需提前创建(如
E:\WSL
)
- Windows路径使用反斜杠(
-
用户账户问题:
- 导入后默认以root登录,必须手动恢复原用户
- 若忘记原用户名,可尝试通过
/etc/passwd
文件查找(需root权限)
-
潜在风险:
- 迁移后可能无法访问
\\wsl$
网络路径(需重启或重装WSL) - VSCode可能无法连接:删除
C:\Users\<用户名>\AppData\Roaming\Code
中的vscode-remote-wsl
文件夹
- 迁移后可能无法访问
-
文件清理:
迁移成功后删除备份的.tar
文件以节省空间:del E:\WSL\Ubuntu-20.04.tar # 清理备份文件
依据总结:
- 核心步骤基于的导出→注销→导入流程。
- 用户恢复方案来自的
ubuntu2004.exe
命令和的wsl.conf
修改。- 路径规范参考(E盘操作实例)和(路径格式说明)。
2. 实操记录
1. 安装指定的 Ubuntu-20.04
wsl -l -v # 查看wsl安装的有效分发
wsl --list --online # 可安装的有效分发的列表。
wsl --install -d Ubuntu-20.04 # 安装指定的Ubuntu版本
2. wsl 迁移
1. 关闭wsl
不关闭也行,导出时会自动关闭
wsl --shutdown
2. 导出Ubuntu-20.04
wsl --export Ubuntu-20.04 E:/linuxwsl.tar
3. 卸载当前Ubuntu20.04LTS
wsl --unregister Ubuntu-20.04
4. 导入刚才导出的的my_ubuntu.tar
还使用之前的名字Ubuntu-20.04 ,不然修改默认用户麻烦
wsl --import Ubuntu-20.04 E:/linuxwsl E:/linuxwsl.tar --version 2
5. 设置默认用户
设置成你的用户名,不设置的话用root也行,最好设置一下
ubuntu2004 config --default-user ubuntu