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

Некоторые FTP-серверы предоставят Вам доступ FTP, только если у Вас есть допустимая оболочка. /sbin/nologin рассматривается как допустимая оболочка, тогда как /bin/false не.

(Я думаю "допустимый", означает, что его статус выхода 0, но /etc/shells может также войти в него, это, вероятно, зависит от системы, программного обеспечения FTP и Вашей конфигурации.)

162
13.04.2017, 15:37
4 ответа

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

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

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

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

148
27.01.2020, 19:28
  • 1
    Какой смысл mount поддержание /etc/mtab если на это нельзя положиться? Не был бы это быть лучше если mount представленная информация от /proc/mounts вместо этого? –  Piotr Dobrogost 12.02.2015, 12:31
  • 2
    @PiotrDobrogost /etc/mtab может записать информацию, которую ядро не отслеживает, такие как опции, которые первоначально требуют, и связывает, монтирует появление как таковое вместо того, чтобы появиться как дублирующиеся записи для устройств. Тем не менее, много дистрибутивов двигают создание /etc/mtab символьная ссылка на /proc/mounts. –  Gilles 'SO- stop being evil' 12.02.2015, 12:41
  • 3
    Тем не менее, много дистрибутивов двигают создание /etc/mtab символьная ссылка на /proc/mounts. Хороший для слушания – добавляющий эту информацию для ответа сделал бы его еще лучше. Вы думаете, отслеживая требуемые опции ядром, было бы выполнимо и выгоден? –  Piotr Dobrogost 12.02.2015, 13:13
  • 4
    Обратите внимание, что необходимо будет не выйти из содержания/proc/mounts. Как описано на getmntent (3) страница, расположите с интервалами (\040), вкладка (\011), новая строка (\012) и обратная косая черта (\134) потребность, которая будет обработана особенно. Особенно, если пользовательское монтирование будет включено, то необходимо будет быть очень осторожными при работе с этими путями. –  Eric 31.08.2015, 18:50
  • 5
    См. также другой ответ для использования команды findmnt который является предпочтительным путем с 2010 и вероятный единственный безопасный путь в ближайшем будущем, когда смонтируют, что пространства имен будут распространены. –  Marki555 18.05.2016, 22:46

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

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

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

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

23
27.01.2020, 19:28

Начиная с версии 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

Для получения более подробной информации прочтите страницу man findmnt --help , чтобы получить список доступных столбцов)

77
27.01.2020, 19:28

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

df -h --output=source,target

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

df -hx tmpfs --output=source,target

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

Команды выше будут включать и сетевые монтирования.

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

df -hT

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

Если у вас нет сетевых подключений или вы не заботитесь о них (и у вас есть права root), то это даже лучше:

sudo lsblk -f
35
27.01.2020, 19:28

Теги

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