> On Apr 15, 2019, at 2:35 PM, John Snow <js...@redhat.com> wrote: > > > > On 4/15/19 6:23 AM, Programmingkid wrote: >> >>> On Apr 15, 2019, at 5:54 AM, Stefan Hajnoczi <stefa...@gmail.com> wrote: >>> >>> On Sun, Apr 14, 2019 at 07:33:17PM -0400, Programmingkid wrote: >>>> Hi I was wondering if anyone has been able to boot from a bootcamp >>>> partition inside of QEMU. I know this partition can be used in QEMU but my >>>> own attempts at booting Windows 7 on my bootcamp partition did not work. I >>>> always see "A disk read error occurred". Has anyone else been successful >>>> at this? >>> >>> Hi, >>> It's difficult to help without more information: >>> 1. What is your QEMU command-line? >> >> sudo qemu-system-x86_64 -name "Windows 7" -hda "/dev/disk0s4" -boot "c" -m >> 3000 >> >>> 2. What is the partition table on the disk? >> >> The bootcamp partition is this: /dev/disk0s4 >> > > (Are you trying to boot a partition as an entire block device ...?)
I am trying to boot a partition. > >>> General problems with booting Windows are usually caused by a guest >>> configuration that doesn't match the hardware configuration that Windows >>> was installed under. Can you check that the AHCI bus address of the >>> disk and partition numbering matches what Windows expected? >> >> How would someone do this? >> >>> It may also be useful to enable tracing (see docs/devel/tracing.txt) to >>> see what the ahci_* trace event log says. I have CCed John Snow, one of >>> the few people who can read this log :). >> >> I'm guessing you believe the problem is the partition can't be read in QEMU. >> I know for sure it can. I attached this partition to another QEMU VM and was >> able to see it on the Desktop. >> > > Well, we don't know what the problem is. From the command line above it > looks like it'd be using the legacy IDE emulation instead of the newer > SATA emulation, though. I'd wager that the Windows boot loader here is > not expecting to use IDE. > > "disk read error" could mean a lot of things from the POV of a guest, > but having disk emulation tracing would show us what the guest is trying > to do, at least. How do I enable this tracing? > >> My guess is the computer is using an EFI firmware and QEMU uses the >> traditional BIOS firmware (SeaBIOS). So I think trying UEFI in QEMU might >> work. >> > > Try using -M q35 which will engage SATA and AHCI emulation, and try > using UEFI, yes. I tried using a OVMF firmware file I found online. It will not work when I use "-M accel=hvf --cpu host". The screen just stays small and black instead of a screen with the firmware info. This test was done with git revision 3284aa128153750f14a61e8a96fd085e6f2999b6 of QEMU. The only way to make the OVMF work is to not use the accelerator: sudo qemu-system-x86_64 -name "Windows 7" -boot "c" -m 4000 -pflash OVMF.fd I did have success with booting a Windows 7 HD image file and was able to view the bootcamp partition as another drive. I used seaBIOS instead of OVMF. Windows 7 did crash a lot. The error was always DRIVER_IRQL_NOT_LESS_OR_EQUAL. I also saw this error printed by QEMU: Unimplemented handler (fffff80002705050) for 0 (f c3) This is the command-line I was using: sudo qemu-system-x86_64 -name "Windows 7" -hda "Windows 7 HD.qcow2" -hdb "/dev/disk0s4" -boot "c" -netdev user,id=mynet0 -device rtl8139,netdev=mynet0 -m 4000 -usb -device usb-audio -M accel=hvf --cpu host I just realized that the Bootcamp partition is formatted as NTFS. This is probably why it does not work with SeaBIOS. Thank you everyone who tried to help.