磁盘文件迁移
理解磁盘迁移的应用场景与原理
掌握导出 - 注销 - 导入的完整迁移流程
能独立完成 WSL 磁盘从 C 盘迁移到其他盘
核心讲解
(1)为什么要迁移
默认 WSL 安装在 C 盘,用久了 vhdx 文件会越来越大,占用 C 盘空间。C 盘空间不足时,就需要把整个发行版迁移到 D 盘、E 盘等其他分区。
(2)迁移原理
WSL 支持发行版的导出和导入:
导出:把整个发行版打包成一个 tar 压缩包
注销:删除原来的发行版,释放 C 盘空间
导入:把 tar 包导入到新的位置,生成新的 vhdx 磁盘
验证启动,所有数据、软件、配置完全不变
(3)迁移注意事项
迁移前先停止 WSL,确保数据一致
目标盘要有足够的剩余空间
导出的 tar 包是临时文件,导入成功后可以删除
多个发行版要分别迁移
操作示例
# ===== 迁移完整步骤(管理员PowerShell) =====
# 0. 先停止所有WSL
wsl --shutdown
# 1. 导出发行版到指定位置
# 格式:wsl --export 发行版名 导出的tar文件路径
wsl --export Ubuntu-22.04 D:\WSL\ubuntu2204.tar
# 等待导出完成,时间和系统大小有关
# 2. 注销原发行版(删除C盘的文件)
wsl --unregister Ubuntu-22.04
# 确认后原发行版就被删除了,C盘空间释放
# 3. 导入到新位置
# 格式:wsl --import 新发行版名 安装目录 tar文件路径
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu2204 D:\WSL\ubuntu2204.tar
# 会在D:\WSL\Ubuntu2204目录生成ext4.vhdx
# 4. 验证
wsl -l -v
# 能看到导入的发行版,版本是2
# 5. 启动验证
wsl -d Ubuntu-22.04
# 所有文件、软件、配置都和原来一模一样
# 6. 导入成功后,删除临时tar包
Remove-Item D:\WSL\ubuntu2204.tar
常见误区
直接剪切 vhdx 文件:不能直接移动 vhdx,WSL 会找不到,必须用导出导入的方式
没停止就导出:运行中导出可能数据不一致,一定要先 --shutdown
注销后才发现导出失败:先确认导出的 tar 文件存在、大小正常,再注销原发行版
导入的发行版没有默认用户:导入后默认 root 登录,需要自己切换普通用户,设置默认用户
tar 包可以重复用:导出的 tar 是完整备份,可以随时导入恢复,适合备份系统
课后练习
将你的 WSL 发行版从 C 盘迁移到 D 盘
迁移完成后验证系统正常运行,文件都在
尝试导出一个发行版的备份 tar 包

