我双启动linux和windows。我希望能够将 Windows 的本机安装作为虚拟机打开,这样我就不必离开 Linux 来执行更新 Windows 等操作。
我发现让它工作的方法是将我的整个磁盘(/dev/sda、/dev/sdb...,每个磁盘都有 Windows 和 Linux 分区)传递给虚拟机。当我打开 Windows 时,这工作正常,因为我的 Windows 和 Linux 分区是完全分开的(我没有在 Linux 安装中安装任何 Windows 分区)。将整个磁盘传递给虚拟机的缺点是,您还可以(错误地)打开正在运行的 Linux 安装,我确信这会对我的系统造成严重破坏。
那么,除了我现在的做法之外,还有其他选择吗?
答案1
一种解决方案是创建一个循环设备,并使用 --sizelimit 选项。
# blockdev --getsize64 /dev/sda
146774507520
# losetup -f --sizelimit $(( 200*1024*1024 )) /dev/zero
/dev/loop0
# blockdev --getsize64 /dev/loop0
209715200
答案2
您也可以简单地通过您需要的分区。因此,我们假设您的 Windows 安装位于磁盘的分区 1 上sda
。不要/dev/sda
在 KVM/QEMU 配置中指定,而是替换为/dev/sda1
,并对任何其他分区作为单独的磁盘重复此操作。