重置Windows(保留我的文件)后恢复WSL2实例的技术咨询
重置Windows(保留我的文件)后恢复WSL2实例的技术咨询
别担心,这种情况其实挺常见的,只要你的WSL磁盘文件还在用户目录里,完全可以把它重新挂载回来,我给你一步步说怎么操作:
- 首先确认WSL环境正常:打开PowerShell,输入
wsl --list --verbose,如果能正常输出(哪怕没有任何实例),说明WSL已经正确启用了。 - 找到旧WSL的磁盘文件:它通常在你的用户目录下的
AppData\Local\Packages文件夹里,对应你之前使用的发行版(比如Ubuntu的文件夹名类似CanonicalGroupLimited.Ubuntu22.04LTS_xxxxxx),进入该文件夹后找到LocalState目录里的ext4.vhdx文件,复制好这个文件的完整路径。 - 创建一个新目录用来存放恢复后的WSL实例,比如
C:\WSL\MyOldUbuntu,路径可以根据你的习惯选择,只要方便管理就行。 - 执行导入命令:在PowerShell中输入(记得替换成你的实际用户名、对应的发行版文件夹路径):
这里的wsl --import MyOldUbuntu C:\WSL\MyOldUbuntu "C:\Users\你的用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx"MyOldUbuntu是你给恢复后的实例起的自定义名称,随便修改都可以。 - 导入完成后,再次输入
wsl --list --verbose,就能看到这个新导入的实例了,用wsl -d MyOldUbuntu命令就能启动它。 - 可能默认启动用户是root,这时候可以切换回你原来的用户:进入WSL实例后,用
sudo nano /etc/wsl.conf命令编辑配置文件,添加以下内容:
保存退出后,执行[user] default=你的旧用户名wsl --terminate MyOldUbuntu终止当前实例,再次启动WSL时就会自动用你原来的用户登录了。
如果之前用的是WSL1,操作逻辑类似,只是磁盘文件会是rootfs文件夹而不是ext4.vhdx,导入时直接指定这个rootfs文件夹的路径即可。
备注:内容来源于stack exchange,提问作者jessehouwing




