WSL2 迁移 Linux 发行版
意图
- 备份还原
- 迁移
- 节省 C 盘空间
- ……
步骤
导出
1wsl.exe --export <DistributionName> <FileName>
导入
1wsl.exe --import <DistributionName> <InstallLocation> <FileName>
提示:导入之后,执行 wsl -l -v 查看运行版本,如果是 1 的话,可以执行 wsl --set-version <DistributionName> 2 更新到 2
WSL 默认登录用户
如果迁移完毕后发现默认登录用户被置为:root,或者想要手动指定默认的登录用户,可以按如下操作设置:
注册表项:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
其中的 DefaultUid 一项,设置为对应子系统中的 Linux UID,UID 可以登录进 WSL 获取
或者:
这里有一个老外提供的,只需提供用户名,不需要登录也能设置 DefaultUid 的 powershell 函数,注意该用户必须存在于子系统中
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 <DistributionName> <username>
参考
https://docs.microsoft.com/en-us/windows/wsl/install-win10
https://github.com/microsoft/WSL/issues/3974
本文采用 知识共享署名许可协议(CC-BY 4.0)进行许可,转载注明来源即可。如有错误劳烦评论或邮件指出。