qemu/docs/usb-storage.txt
<<
>>
Prefs
   1
   2qemu usb storage emulation
   3--------------------------
   4
   5QEMU has three devices for usb storage emulation.
   6
   7Number one emulates the classic bulk-only transport protocol which is
   8used by 99% of the usb sticks on the market today and is called
   9"usb-storage".  Usage (hooking up to xhci, other host controllers work
  10too):
  11
  12  qemu ${other_vm_args}                                \
  13       -drive if=none,id=stick,file=/path/to/file.img  \
  14       -device nec-usb-xhci,id=xhci                    \
  15       -device usb-storage,bus=xhci.0,drive=stick
  16
  17
  18Number two is the newer usb attached scsi transport.  This one doesn't
  19automagically create a scsi disk, so you have to explicitly attach one
  20manually.  Multiple logical units are supported.  Here is an example
  21with tree logical units:
  22
  23  qemu ${other_vm_args}                                                \
  24       -drive if=none,id=uas-disk1,file=/path/to/file1.img             \
  25       -drive if=none,id=uas-disk2,file=/path/to/file2.img             \
  26       -drive if=none,id=uas-cdrom,media=cdrom,file=/path/to/image.iso \
  27       -device nec-usb-xhci,id=xhci                                    \
  28       -device usb-uas,id=uas,bus=xhci.0                               \
  29       -device scsi-hd,bus=uas.0,scsi-id=0,lun=0,drive=uas-disk1       \
  30       -device scsi-hd,bus=uas.0,scsi-id=0,lun=1,drive=uas-disk2       \
  31       -device scsi-cd,bus=uas.0,scsi-id=0,lun=5,drive=uas-cdrom
  32
  33
  34Number three emulates the classic bulk-only transport protocol too.
  35It's called "usb-bot".  It shares most code with "usb-storage", and
  36the guest will not be able to see the difference.  The qemu command
  37line interface is simliar to usb-uas though, i.e. no automatic scsi
  38disk creation.  It also features support for up to 16 LUNs.  The LUN
  39numbers must be continuous, i.e. for three devices you must use 0+1+2.
  40The 0+1+5 numbering from the "usb-uas" example isn't going to work
  41with "usb-bot".
  42
  43enjoy,
  44  Gerd
  45
  46--
  47Gerd Hoffmann <kraxel@redhat.com>
  48