我有一个安装在硬盘驱动器上的Windows XP副本,我想与QEMU一起运行。
当我直接从硬盘驱动器启动它运行良好:
qemu -m 256 -hda /dev/sdc
Starting Windows...etc...etc...
虽然硬盘容量为320GB,但我的系统实际上位于磁盘开头的4GB分区中:
/sbin/fdisk -l /dev/sdc
Disk /dev/sdc: 320 GB, 320070320640 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 510 4096543 b FAT32
Warning: Partition 1 does not end on cylinder boundary.
所以我想我只能将分区表和第一个分区(8192000扇区)复制到原始图像以供QEMU使用:
dd if=/dev/sdc of=winxp.img count=8192000
当然,既然winxp.img
是副本/dev/sdc
,它具有完全相同的分区布局:
/sbin/fdisk -l winxp.img
Disk /mnt/windata/winxp.raw: 4 GB, 4186667520 bytes
255 heads, 63 sectors/track, 509 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/mnt/windata/winxp.raw1 * 1 510 4096543 b FAT32
Warning: Partition 1 does not end on cylinder boundary.
但是,当我尝试将原始映像与QEMU一起使用时,guest虚拟机系统将无法启动:
qemu -m 256 -hda winxp.img
Booting from hard disk...
NTLDR is missing
我可以更改哪些设置以使我的图像文件与QEMU兼容?我应该在分区表中还是在分区本身中更改某些内容以使其正常工作?是否有QEMU选项可以提供帮助?
或者是否可以使用/dev/sdc1
QEMU的副本而不是副本/dev/sdc
?
sdc
很好 - 为什么你复制sdb
呢?为什么只有8192000
块?你是否试图sdc
整体复制?另外,根据你的fdisk
输出,磁盘“几何”略有改变,我不会对NTLDR对barf感到惊讶: - \另一件事:qemu
你在使用时会启动sdc1
吗?如果是这样,请尝试sdc1
仅复制,而不是整个磁盘。
qemu -hdachs
选项来设置正确的几何图形。