Как узнать местоположения всех смонтированных файловых систем linux

Обновлено: 03.07.2024

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

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

4 ответа

Окончательный список смонтированных файловых систем находится в /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 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Команда findmnt — это простая утилита командной строки, используемая для отображения списка смонтированных файловых систем или поиска файловой системы в /etc/fstab, /etc/mtab и /proc/self/mountinfo.

1. Чтобы отобразить список смонтированных файловых систем, выполните в командной строке следующую команду.

Она отображает целевую точку монтирования (TARGET), исходное устройство (SOURCE), тип файловой системы (FSTYPE) и соответствующие параметры монтирования (OPTIONS) для каждой файловой системы, как показано в следующих выходных данных.


2. По умолчанию команда findmnt отображает файловые системы в древовидном формате. Чтобы отобразить информацию в виде обычного списка, используйте параметр -l, как показано.


3. Вы также можете выбрать отображение только файловых систем определённого типа с помощью параметра командной строки -t, за которым следует тип файловой системы, такой как XFS или EXT4.

4. Вы также можете найти файловую систему, используя точку монтирования или исходное устройство. Например, следующая команда отображает все файловые системы /etc/fstab, где каталог точки монтирования - /mnt/external/disk2.

Эта команда выведет точки монтирования, где /dev/sda является исходным устройством:

5. Чтобы распечатать все файловые системы /etc/fstab и преобразовать теги LABEL= и UUID= в реальные имена устройств, добавьте переключатель --evaluate, как показано в следующей команде.

Без ключа --evaluate команда:

вывела бы следующее:

7. Findmnt также позволяет отслеживать действия по монтированию, размонтированию, повторному подключению и перемещению в каталоге.

К примеру, для отслеживания любых действий по монтированию и размонтированию в файловой системе:


Если вас интересуют только определённые события, то вы можете указать точку монтирования для отслеживания, например /mnt/test:

8. Как вы уже могли обратить внимание, findmnt выводит информацию о множестве монтирований в системе, большинство из которых не имеют отношения к реальным дискам и файловым системам. Чтобы вывести информацию только о реальных файловых системах, используйте ключ --real:


9. Выбор столбцов для отображения. Вы можете использовать опцию --output-all чтобы показать сразу все доступные столбцы и всю информацию. Приготовьтесь к тому, что вывод будет слишком широким для большинства экранов.

С помощью опции -o можно указать те столбцы, которые вам нужны, например:


Доступные для вывода столбцы:

10. И последнее, но не менее важное: если вы хотите получить больше информации, используйте переключатель --verbose.

Одно из самых заметных отличий Linux от Windows, это то, что операционная система позволяет пользователям прозрачно управлять монтированием разделов диска. Это позволяет гибким образом настроить структуру каталогов, использовать несколько файловых систем, где каждая будет выполнять свое предназначение.

Благодаря такой возможности, вы можете переустановить операционную систему и не потерять пользовательские файлы, обращаться к параметрам ядра с помощью каталогов /proc и /sys, а к блочным устройствам с помощью каталога /dev. В этой статье мы разберемся что такое точки монтирования, а также как посмотреть точки монтирования в Linux.

Что такое точки монтирования в Linux?

Чтобы понять как тут всё происходит, давайте проведём аналогию. Допустим, у вас есть большое поле и вы на нём хотите посадить картошку. Но выращивать вы хотите несколько сортов. Поэтому вы делите поле на несколько участков и на каждом из них садите нужный сорт. Когда приходит время собирать урожай, независимо от сорта картошку надо выкопать и вывезти, а к полю идёт только одна дорога и вся полученная картошка будет вывезена именно по ней не зависимо от того, с какого участка она была собрана.

Допустим, у вас есть один большой жесткий диск, на который надо записать данные. Это наше поле. Но вам надо файловая система без журналирования для каталога /boot, отдельная файловая система для корня и для /home. Поэтому жесткий диск разбивается на разделы. Дальше эти разделы надо отформатировать в нужную файловую систему. Это аналогия сорта картошки. А монтирование - это аналогия дороги, по которой картошку вывозят с поля. На каком бы разделе диска или части оперативной памяти не располагались данные, получить к ним доступ вы сможете только с помощью корневого каталога /. Все разделы монтируются сюда, если не к самому корню, то в одну из папок. Такая папка и называется точкой монтирования и её содержимое во время монтирования заменяется на содержимое раздела.

Как посмотреть точки монтирования?

Для просмотра точек монтирования можно использовать команду mount. Её надо запустить без параметров:


С появлением технологии snap и flatpack, точки монтирования Linux слегка засорены монтированием различных snap пакетов и их содержимого к файловой системе, но всё же здесь можно разобрать и смонтированные жесткие диски. Чтобы отфильтровать только жесткие диски используйте утилиту grep:

mount | grep ^/dev


Не только посмотреть, но и настроить точки монтирования можно с помощью файла /etc/fstab. Здесь перечислены все разделы диска, которые монтируются к системе.


Более подробно о его настройке я писал в этой статье.

Выводы

Из этой статьи вы узнали что такое точки монтирования Linux, а также как их посмотреть и настроить. А что вы думаете по поводу них? Удобнее ли это чем в Windows? Напишите в комментариях!

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

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

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

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

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

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

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

