目录
- 【WSL2】迁移Windows虚拟子系统(Ubuntu)
- 安装Ubuntu子系统
- 导出虚拟机
- 迁移虚拟机
- 问题记录
- 小结
- 参考资料
【WSL2】迁移Windows虚拟子系统(Ubuntu)
看了 《从Windows的Docker Desktop转到Windows11+WSL》,在本机(Windows11)上安装了Ubuntu子系统,配好了Docker环境之后,同事Q伸手党,所以扒了一下怎么将子系统导出给他,顺便记录一下操作步骤。
安装Ubuntu子系统
Microsoft Store里面有提供下载
不过这里要注意,如果直接点击获取,Windows会直接把Ubuntu安装到C盘,当然后期可以手动调整,可是我还是倾向于决定权掌握在自己手里,所以我选择第二个建议,下载了 Ubuntu 20.04 安装包。
但是并没有像文中所说的下载到一个后缀名为.appx
的文件,而是:
不过问题不大,照样把后缀改成.zip,解压之后发现里面的内容是长这样的:
好了,找到前文说的.appx
文件了,书接上一回,将这个文件后缀改成.zip
,然后解压到想安装的盘:
进入目录后,双击运行 ubuntu.exe ,会弹出一个窗口,按提示创建用户之后,回到上面的目录,会发现下多了一个 ext4.vhdx ,到这里子系统就算是安装好了。
导出虚拟机
此时打开命令提示符窗口(记得右键选择以管理员身份运行,以免后面操作的时候提示权限不足),查看虚拟机状态,输入:
wsl -l -v
输出如下信息:
STATE=Running ,说明虚拟机正在运行,在导出前应先将虚拟机关闭,接着输入:
wsl --shutdown
然后再次查看虚拟机状态:
此时可以进行导出操作了,输入:
wsl --export Ubuntu E:\Ubuntu.tar
稍等片刻,喝杯水,回来打开E盘,找到 Ubuntu.tar ,至此,导出完成。
迁移虚拟机
同事Q的电脑上已经装过wsl,原来的子系统也已经铲掉,直接开始干活:
- 将 Ubuntu.tar 和 Ubuntu_2004.2021.825.0_x64.zip 拷到同事的电脑上;
- 解压 Ubuntu_2004.2021.825.0_x64.zip 到他指定的目录,如 E:\Ubuntu ,此时注意:先不要运行 ubuntu.exe;
- 打开命令提示符,将 Ubuntu.tar 导入到第2步解压的目录下:
wsl --import Ubuntu E:\Ubuntu I:\Ubuntu.tar
- 设置虚拟机默认用户,需要是原虚拟机上存在的用户:
E:\Ubuntu\ubuntu.exe config --default-user tc
最后双击运行 ubuntu.exe,能直接进入子系统,说明迁移完成了。
问题记录
- 问题1
子系统要通过 WSL 进行 export 和 import
- 问题描述
我将E盘下的 Ubuntu 文件夹直接压缩打包丢给了同事Q,直接解压后运行 ubuntu.exe,会提示创建用户信息,创建完毕之后,目录下的虚拟机文件(ext4.vhdx)被覆盖。 - 问题原因
文件夹下的 ext4.vhdx 并没有与同事Q电脑上的 WSL 存在关联,当运行 ubuntu.exe 时会重新建立子系统绑定到 WSL,并在对应目录下生成了新的 ext4.vhdx 。
- 问题2
子系统启动时出现错误提示:Unable to setup logging. [Errno 2] No such file or directory: '/home/tc/.landscape'
- 问题描述
为了方便互相伤害(可能后续还需要互相拷贝子系统),同事Q建议将虚拟机用户名修改为公共用户名,修改完成后重新登录出现上述错误提示。 - 问题原因
/etc/passwd文件中,用户对应的宿主目录路径未变更,但目录已更名 。
小结
迁移完成,把操作记录一下,方便回看,文章仅仅为了留给自己当作笔记,不会用于任何商用,侵删。
参考资料
《从Windows的Docker Desktop转到Windows11+WSL》
《WSL2 更换硬盘位置》
《Ubuntu修改密码和用户名》
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)