[教程]重装系统之后,恢复旧系统里面的WSL2环境到新系统,并从C盘迁移到其他分区
2022-6-21 2973

由于某些原因,我需要将当前操作系统重新安装。重装之前必须先备份当前操作系统,这是个好习惯。

备份完成后,安装新的Windows操作系统,当我安装常用软件后,我发现我需要使用旧系统里的WSL2环境。

网络上好像没有这类教程,所以干脆自己记录一下恢复过程。

安装崭新的WSL2环境

先安装WSL2环境,可以参考这篇文章:[教程]Windows10安装WSL环境,并切换到WSL2-Linux操作系统交流-PECMD技术社区

WSL默认的安装目录有两个,一个是程序目录,一个是用户目录。

程序目录位置:

C:\Program Files\WindowsApps\CanonicalGroupLimited.Ubuntu18.04onWindows_1804.2020.824.0_x64__79rhkp1fndgsc\

用户目录位置:

C:\Users\[用户名]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\

恢复步骤

恢复WSL2环境很简单,由于WSL2是一个虚拟机,所以它有一个vhdx文件,存放在:

C:\Users\[用户名]\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu_79rhkp1fndgsc\LocalState

如果你有心,会发现在WSL1安装好时,会在这个目录生成一个rootfs目录,这个目录就是Ubuntu所在位置,当WSL1转换为WSL2时,rootfs目录会被转换成一个ext4.vhdx文件,同时原目录会被删除。

所以我们就知道,只需要更换这个ext4.vhdx就行了。

从备份的镜像文件中找到这个文件,直接替换。

当你替换完成后,开始验证一下吧:

不错,备份的WSL2环境被顺利恢复了。

迁移WSL2

由于WSL默认安装位置在C盘,如果你使用时间长了之后,会占用C盘磁盘空间,那么我们就来迁移到其他分区吧。

假设我们要迁移到G:\WSL2\Ubuntu,先导出实例

wsl --export Ubuntu G:\WSL2\Ubuntu\Ubuntu_bak.tar

由于我这个WSL2环境的vhdx非常大,有8GB多,所以导出需要时间长一点

看看导出的结果,不错,从8GB压缩到7GB多

注销当前的实例

wsl --unregister Ubuntu

然后从Ubuntu_bak.tar导入,此时可以指定存放虚拟磁盘镜像文件的路径了,我担心导入的文件不能在安装目录里,所以我把tar文件移动到了上一层目录(实际上可能没问题)

wsl --import Ubuntu G:\WSL2\Ubuntu G:\WSL2\Ubuntu_bak.tar --version 2

没有报错就是都正常的,我们来验证一下

去默认的用户目录看看,已经没有vhdx文件了,体积也只有24KB了

登录看看,居然直接就是root用户,而且home目录变成了Windows的用户目录

嗯,这都不是大问题,能迁移成功就行了。

默认的登录用户可以重新设置:

此处内容隐藏,登录后可见!立即登录  登录后请刷新页面!刷新

收藏
点赞
道具卡
分享
官方QQ群:872611894(群密码:pecmd.net)
最新回复 (1)
  • avatar image
    mxlee 2023-6-27

    不错,值得学习一下

返回