通过 wsl export/import 命令可以实现WSL的备份与还原,在还原时可以指定安装路径从而实现安装路径迁移。
备份
1 2 3 4 5 6 7 8
| # 查看已安装的所有子系统 wsl --list --all # 查看正在运行的子系统 wsl --list --running # 若要备份的子系统正在运行,则将其终止 wsl -t Ubuntu-18.04 # 导出子系统到.tar文件 wsl --export <DistributionName> <FileName> wsl --export Ubuntu-18.04 D:\wsl\backup\ubuntu1804.tar
|
还原
1 2 3 4
| # 注销子系统(视情况,看是否需要) wsl --unregister Ubuntu-18.04 # 导入子系统 wsl --import <DistributionName> <InstallLocation> <FileName> wsl --import Ubuntu-18.04 D:\wsl\Ubuntu1804\ D:\wsl\backup\ubuntu1804.tar
|
新还原的Ubuntu子系统的默认用户会变成root(无论是在Windows Terminal中打开Ubuntu还是在vscode中通过Remote-WSL启动Ubuntu)
可以通过下面的命令
修改子系统默认用户
1 2 3 4 5 6
| # 定义函数WSL-SetDefaultUser,接收参数distro和user Function WSL-SetDefaultUser ($distro, $user) { Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq $distro | Set-ItemProperty -Name DefaultUid -Value ((wsl -d $distro -u $user -e id -u) | Out-String); }; # 调用函数,WSL-SetDefaultUser <DistroName> <UserName> WSL-SetDefaultUser Ubuntu-18.04 daimingzhuang # 取消函数定义 Remove-Item Function:WSL-SetDefaultUser
|
参考:
WSL备份与还原 | 小肥羊吃草不吃肉 (xfy-learning.com)