WSL2迁移以及空间回收。
# Intro
如果你按照正常方式在设置里移动 wsl 的话就会发现报错,本篇文章向您介绍如何正确迁移以及回收空间。
# 移动
在 Windows 的 PowerShell 中输入:
1 | wsl --help |
可以看到关于这个命令的使用帮助说明:
1 | 用法: wsl.exe [参数] [选项...] [命令行] |
这里我们使用到 export 、unregister 和 import 几个选项就可以实现迁移。
- 终止正在运行的分发或虚拟机:
cmd 1
wsl --shutdown
- 查看已安装的 wsl 名称:
cmd 1
wsl.exe --list --all
cmd 1
2
3
4适用于 Linux 的 Windows 子系统分发:
Debian (默认)
kali-linux
Ubuntu - 对需要迁移的分发或虚拟机导出(我要迁移 kali-linux):
cmd 1
wsl --export kali-linux D:\kali
- 卸载分发版或虚拟机(如果是要重装系统或换机器安装,这一步可以省略,但是要将上一步导出的文件保存好)
cmd 1
wsl --unregister kali-linux
- 导入新的分发版或虚拟机:
cmd 1
wsl --import kali-linux D:\wsl\kali D:\kali
# 压缩
等待导入后你会发现移动的其实是 vhdx 文件,那么就可以对这个文件进行回收空间。
- 以管理员身份运行 cmd,输入 diskpart 命令按回车。
- 使用以下命令选择你的 userdata.vhdx
1 | select vdisk file = "D:\wsl\ext4.vhdx" |
如果提示
1 | DiskPart successfully selected the virtual disk file. |
就说明成功了。
- 输入
compact vdisk
来压缩。
# bug
1 | ERROR: Wsl/Service/CreateInstance/ERROR_FILE_NOT_FOUND |
打开命令行,在命令行中输入
1 | wsl.exe --list --all |