Как показывают другие ответы, вы можете проанализировать / proc / mounts
с помощью grep
или awk
, например, вы можете перечислить монтирования только для чтения:
$ grep "\sro[\s,]" /proc/mounts
или
$ awk '$4~/(^|,)ro($|,)/' /proc/mounts
Альтернативой синтаксическому анализу содержимого / proc / mounts
, которое вы можете попробовать, является
$ grep '^ro$' /proc/fs/*/<device>/options
, где <устройство>
- имя узла устройства файловой системы в / dev
.Например,
$ grep '^ro$' /proc/fs/*/sdc1/options
вернет ro
, если / dev / sdc1
смонтирован только для чтения.
Если вы хотите проверить наличие блочного устройства только для чтения (вместо смонтированной файловой системы), вы можете использовать
$ cat /sys/block/<device>/ro
, который возвращает 1
, если файловая система доступна только для чтения, или 0
при чтении-записи.
Обратите внимание, что
выше относится к узлу реального устройства. Если вы хотите проверить устройство символьной ссылки (например, созданное device-mapper или by-uuid
ссылки), вы можете использовать basename
и readlink
, чтобы получить имя узла устройства. Как эти примеры:
$ grep '^ro$' /proc/fs/*/$(basename $(readlink -f /dev/mapper/foo)/options
$ cat /sys/block/$(basename $(readlink -f /dev/mapper/foo)/ro