Какой смысл mount поддерживать, /etc/mtab если на него нельзя положиться? Не было бы лучше, если бы вместо этого mount представили информацию /proc/mounts ? @PiotrDobrogost /etc/mtab может записывать информацию, которую ядро ​​не отслеживает, например, первоначально запрошенные параметры, и привязывать монтирования, появляющиеся как таковые, вместо того, чтобы появляться как дублирующиеся записи для устройств. Тем не менее, многие дистрибутивы движутся к созданию /etc/mtab символической ссылки на /proc/mounts . Тем не менее, многие дистрибутивы движутся к созданию /etc/mtab символической ссылки на /proc/mounts . Приятно слышать - добавление этой информации для ответа сделало бы ее еще лучше. Считаете ли вы, что отслеживание запрошенных ядром опций будет целесообразным и полезным? Обратите внимание, что вам нужно отключить содержимое / proc / mounts. Как описано на странице getmntent (3), пробел (\ 040), табуляция (\ 011), символ новой строки (\ 012) и обратный слеш (\ 134) должны обрабатываться специально. Особенно, если пользовательские монтирования включены, вам нужно быть очень осторожным при работе с этими путями. Пожалуйста, смотрите также другой ответ для использования команды, findmnt которая является предпочтительным способом с 2010 года и, вероятно, единственным безопасным способом в ближайшем будущем, когда пространства имен монтирования будут распространены.

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

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

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

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

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

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

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

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

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

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

How to Check Disk Space in Linux Using the df Command

В операционных системах Linux и Unix вы можете использовать df команду для получения подробного отчета об использовании дискового пространства системы.

Как проверить дисковое пространство в Linux с помощью команды df

Сколько места осталось на моем жестком диске? Достаточно ли свободного дискового пространства для загрузки большого файла или установки нового приложения?

Использование команды df

Общий синтаксис df команды выглядит следующим образом:

При использовании без аргументов df команда будет отображать информацию обо всех смонтированных файловых системах :

Каждая строка содержит следующие столбцы:

  • «Filesystem» - Файловая система - название файловой системы.
  • «1K-bloks» - размер файловой системы в 1K-блоках.
  • «Used» - Используется - используемое пространство в блоках по 1К.
  • «Available» - Доступно - доступное пространство в блоках по 1К.
  • «Use%» - процент используемого пространства.
  • «Mounted on» - каталог, в котором смонтирована файловая система.

Чтобы отобразить информацию только для определенной файловой системы, передайте ее имя или точку монтирования в df команду.

Например, чтобы показать пространство, доступное в файловой системе, смонтированной в корневой каталог системы ( / ), вы можете использовать либо, df /dev/nvme0n1p3 либо df / .


Показывать использование дискового пространства в удобочитаемом формате

По умолчанию df команда показывает дисковое пространство в блоках по 1 килобайту и размер используемого и доступного дискового пространства в килобайтах.

Чтобы отобразить информацию о дисках в удобочитаемом формате (килобайты, мегабайты, гигабайты и т. Д.), Введите df команду с -h параметром:


Типы файловых систем

-T Опция указывает df на типы отображения файловой системы:

Вывод включает в себя дополнительный столбец с именем «Тип», показывающий тип файловой системы:

Если вы хотите ограничить листинг файловыми системами определенного типа, используйте -t параметр, за которым следует тип.

Вот пример, показывающий, как вывести список всех разделов ext4:

Как и выше, -x опция позволяет вам ограничить вывод файловыми системами, которые не относятся к конкретному типу:


Отображение использования Inode

Inode - это структура данных в файловых системах Unix и Linux, которая содержит информацию о файле или каталоге, такую ​​как его размер, владелец, узел устройства, сокет, канал и т. Д., Кроме da.

При вызове с -i параметром df команда печатает информацию об использовании inode файловой системы.

Команда ниже покажет информацию о inode в файловой системе, смонтированной в корневой каталог системы, / в удобочитаемом формате:

Когда -i используется опция, каждая строка вывода включает в себя следующие столбцы:

  • «Файловая система» - название файловой системы.
  • «Inodes» - общее количество inode в файловой системе.
  • «IUsed» - количество используемых inode.
  • «IFree» - количество свободных (неиспользованных) инодов.
  • «IUse%» - процент используемых инодов.
  • «Подключен» - каталог, в котором смонтирована файловая система.

Выходной формат

Команда df также позволяет настроить формат вывода.

Чтобы указать поля, которые вы хотите отображать в выводе команды, используйте --output[=FIELD_LIST] опцию.

FIELD_LIST список разделенных запятыми столбцов, которые будут включены в вывод. Каждое поле может быть использовано только один раз. Допустимые имена полей:

  • source - Источник файловой системы.
  • fstype - Тип файловой системы.
  • itotal - Общее количество инодов.
  • iused - Количество используемых инодов.
  • iavail - Количество доступных инодов.
  • ipcent - Процент используемых инодов.
  • size - Общее дисковое пространство.
  • used - Используемое дисковое пространство.
  • avail - Доступное дисковое пространство.
  • pcent - Процент использованного пространства.
  • file - Имя файла, если оно указано в командной строке.
  • target - Точка монтирования.

Например, чтобы отобразить вывод всех разделов ext4 в удобочитаемом формате, показывая только имя и размер файловой системы и процент используемого пространства, которое вы бы использовали:

Вывод

Мы показали вам, как использовать df команду для получения отчета об использовании дискового пространства файловой системы. Для просмотра всех доступных df параметров команды, набрав man df в своем терминале.

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

Читайте также: