手摸手教你如何将WSL从C盘迁移到其他盘,学不会作者下跪
-
列出所有安装的WSL发行版,记住这个名称(Ubuntu-22.04)
PS C:\Users\Admin> wsl -l 适用于 Linux 的 Windows 子系统分发版: Ubuntu-22.04 (默认)
-
在官方的常见问题解答查阅到,可以通过
wsl --export
命令将已安装的 WSL 发行版迁移到 D 盘或者其他盘,这里我在 I 盘下面创建了一个 WSL 文件夹,导出名称设置为了 Ubuntu-22.04.tarPS C:\Users\Admin> wsl --export Ubuntu-22.04 I:\WSL\Ubuntu-22.04.tar
-
之前的就可以卸载了
PS C:\Users\Admin> wsl --unregister Ubuntu-22.04 正在注销...
-
重新导入,指定名称和安装位置,参数:WSL名称、安装位置、刚才导出的 tar 文件
PS C:\Users\Admin> wsl --import Ubuntu-22.04 I:\WSL\Ubuntu-22.04 I:\WSL\Ubuntu-22.04.tar
-
此时就已经迁移成功了,可以看到
I:\WSL\Ubuntu-22.0
目录下有一个ext4.vhdx
虚拟硬盘文件# 之前导出的 tar 文件已经可以删除了 PS C:\Users\Admin> rm -Force I:\WSL\Ubuntu-22.04.tar
-
但是不要高兴的太早,通过
wsl
命令进入系统发现默认登录的用户怎么变成了root
???PS C:\Users\Admin> wsl root@PS2022NGOBPSKS:/mnt/c/Users/Admin#
-
问题不大,我们需要先记录下之前默认用户的 UID,执行:
PS C:\Users\Admin> wsl -u root -e id -u <用户名> 1000
-
此时打开我们的注册表编辑器。
win+R
输入regedit
回车输入路径
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss
这个文件夹下有一个或多个 GUID(如
{12345678-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
)的文件夹点进去看一下
DistributionName
的值,ok正是我要改的这个(Ubuntu-22.04)
-
在这个文件夹,双击 DefaultUid,将数值数据改为刚才查到的用户的UID,基数为十进制,确定然后关闭就完事了
-
此时再进入 wsl 已经是我们默认的用户了,完美撒花
PS C:\Users\Admin> wsl oyal@PS2022NGOBPSKS:/mnt/c/Users/Admin$