Recent kernel detect MS Hyper-V and use VMBUS technology for disk access.
It works fine on Hyper-V VMM but kernel mis-detect Virtual-PC on Windows 7.
Because there is not VMBUS technology in Virtual-PC, so kernel cannot find root disk and fails to boot.
Kernel should detect Virtual-PC than Hyper-V.
It is known that Hyper-V has a bios vendor name 'VRTUAL' now but it is easily changable.
Patch is as follows:
static int prefer_ms_hyperv = 1;
module_param(prefer_ms_hyperv, int, 0);
static void piix_ignore_devices_quirk(struct ata_host *host)