Как узнать легко, смонтировано ли блочное устройство (или часть его) так или иначе

Если я понимаю правильно, Вы после динамической полной истории (см., например. man bash или http://www.cl.cam.ac.uk/local/sys/unix/applications/bash/), по умолчанию связанный с M-Tab.

10
31.01.2014, 03:40
3 ответа

Это - по существу вопрос проверки целого мешка угловых случаев.

  • Диск может появиться в/proc/mounts
  • Диск может использоваться в качестве подкачки (используйте/proc/swaps),
  • Диск может быть частью активного объема плазмы LVM (используйте pvdisplay),
  • Диск может быть частью dm-картопостроителя группа RAID (используйте/proc/mdstat),
  • К диску может непосредственно получить доступ приложение (например, поддержки Oracle, пишущие непосредственно в диск или раздел вместо файловой системы) (используйте термофиксатор),
  • К диску может непосредственно получить доступ виртуальная машина (используйте термофиксатор),
  • На диск может сослаться устройство закольцовывания (например: mount /dev/sda -o offset=1M /foo) (используйте losetup-a),

Это просто примеры, которые я придумал, учитывая полторы минуты для размышления об этом. Я уверен, что существует дюжина других.

Этот последний пример я думаю, является самым интересным, и немного людей знают об этом. Это позволяет Вам монтировать файловую систему, не используя разделы. Просто укажите начальное смещение, и Linux прозрачно создаст устройство закольцовывания. Пример выше приводит к следующему:

# cat /proc/mounts
...
/dev/loop0 /foo ext4 relatime,data=ordered 0 0

# losetup -a
/dev/loop0 [0005]:2048 (/dev/sda), offset 1048576

Почему Вы сделали бы это? Обычно это включает ситуации, куда дела ранее шли ужасно неправильно.

Также примите во внимание, что с функцией пространства имен теперь в магистрали (см. недолю), различные процессы могут иметь другие представления о том, что смонтировано и что не. Здесь вещи начинают получать немного красной таблетки.

12
27.01.2020, 20:02

Существует намного больше способов смонтировать устройства, все они могут быть объединены, таким образом, это часто похоже до Вас для обнаружения.

т.е. что используется lvm: pvdisplay

Таким образом, Вы должны включать также nfs, cifs, набег, цикл, склеп, и так далее. Хорошая начальная точка всегда /proc/mounts, поскольку Вы уже упомянули.

1
27.01.2020, 20:02

Для устройств -устройств сопоставления по крайней мере (, которые включают cryptsetup и тома LVM ), существует «Открытое количество», отображаемое dmsetup info. Он происходит из DM_TABLE_STATUSioctl и также является основой флагаo(open ), показанного lvs. Это кажется довольно исчерпывающим :, например, в dom0 моей системы Qubes OS 4.0 (, основанной на Fedora 25 ), было обнаружено использование xen_blkback, что не упоминается ни в одном из других ответов. здесь или обнаружено lsblk.

К сожалению, в кратких исследованиях я не смог найти аналога этому для произвольных блочных устройств.

1
02.12.2020, 12:47

Теги

Похожие вопросы