在使用win10的wls2功能安装虚拟机时,安装的ubuntu系统通常都是放在了主机的C盘,非常占据空间,因此考虑将其移动到D盘中,然而在移动过程中却遇到了一些问题,最终移动到了E盘(移动磁盘)

移动过程

  1. 打开powershell
  2. 查看ubuntu版本号
wsl -l -v 
  1. 关闭ubuntu(这里后面的20.04对应的版本号)
wsl --shutdown Ubuntu-20.04
  1. 文件备份,将其导出到E盘的WSL2UBUNTUBACKUP
wsl --export Ubuntu-20.04 E:\WSL2UBUNTUBACKUP\WSL2Ubuntu-20.04.bak

6.导入虚拟机到D盘的WSL2UBUNTUBACKUP文件夹下

wsl --import Ubuntu-20.04 D:\WSL2Ubuntu20.04LTS E:\WSL2UBUNTUBACKUP\WSL2Ubuntu-20.04.bak --version 2

接下来还可以设置ubuntu启动时的默认用户名,其中username是启动时的默认用户名

ubuntu2004 config --default-user username

遇见问题一:

在这里插入图片描述
在执行导出的时候报错

已存在具有提供的名称的分发

直接执行以下语句注销在当前主机上的系统即可:

wsl --unregister Ubuntu-20.04

问题二

在执行导入系统时报错:

由于虚拟磁盘系统限制,无法完成请求的操作。虚拟硬盘文件必须是未压缩和未加密的文件,并且不能是稀疏文件

这个百度说是由于loadState属性的原因,只需要找到该文件夹修改文件属性即可,参考如下:

找到ubuntu的文件目录,比如我的是C:\Users\xxx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\ ,右键“LocalState”-属性-高级,然后取消选择压缩文件(如果加密文件被选择了的话也要取消一下)。如果被问到是否只应用到此文件夹还是也应用到子文件夹和子文件,就选择仅此文件夹,因为我们的目的只是清除压缩的标志,然后就可以重新运行升级命令并查看更新后的版本。

以上内容来自于此链接

然而我尝试了一下该方法,首先由于已经执行了unregister指令注销了系统,因此localState文件夹已经为空了,虽然按照上述方法设置了但仍然没用。
然后我就直接将导入的磁盘换成E盘,然后就导入成功了。
解决问题过程如下:
在这里插入图片描述接下来直接点击windows端的ubuntu图标就能正常启动该系统并登录了(也就是依然是原来的启动方式)。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