То, является ли блочное устройство реальным жестким диском, можно определить по основному номеру устройства, соответствующему драйверу диска, как описано в man sd
и man 4 hd
:
Диски SCSI и SATA имеют основные 8, старые диски IDE 3 или 22.
Вы можете увидеть их /proc/devices
или проанализировать /sys/block/*/dev
файлы:
cd /sys/block; grep -lE '^(8|3|22):' */dev | sed 's-/dev--'
sda
sdb
Когда это выполняется на виртуальной машине, результаты зависят от типа виртуализации:
с аппаратной виртуализацией поведение такое же, как указано выше, за исключением PVHVM (см. Ниже).
С паравиртуализацией все меняется. Например, драйвер XEN xvd использует основной 202.
Это также верно для PVHVM, который используется, например, в Amazon EC2.
Таким образом, вам нужны дополнительные меры для достижения желаемого результата на виртуальных машинах.