По сути, это вопрос проверки целого пакета угловых чехлов.
- Диск может появиться в / proc / mounts
- Диск может быть использован в качестве подкачки (используйте / proc / swaps)
- Диск может быть частью активного LVM PV (используйте pvdisplay)
- Диск может быть частью RAID-группы dm-mapper (используйте / proc / mdstat)
- Привод может напрямую обращаться к диску (например, Oracle поддерживает запись непосредственно на диск или раздел вместо файловой системы) (используйте fuser)
- Доступ к диску возможен через виртуальную машину (используйте фьюзер)
- Привод может ссылаться петлевым устройством (например:
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
Почему ты бы так поступил? Как правило, это связано с ситуациями, когда ранее все шло не так.
Также имейте в виду, что теперь, когда функция пространств имен находится в основной строке (см. Unshare ), разные процессы могут иметь разные представления о том, что подключено, а что нет. Здесь вещи начинают немного краснеть.