How to emulate a SATA disk drive in QEMU

10,811

Solution 1

The Gentoo Wiki offers these parameters:

-drive id=disk,file=IMAGE.img,if=none \
-device ahci,id=ahci \
-device ide-hd,drive=disk,bus=ahci.0

Set emulation layer for an ICH-9 AHCI controller (not yet stable ) and use the specified image file for it. The AHCI emulation supports NCQ, so multiple read or write requests can be outstanding at the same time.

EDIT: A revision to the Wiki on 31 October 2018 suggests the AHCI controller may be stable now.

Solution 2

When using i386 or x86_64 with Q35 machine type(-M q35), IDE disk has been AHCI by default.

Share:
10,811

Related videos on Youtube

Dragonight
Author by

Dragonight

Updated on September 16, 2022

Comments

  • Dragonight
    Dragonight over 1 year

    I want to emulate a SATA disk drive in QEMU to check a device driver I'm trying to develop. How can this be done? Would greatly appreciate your help.

  • Mike Stoddart
    Mike Stoddart almost 5 years
    Is the drive auto-mounted at boot? Or do you have to manually mount the drive once Qemu has booted Linux?
  • Gal
    Gal over 3 years
    For me a device was automatically created but drive was not mounted. It will be visible with lsblk, you will need to format it (to ext4 for example) and mount it (normally to /mnt/data). This was useful for me digitalocean.com/community/tutorials/…
  • NiKiZe
    NiKiZe almost 3 years
    ide-drive is deprecated, use ide-hd instead, got 'ide-drive' is not a valid device model name and found no explanation. some details
  • mwfearnley
    mwfearnley almost 3 years
    @NiKiZe thanks, I see you've also edited the Gentoo Wiki page also. I've updated the command to match your change.