Issues

  1. windows unix 编码问题
sudo apt update
sudo apt install dos2unix
dos2unix [filename]

导出、注销、导入 WSL

WSL 发行版可以通过 wsl --export 导出成 tar 文件,再用 wsl --import 导入到新的目录。这个方法适合备份、迁移磁盘位置,或者重建 Docker Desktop 的 WSL 数据。

先查看当前发行版名称:

wsl --list --verbose

操作前建议关闭所有 WSL 实例和 Docker Desktop:

wsl --shutdown

准备备份和导入目录:

mkdir E:\wsl\backup
mkdir E:\wsl\docker-desktop-data
mkdir E:\wsl\docker-desktop
mkdir E:\wsl\Ubuntu

命令格式

导出:

wsl --export <发行版名称> <tar文件路径>

注销:

wsl --unregister <发行版名称>

导入:

wsl --import <发行版名称> <安装目录> <tar文件路径>

注意:wsl --unregister 会删除对应发行版的数据。确认 tar 文件已经导出成功后,再执行注销。

迁移 docker-desktop-data

docker-desktop-data 保存 Docker Desktop 的镜像、容器、volume 等数据。迁移前一定要先退出 Docker Desktop。

wsl --shutdown
wsl --export docker-desktop-data E:\wsl\backup\docker-desktop-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data E:\wsl\docker-desktop-data E:\wsl\backup\docker-desktop-data.tar

迁移 docker-desktop

docker-desktop 是 Docker Desktop 使用的 WSL 发行版。顺序同样是先导出,再注销,最后导入。

wsl --shutdown
wsl --export docker-desktop E:\wsl\backup\docker-desktop.tar
wsl --unregister docker-desktop
wsl --import docker-desktop E:\wsl\docker-desktop E:\wsl\backup\docker-desktop.tar

迁移 Ubuntu

普通 Ubuntu 发行版也可以用相同方式迁移:

wsl --shutdown
wsl --export Ubuntu E:\wsl\backup\Ubuntu.tar
wsl --unregister Ubuntu
wsl --import Ubuntu E:\wsl\Ubuntu E:\wsl\backup\Ubuntu.tar

如果导入后默认用户变成了 root,可以在 Windows Terminal 或 PowerShell 里指定用户启动:

wsl -d Ubuntu -u <username>

也可以在 /etc/wsl.conf 里配置默认用户:

[user]
default=<username>

修改后关闭并重新启动 WSL:

wsl --shutdown