This looks like a command line / configuration issue which results in a name collision as Dave predicted above. I had to piece this together out of bits of information since documentation is a bit sparse but the following works. Note the explicit ID and LUN values on the -device declarations: sudo qemu-system-aarch64 -enable-kvm -machine virt -cpu host -machine type=virt -nographic -smp 1 -m 2048 -kernel aarch64-linux-3.15rc2-buildroot.img --append "console=ttyAMA0" \ -device virtio-scsi-device,id=scsi0 \ -device virtio-scsi-device,id=scsi1 \ -drive file=scsi_1.img,format=raw,if=none,id=d0 \ -device scsi-hd,bus=scsi0.0,scsi-id=0,lun=0,drive=d0 \ -drive file=scsi_2.img,format=raw,if=none,id=d1 \ -device scsi-hd,bus=scsi1.0,scsi-id=0,lun=1,drive=d1 Added debug shows the following (Note the LUN value of 1 for the second drive): calculate_compat_instance_id: For [scsi-disk], Init instance_id to [0] calculate_new_instance_id: For [0:0:0/scsi-disk], Init instance_id to [0] calculate_compat_instance_id: For [scsi-disk], Init instance_id to [0] calculate_compat_instance_id: Found match for [scsi-disk], incrementing instance_id is now [1] calculate_new_instance_id: For [0:0:1/scsi-disk], Init instance_id to [0] Note: even though it's on a different bus, specifying the same id & lun will cause a collision. If desired, the above can be simplified to use a single bus: sudo qemu-system-aarch64 -enable-kvm -machine virt -cpu host -machine type=virt -nographic -smp 1 -m 2048 -kernel aarch64-linux-3.15rc2-buildroot.img --append "console=ttyAMA0" \ -device virtio-scsi-device,id=scsi0 \ -drive file=scsi_1.img,format=raw,if=none,id=d0 \ -device scsi-hd,bus=scsi0.0,scsi-id=0,lun=0,drive=d0 \ -drive file=scsi_2.img,format=raw,if=none,id=d1 \ -device scsi-hd,bus=scsi0.0,scsi-id=0,lun=1,drive=d1 Searching the web, I saw this more commonly done with virtio-scsi-pci instead of virtio-scsi-device (but I can't tell you why): sudo qemu-system-aarch64 -enable-kvm -machine virt -cpu host -machine type=virt -nographic -smp 1 -m 2048 -kernel aarch64-linux-3.15rc2-buildroot.img --append "console=ttyAMA0" \ -device virtio-scsi-pci,id=scsi0 \ -device virtio-scsi-pci,id=scsi1 \ -drive file=scsi_1.img,format=raw,if=none,id=d0 \ -device scsi-hd,bus=scsi0.0,scsi-id=0,lun=0,drive=d0 \ -drive file=scsi_2.img,format=raw,if=none,id=d1 \ -device scsi-hd,bus=scsi1.0,scsi-id=0,lun=1,drive=d1 Note that the name used internally now includes the bus id: calculate_compat_instance_id: For [scsi-disk], Init instance_id to [0] calculate_new_instance_id: For [0000:00:02.0/0:0:0/scsi-disk], Init instance_id to [0] calculate_compat_instance_id: For [scsi-disk], Init instance_id to [0] calculate_compat_instance_id: Found match for [scsi-disk], incrementing instance_id is now [1] calculate_new_instance_id: For [0000:00:03.0/0:0:1/scsi-disk], Init instance_id to [0] This means that it is now possible to use the same LUN for the drives on the 2 different buses: sudo qemu-system-aarch64 -enable-kvm -machine virt -cpu host -machine type=virt -nographic -smp 1 -m 2048 -kernel aarch64-linux-3.15rc2-buildroot.img --append "console=ttyAMA0" \ -device virtio-scsi-pci,id=scsi0 \ -device virtio-scsi-pci,id=scsi1 \ -drive file=scsi_1.img,format=raw,if=none,id=d0 \ -device scsi-hd,bus=scsi0.0,scsi-id=0,lun=0,drive=d0 \ -drive file=scsi_2.img,format=raw,if=none,id=d1 \ -device scsi-hd,bus=scsi1.0,scsi-id=0,lun=0,drive=d1 Internally: calculate_compat_instance_id: For [scsi-disk], Init instance_id to [0] calculate_new_instance_id: For [0000:00:02.0/0:0:0/scsi-disk], Init instance_id to [0] calculate_compat_instance_id: For [scsi-disk], Init instance_id to [0] calculate_compat_instance_id: Found match for [scsi-disk], incrementing instance_id is now [1] calculate_new_instance_id: For [0000:00:03.0/0:0:0/scsi-disk], Init instance_id to [0] Here also, a single bus works fine as long as ID + LUN is unique: sudo qemu-system-aarch64 -enable-kvm -machine virt -cpu host -machine type=virt -nographic -smp 1 -m 2048 -kernel aarch64-linux-3.15rc2-buildroot.img --append "console=ttyAMA0" \ -device virtio-scsi-pci,id=scsi0 \ -drive file=scsi_1.img,format=raw,if=none,id=d0 \ -device scsi-hd,bus=scsi0.0,scsi-id=0,lun=1,drive=d0 \ -drive file=scsi_2.img,format=raw,if=none,id=d1 \ -device scsi-hd,bus=scsi0.0,scsi-id=0,lun=5,drive=d1 Internally: calculate_new_instance_id: For [0000:00:02.0/virtio-scsi], Init instance_id to [0] calculate_compat_instance_id: For [scsi-disk], Init instance_id to [0] calculate_new_instance_id: For [0000:00:02.0/0:0:1/scsi-disk], Init instance_id to [0] calculate_compat_instance_id: For [scsi-disk], Init instance_id to [0] calculate_compat_instance_id: Found match for [scsi-disk], incrementing instance_id is now [1] calculate_new_instance_id: For [0000:00:02.0/0:0:5/scsi-disk], Init instance_id to [0]