由于某些原因,我需要将当前操作系统重新安装。重装之前必须先备份当前操作系统,这是个好习惯。
备份完成后,安装新的Windows操作系统,当我安装常用软件后,我发现我需要使用旧系统里的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环境被顺利恢复了。
由于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的用户目录
嗯,这都不是大问题,能迁移成功就行了。
默认的登录用户可以重新设置:
此处内容隐藏,登录后可见!立即登录 登录后请刷新页面!刷新
不错,值得学习一下