如何从 Linux 备份和使用 WSL 实例?

如何从 Linux 备份和使用 WSL 实例?

我有一个多重启动系统,有时我启动到 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 工具这样做我可能会更加信任。无论如何,我始终建议在运行它们之前进行备份。

相关内容