The problem with block devices exposed using virtio in kvm is that they look quite similar according to udevadm. For example, the following devices are supposed to be a virtual hard drive and cdrom respectively:
$ udevadm info -q env -p /block/vda UDEV_LOG=3 DEVPATH=/devices/virtio-pci/virtio1/block/vda MAJOR=252 MINOR=0 DEVNAME=/dev/vda DEVTYPE=disk SUBSYSTEM=block ID_PART_TABLE_TYPE=dos DEVLINKS=/dev/block/252:0
$ udevadm info -q env -p /block/vdb UDEV_LOG=3 DEVPATH=/devices/virtio-pci/virtio2/block/vdb MAJOR=252 MINOR=16 DEVNAME=/dev/vdb DEVTYPE=disk SUBSYSTEM=block ID_FS_LABEL=Ubuntu-Server_10.04_i386 ID_FS_LABEL_ENC=Ubuntu-Server\x2010.04\x20i386 ID_FS_TYPE=iso9660 ID_FS_USAGE=filesystem DEVLINKS=/dev/block/252:16 /dev/disk/by-label/Ubuntu-Server\x2010.04\x20i386
The problem with block devices exposed using virtio in kvm is that they look quite similar according to udevadm. For example, the following devices are supposed to be a virtual hard drive and cdrom respectively:
$ udevadm info -q env -p /block/vda /devices/ virtio- pci/virtio1/ block/vda TABLE_TYPE= dos /dev/block/ 252:0
UDEV_LOG=3
DEVPATH=
MAJOR=252
MINOR=0
DEVNAME=/dev/vda
DEVTYPE=disk
SUBSYSTEM=block
ID_PART_
DEVLINKS=
$ udevadm info -q env -p /block/vdb /devices/ virtio- pci/virtio2/ block/vdb Ubuntu- Server_ 10.04_i386 ENC=Ubuntu- Server\ x2010.04\ x20i386 filesystem /dev/block/ 252:16 /dev/disk/ by-label/ Ubuntu- Server\ x2010.04\ x20i386
UDEV_LOG=3
DEVPATH=
MAJOR=252
MINOR=16
DEVNAME=/dev/vdb
DEVTYPE=disk
SUBSYSTEM=block
ID_FS_LABEL=
ID_FS_LABEL_
ID_FS_TYPE=iso9660
ID_FS_USAGE=
DEVLINKS=