Как получить полный и точный список смонтированных файловых систем в Linux?

Обычно я использую mount, чтобы проверить, какие файловые системы установлены. Я также знаю, что есть некоторая связь между mount и /etc/mtab, но я не уверен в деталях. После чтения Как проверить, установлен ли /proc /. I больше запутаться.

Мой вопрос: как получить наиболее точный список смонтированных файловых систем? Должен ли я просто использовать mount или прочитать содержимое /etc/mtab или содержимое /proc/mounts? Что даст самый надежный результат?

116 голосов | спросил xanpeng 8 22011vEurope/Moscow11bEurope/MoscowTue, 08 Nov 2011 16:01:07 +0400 2011, 16:01:07

4 ответа


113

Окончательный список смонтированных файловых систем находится в /proc/mounts.

Если у вас есть какая-либо форма контейнеров в вашей системе, /proc/mounts перечисляет только файловые системы, которые находятся в вашем контейнере. Например, в chroot , /proc/mounts перечисляет только файловые системы, точка монтирования которых находится внутри chroot. ( Есть способы избежать chroot , ум. )

Также есть список смонтированных файловых систем в /etc/mtab. Этот список поддерживается командами mount и umount. Это означает, что если вы не используете эти команды (что довольно редко), ваше действие (монтирование или размонтирование) не будет записано. На практике, в основном, в chroot вы найдете файлы /etc/mtab, которые сильно отличаются от состояния системы. Кроме того, крепления, выполненные в chroot, будут отображаться в chroot /etc/mtab, но не в главном /etc/mtab. Действия, выполняемые в то время, когда /etc/mtab находится в файловой системе только для чтения, также там не записываются.

Причиной, по которой вы иногда хотели бы проконсультироваться с /etc/mtab в предпочтении или в дополнение к /proc/mounts, является то, что он имеет доступ к mount, он иногда может представлять информацию таким образом, что это проще понять; например, вы видите параметры монтирования в соответствии с запросом (тогда как /proc/mounts перечисляет mount и значения по умолчанию для ядра), а привязки mounts отображаются как таковые в /etc/mtab.

ответил Gilles 9 32011vEurope/Moscow11bEurope/MoscowWed, 09 Nov 2011 04:33:43 +0400 2011, 04:33:43
42

Начиная с версии 2.18 (июль 2010 г.) util-linux включает инструмент, который позволяет отображать список смонтированных в настоящее время файловых систем:

findmnt

Вы можете переключиться с древовидного представления по умолчанию на представление списка с помощью -l, определить выходные столбцы с помощью -o (аналогично lsblk)) , фильтровать результаты на основе типа файловой системы с помощью -t и т. д.

findmnt -lo source, target, fstype, label, options, used -t ext4
SOURCE    TARGET      FSTYPE LABEL OPTIONS                           USED
/dev/sda1 /           ext4   ARCH  rw,noatime,discard,data=ordered  17.6G
/dev/sdb2 /media/DATA ext4   DATA  rw,noatime,discard,data=ordered    44M

Подробнее читайте страницу manfindmnt --help, чтобы получить список доступных столбцов)

ответил don_crissti 19 FebruaryEurope/MoscowbFri, 19 Feb 2016 03:03:30 +0300000000amFri, 19 Feb 2016 03:03:30 +030016 2016, 03:03:30
23

Возможно, потому, что прошло 5 лет с момента ответа на этот вопрос, все изменилось. cat /proc/mounts создает много информации, о которой вы не заботитесь. Сегодня, IMHO, я считаю, что это окончательное решение.

df -h --output=source,target

, когда вы читаете страницы руководства, есть всевозможные варианты, которые вы можете сделать, но это то, что вы что. Например, чтобы очистить результаты еще больше, вы можете исключить типы файлов «tmpfs» с помощью этой команды:

df -hx tmpfs --output=source,target

df работает на уровне файловой системы, а не на уровне файла.

В приведенных выше командах также будут указаны сетевые адаптеры.

Чтобы увидеть немного больше информации, используйте это:

df -hT

ПРИМЕЧАНИЕ При медленных сетевых подключениях это может занять несколько минут!

Если у вас нет или нужно установить подключенные сетевые подключения (и у вас есть права root), чем это еще лучше:

sudo lsblk -f
ответил Rick 19 FebruaryEurope/MoscowbFri, 19 Feb 2016 02:18:12 +0300000000amFri, 19 Feb 2016 02:18:12 +030016 2016, 02:18:12
22

Большую часть времени mount является наиболее удобным методом. Для полного и точного списка смонтированных в настоящее время файловых систем вы должны прочитать содержимое /proc/mounts (например, с помощью cat /proc/mounts).

Например, если установка / readwrite не удалась, и она была смонтирована только как резервная, /etc/mtab (которая поддерживает mount команда читает, чтобы сообщить вам, что смонтировано, и записывает - если это возможно - когда он изменяет то, что монтируется) не будет обновляться, чтобы отразить это / (который содержит /etc/mtab) в настоящее время монтируется только для чтения. В этой ситуации запуск mount обычно говорит вам (неправильно), что / был установлен readwrite.

В нормальных условиях (т. е. когда файловая система, содержащая его, может быть записана в), /etc/mtab содержит список смонтированных в данный момент файловых систем. Это не следует путать с /etc/fstab, который содержит список файловых систем, которые должны автоматически устанавливаться при запуске системы.

Конечно, если виртуальная файловая система /proc сама не монтируется, то вы не можете прочитать ни один из виртуальных файлов в ней, который будет включать /proc/mounts , Это очень редко. В этой ситуации mount, вероятно, лучший вариант для просмотра того, что установлено.

ответил Eliah Kagan 9 32011vEurope/Moscow11bEurope/MoscowWed, 09 Nov 2011 01:33:33 +0400 2011, 01:33:33

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132