I’m attaching a VHD to the VM
Then you're not attaching your physical disk in any way, and its transport is completely irrelevant. The hypervisor itself acts as the VMs' disk controller and doesn't interact with physical storage beyond reading/writing files. (It's not uncommon to store VHDs on an external SMBv3 fileserver...)
I’m running Arch Linux as one of the guests. It’s showing that I need driver for device wd719x; I assume that it’s emulated by Hyper-V.
I'm going to guess that this has nothing to do with your VM's hardware, emulated or not. You're probably seeing a bunch of "missing firmware" warnings when mkinitcpio builds its "fallback" initramfs image.
The regular initramfs is adapted to the exact system it's being built on; the "fallback" variant skips any device autodetection and throws in as many block-device drivers as it could find (so that the same initramfs would be bootable on many different machines), even though the current system has none of them attached.
In reality, if you selected an IDE/ATA controller in Hyper-V, you'll get a fairly standard
ata_piix (as can be seen in
If you use a "Generation 2" VM, and/or if you add an SCSI controller, then you will get a native VMBus-based SCSI controller via the
hv_storvsc driver (Microsoft's mechanism similar to virtio).
Even the parent partition only see SCSI disk; I checked it from Device Manager, in the Details tab, property Hardware Ids. It says
That seems to be normal when in AHCI mode – although I couldn't find any official explanation, at least as far as first-party drivers go.
(From what I could figure out: The only alternative would have been
IDE\, but that is not really a good choice – e.g. it assumes the presence of primary/secondary IDE channels and master/slave ports, neither of which exist in SATA/AHCI. Perhaps the Windows developers found that mapping SATA to SCSI is easier than mapping it to IDE/PATA?
Either way, Windows wouldn't be the first OS to do so – Linux has been presenting IDE/ATA devices as if they were SCSI ever since the 2.6 kernel release sometime around 2004.)
As long as the parent device shows up as a SATA AHCI controller (using storahci, msahci, or Intel's IRST driver) you're good.