From Wikibooks, open books for an open world
< QEMU‎ | Devices
Jump to navigation Jump to search

Storage devices can be added using -drive parameter, or with the drive_add command in the QEMU monitor.

Media type[edit | edit source]

Several drive types can be emulated. This can be specified through the media modifier. If not specified, it defaults to disk.

Valid types are:

  • disk
  • cdrom


qemu -drive file=install-disc-1.iso,media=cdrom ...

Virtual FAT filesystem (VVFAT)[edit | edit source]

Qemu can emulate a virtual drive with a FAT filesystem. It is an easy way to share files between the guest and host.

It works by prepending fat: to a directory name. By default it's read-only, if you need to make it writable append rw: to the aforementioned prefix.


qemu -drive file=fat:rw:some/directory ...

WARNING: keep in mind that QEMU makes the virtual FAT table once, when adding the device, and then doesn't update it in response to changes to the specified directory made by the host system. If you modify the directory while the VM is running, QEMU might get confused.

Cache policies[edit | edit source]

QEMU can cache access to the disk image files, and it provides several methods to do so. This can be specified using the cache modifier.

Policy Description
unsafe Like writeback, but without performing an fsync.
writethrough Data is written to disk and cache simultaneously. (default)
writeback Data is written to disk when discarded from the cache.
none Disable caching.


qemu -drive file=disk.img,cache=writeback ...

Attaching drives to controller interfaces[edit | edit source]

If the drive is not attached to a controller interface (i.e. if=none), then it can be manually attached with:

Bus Argument
SCSI -device scsi-hd,drive={id}
USB -device usb-storage,drive={id}