Вы можете посмотреть в /sys
блочное устройство для заданного имени раздела. Например, /dev/sda1:
$ ls -l /sys/class/block/sda1
lrwxrwxrwx 1 root root /sys/class/block/sda1 -> \
../../devices/pci0000:00/.../ata1/host0/target0:0:0/0:0:0:0/block/sda/sda1
Скрипт, принимающий arg /dev/sda1
и печатающий /dev/sda
, выглядит так:
part=$1
part=${part#/dev/}
disk=$(readlink /sys/class/block/$part)
disk=${disk%/*}
disk=/dev/${disk##*/}
echo $disk
У меня нет lvm и т.д., чтобы попробовать, но, вероятно, есть какой-то похожий путь.
Есть также lsblk
:
$ lsblk -as /dev/sde1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sde1 8:65 1 7.4G 0 part
`-sde 8:64 1 7.4G 0 disk
и, как сказал @don_crissti, вы можете получить родителя напрямую с помощью:
lsblk -no pkname /dev/sda1
Проход -через настройку NIC означает, что аппаратное обеспечение будет само подключено к машине, а не к хост-машине. Точно так же это также будет означать, что вам нужно настроить аппаратное обеспечение и драйверы непосредственно на виртуальной машине, и вы сможете использовать их только с этой виртуальной машины.
Эта конфигурация часто используется из соображений производительности при работе с графическими процессорами или для специального использования наборов микросхем Wi-Fi, в основном для хакерских целей.
Что касается настройки моста или NAT, то несколько виртуальных машин могут совместно использовать сетевое подключение/аппаратное обеспечение хоста, что дает абстракцию оборудования, которое не часто соответствует марке реального оборудования.
Очевидными преимуществами здесь являются совместное использование соединения, отсутствие необходимости настраивать сложные бренды в виртуальной машине или даже использование более общей абстракции паравиртуализации аппаратного обеспечения для гипервизора // хосту не нужно эмулировать полное аппаратное обеспечение и, следовательно, не использовать столько ресурсов.