设置 kvm 使用当前磁盘上的分区不起作用

设置 kvm 使用当前磁盘上的分区不起作用

我正在使用 libvirt kvm 和 virt manager,我的目的是拥有一个可以在裸机上和通过 kvm 使用的操作系统。我的磁盘上已经有一个 windows 分区,我创建了一个 vm 并将其添加为磁盘但当我启动它时它卡在从硬盘启动除非花费很长时间,并且如果我打开启动菜单,它会显示带有正确的存储量。我目前在我的 PC 上没有第二个磁盘,所以如果我可以使用同一个磁盘就太好了,我的目的是用它来玩游戏。

答案1

几年前,我也曾使用过同样的设置,但很遗憾地告诉您,当前版本的 Windows 故意阻止了这种设置。

直到 XP,Windows 都曾拥有硬件配置文件,您可以为虚拟机内部设置一个配置文件,为正常启动设置一个配置文件。它曾经用于扩展坞等,但后来被删除了。

现在,Windows 不会接受它所经历的被“移动”到不同硬件的情况。(类似于将磁盘放入另一台计算机。)因此,启动将导致大问题……如果可能的话。我还没有尝试过当前版本中发生的情况,但当时,它导致重新检测系统中的所有硬件。这需要多次重新启动,因为某些硬件只有在其他硬件在启动过程的早期已经工作后才能被检测到。当时,这就是您初始化新配置文件的方式,之后一切都很好。但现在,这必须发生在每一个在裸机和虚拟机之间切换。显然,这对于在操作系统之间快速切换是不可接受的。

此外,你所说的似乎表明你增加了一个分割作为一个磁盘。libvirt 和 Linux 很乐意这样做,但结果却是客户操作系统变成了“整个磁盘”,其中没有分区表,文件系统位于原始未分区磁盘上。(在您的情况下,这实际上是主机操作系统的一个分区。)虽然在某些硬件设置上,Linux 可以配置为这样启动,但这绝对不适用于 Windows。特别是据我所知,启动至少需要一个单独的 UEFI 分区。

因此,您唯一的选择,除了破解 Windows 注册表以在每次在虚拟机内和裸机启动之间切换时替换您在设备管理器中看到的所有内容(这可能可以通过 Linux 的注册表编辑工具实现,但我不知道还需要更改哪些其他文件。)之外,您唯一的选择是在虚拟机内单独安装 Windows,然后尽可能在这些安装之间共享。 (关键字:重复数据删除。)例如,将用户目录放在虚拟机和裸机安装使用的单独分区上。 并进行重复数据删除,移动到单独的分区并将其作为目录安装尽可能多的 Windows 安装本身,而不会破坏更新。 甚至可能在虚拟机的虚拟磁盘层完成一些更低级别的文件/块重复数据删除,但一个磁盘是真实磁盘,而不是像平常一样是另一个虚拟机的虚拟磁盘。 总而言之,这不是一个好的情况。感谢微软致力于成为一个由广告资助的、充满 DRM 的消费者操作系统,其中 DRM/TPM 代码不喜欢交换其下方的硬件。

也许你可以换个方式试试 Proton(无需 Steam 也可以使用)。我听说现在 Linux 上对 Windows 游戏的支持确实相当不错,这要归功于 Valve。

相关内容