Я хочу знать, как проще всего определить (без привилегий root), sdb
смонтировано ли (скажем ) блочное устройство или какая-либо его часть (и какая его часть).
Проверка на /proc/mounts
наличие sdb недостаточна, поскольку sdb
LVM может использовать один из его разделов. Вы можете проверить, /sys/block/sdb/sdb*/holders/
но вы получите dm-x
записи, которые должны быть преобразованы в /dev/mapper
имена, чтобы проверить /proc/mounts
. Возможно, но если есть более простое решение ... (которое не требует привилегий root)
Ответы:
По сути, это вопрос проверки целого пакета угловых чехлов.
mount /dev/sda -o offset=1M /foo
) (использование losetup -a)Это только те примеры, которые я придумал, предоставив полторы минуты, чтобы подумать об этом. Я уверен, что есть дюжина других.
Последний пример, на мой взгляд, самый интересный, и мало кто знает об этом. Это позволяет монтировать файловую систему без использования разделов. Просто укажите начальное смещение, и Linux прозрачно создаст устройство обратной связи. Пример выше дает следующее:
Почему ты бы так поступил? Как правило, это связано с ситуациями, когда ранее все шло не так.
Также имейте в виду, что теперь, когда функция пространств имен находится в основной строке (см. Unshare ), разные процессы могут иметь разные представления о том, что подключено, а что нет. Здесь вещи начинают немного краснеть.
источник
Существует гораздо больше способов монтировать устройства, все они могут быть скомбинированы, так что вам самим часто приходится это выяснять.
т.е. что использует lvm:
pvdisplay
Так что вам нужно включить также nfs, cifs, raid, loop, crypt и так далее. Хорошая отправная точка всегда
/proc/mounts
, как вы уже упоминали.источник