Qemu - Disk Type, SATA Controller Questions

1

This is not so much of a question asking for an answer as it is just looking for an explanation. Imagine the following scenario.

I have a Windows 7 Laptop, Dell Precicion M4500 series, with an SSD running in RAID mode (meaning that the RAID option is enabled in the BIOS, it's the only physical disk connected to the machine). When I take an image of this machine using VMWare's VCenter converter and attempt to run it in QEMU/KVM I get a BSOD 0x0000007B error. Changing the disk type in virt-manager did little to aid this issue.

This would lead to my first question: What does specifying the disk type (IDE,SATA,SCSI) exactly mean in Qemu?

This BSOD error is explained here: http://support.microsoft.com/kb/324103. I understand that it is a problem initializing the drivers for the hard disk controller. This can be remedied by adding registry entries to have the drive boot in an IDE mode, problem solved.

After adding the appropriate registry entries/drivers and taking another image with VMWare's VCenter, it booted perfectly fine.

This leads me to my second question: Could Qemu be modified to properly emulate the SATA Controller? Or am I approaching this problem in the wrong way?

Now for my final question (which might not even make sense): When taking an image with VMWare's VCenter Converter, you are given the option to choose the type of disk controller: IDE,SATA,SCSI, etc. How does this relate to the disk type that is selected later in Qemu? I am confused because images that I take with VMWare VCenter having selected SCSI will only boot in QEMU with IDE as the disk type. Any kind of clarification here would be great!

tl;dr:

1.) What significance does disk type have when using Qemu, in relation to the machine from which the image was taken?

2.) Can QEMU be modified to emulate a SATA controller running in RAID mode?

3.) How does the type of disk controller selected with VMWare VCenter relate to the disk type that is selected in Qemu or relate to the physical machine that is being imaged?

linux
ubuntu
windows
virtual-machines
qemu
asked on Server Fault Mar 12, 2014 by Jones • edited Mar 12, 2014 by Michael Hampton

1 Answer

1

OK, lets take this step by step.

  1. The 0x7B error is Windows being unable to boot, because it doesn't recognise the disk controller in use. You installed the OS on physical hardware in a certain mode, then converted it to a VM, with a different disk controller (emulated, but it doesn't really matter). This is like moving a disk between two completely different physical hosts - you will likely get this error when you do that.
  2. When you use software like vmware converter, this is in fact a P2V process (physical to virtual), and during this process, you don't only get the physical disks converted into images, the OS gets injected with drivers for the hardware emulated on the target hypervisor platform. So a vmware converter will inject vmware drivers, and prepare the guest OS to run on a VMWare platform.
  3. As you can see from the above, you've prepared your system to run on vmware, but not qemu or kvm. To convert a setup to run under kvm, you need to use a utility called virt-p2v, which, just like the vmware converter does for vmware, will inject the drivers and insert the disk image into a libvirt managed KVM host.
answered on Server Fault Mar 12, 2014 by dyasny

User contributions licensed under CC BY-SA 3.0