我有一个多重启动系统,有时我启动到 Linux,有时我启动到 Windows 并使用 WSL2。
我刚刚发现 Linux 有可用于 vhdx 文件的工具,并且我可以从 Linux 挂载映像并进入 WSL2 实例。它几乎看起来像一个 Docker 映像,而不是虚拟机。
如何从 Linux 导出 vhdx 文件以便对其进行备份?是否有任何 Linux 工具可以帮助缩小图像或其他值得注意的事情?以读写方式挂载图像并将更改保存到文件系统有多安全?
答案1
第一的:
它看起来几乎像一个 Docker 镜像而不是虚拟机。
这是一个敏锐的观察。WSL2 发行版(我更喜欢用“实例”这个词)更像是 Docker 容器,而不是虚拟机。WSL2 系统本身作为虚拟机运行,然后每个发行版/实例都在其自己的 PID 命名空间/容器中执行,但与其他正在运行的 WSL2 实例共享相同的内核和网络。
我刚刚发现 Linux 有可用于 vhdx 文件的工具
为了回答这个问题,我假设你指的是guestmount
来自客戶端包裹。
如何从 Linux 导出 vhdx 文件以进行备份?在 Windows 中,命令 wsl --export 会将 WSL VM 备份到 tar 文件。稍后可以将其恢复并制作成 WSL 实例。我想知道我是否可以使用 Linux 工具来做同样的事情。
虽然我不太明白这一点(除非是类似数据恢复),我自己也没有测试过——当然,我想不出有什么理由不能--import
在 Linux 中从 VHDX 中的文件创建 WSL 可用的 tarball。我创建了类似的从 chroot 目录中自行打包. 创建 tarball 时:
- 保持所有所有者和权限相同(因此一定要
tar
以 sudo/root 身份运行) - 使用该
--xattrs
选项来tar
维护扩展属性是个好主意。这些属性可以在某些发行版中用于功能等。
以读写方式挂载图像并将更改保存到文件系统有多安全?
对于超级用户来说,这也许有点太过“意见”了。我的看法是 - 考虑到项目的成熟度,这可能是相当安全的,但我自己仍然不会相信一个好的 WSL2 VHDX。
我只是不确定重点是什么。如果你要走这条路,我建议将你需要的任何文件放在 Windows 驱动器的 NTFS 挂载上,然后使用 Windows 方面的“正常”方法将它们复制进去。无论如何,在你双启动回到 Windows 之前,它们在 WSL 中是无法使用的。
是否有任何 Linux 工具可以帮助缩小图像或其他值得注意的事情?
有一个相当不错的工具列表随guestfs
安装一起提供。同样,如果您需要缩小图像ext.vhdx
,可以使用Microsoft 工具这样做我可能会更加信任。无论如何,我始终建议在运行它们之前进行备份。