Как использовать команду findmnt в Linux

Опубликовано: 2022-06-16
Иллюстрация системы управления документами, плавающей над открытым ноутбуком
НикоЭльНино/Shutterstock.com

Узнайте все о точках монтирования вашей файловой системы с помощью команды Linux findmnt . Это универсальный инструмент с очень простым синтаксисом. Мы покажем вам, как его использовать.

Точки крепления

Файловая система Linux представляет собой большое дерево. В зависимости от выбора, который вы сделали при установке Linux, на разных жестких дисках вашего компьютера могут быть разные файловые системы. Если вы используете пакеты snap снимков, у вас также будут псевдофайловые системы squashfs в вашей системе. Такие устройства, как USB-накопители, будут иметь разные файловые системы, особенно если вы также используете их на компьютерах с Windows.

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

Как монтировать и отключать устройства хранения данных из терминала Linux
СВЯЗАННЫЕ С : Как монтировать и отключать устройства хранения данных из терминала Linux

Файловые системы монтируются в точках монтирования. Это просто пустые каталоги. После того, как файловая система смонтирована, вход в этот каталог помещает вас в эту файловую систему. Это дает большую гибкость. Корень дерева файловых систем должен быть смонтирован в « / », но вы можете монтировать другие файловые системы там, где это наиболее целесообразно в ваших конкретных обстоятельствах.

Эта гибкость действительно означает, что может быть трудно отслеживать все различные точки монтирования, особенно те, которые были созданы автоматически и были созданы без вашего участия. Linux предоставляет множество инструментов командной строки, позволяющих просматривать конфигурацию и состояние точек монтирования. Из всех, findmnt является самым простым в использовании и имеет свои собственные хитрости.

Команда поиска

Команда findmnt уже была установлена ​​в проверенных нами сборках Ubuntu, Manjaro и Fedora. Если он не установлен на вашем компьютере с Linux, вы сможете легко найти его с помощью менеджера пакетов для вашего дистрибутива.

Рекламное объявление

Инструмент командной строки, который вы используете для монтирования файловых систем, называется mount . Файловые системы, монтируемые во время загрузки, определяются в файле «/etc/fstab». Вы можете использовать команду mount , чтобы получить дамп всех точек монтирования, настроенных в вашем файле «/etc/fstab».

 устанавливать 

Команда монтирования

Вывод детализирован, но отформатирован в виде плотной стены текста.

Необработанный дамп информации из команды mount

Приложив немного усилий, вы можете пробраться через него или передать его через такие утилиты, как grep , чтобы извлечь интересующие вас фрагменты. Вывод findmnt гораздо более доступен.

 найти 

Команда findmnt

Напротив, выходные findmnt по умолчанию представлены в виде таблицы и содержат дерево, показывающее иерархию точек монтирования.

Табличный вывод от findmnt

Столбцы:

  • Цель : расположение точки монтирования в файловой системе.
  • Источник : исходное устройство, содержащее файловую систему. Обратите внимание, что это может быть псевдоустройство, такое как петлевое устройство.
  • Fstype : Тип файловой системы.
  • Параметры : параметры, которые использовались с командой монтирования из командной строки или в файле «/etc/fstab» для монтирования файловой системы.

Чтобы просмотреть вывод без дерева, используйте параметр -l (список).

 найти -l 

Команда findmnt с опцией -l list

Рекламное объявление

Столбцы те же, но иерархия точек подключения не представлена ​​в виде дерева с отступом.

Обычный вывод findmnt

Выбор конкретных типов файловых систем

Параметр -t (тип) заставляет findmnt ограничивать свой отчет, чтобы включать только запрашиваемый тип файловой системы. Например, чтобы видеть только файловые системы ext4 , вы должны использовать:

 findmnt -t exta 

Проверка точек монтирования файловой системы ext4 с помощью findmnt

Чтобы увидеть только файловые системы squashfs , введите:

 findmnt -t squashfs 

Проверка точек монтирования файловой системы squashfs с помощью findmnt

Чтобы инвертировать выбор так, чтобы вы видели все остальное, кроме типа, указанного в командной строке, используйте параметр -i (инвертировать).

 findmnt -t squashfs -i 

Исключение точек монтирования squashfs с опцией -i инвертировать

О файловых системах squashfs не сообщается.

Вывод findmnt с игнорированием файловых систем squashfs

Параметр -t (тип) позволяет использовать список типов файловых систем, разделенных запятыми. Не ставьте между ними пробелы, так как пробелы между типами файловой системы запрещены.

 findmnt -t squashfs,proc,ext4 

Выбор сразу трех типов точки монтирования файловой системы с помощью findmnt

Выбор источника данных

По умолчанию findmnt получает информацию из «/etc/fstab», «/etc/mtab» и «/proc/self/mountinfo».

  • /etc/fstab : это файл, содержащий сведения о настроенных монтированиях. На них действуют во время загрузки.
  • /etc/mtab : этот файл содержит информацию о смонтированных в данный момент монтированиях.
  • /proc/self/mountinfo : это запрашивает у ядра самую авторитетную учетную запись монтирования вашей системы.

Вы можете указать findmnt использовать один конкретный источник, если хотите. Варианты:

  • --fstab или -s : смотреть только в «/etc/fstab».
  • —mtab или -m : искать только в «/etc/mtab».
  • --kernel или -k : смотреть только в «/proc/self/mountinfo».
Рекламное объявление

Мы можем увидеть разницу, которую это может иметь, если мы будем искать файловые системы vfat . Во-первых, мы будем использовать опцию -s (fstab). Это находит одну файловую систему vfat , смонтированную в «/boot/efi».

 findmnt -s -t vfat 

Использование findmnt для поиска /etc/fstab для монтирования файловой системы vfat

Мы попробуем еще раз, и на этот раз воспользуемся параметром -k (ядро).

 findmnt -k -t vfat 

Использование findmnt для поиска /proc/self/mount для монтирования файловой системы vfat

Как написать файл fstab в Linux
СВЯЗАННЫЕ Как написать файл fstab в Linux

Это сообщает о четырех записях. Одна из них — та же файловая система vfat , которую нашел параметр -s . Остальные три — это случайные монтирования, которые произошли из-за того, что были подключены два USB-накопителя. Опция -s не нашла их, потому что они не настроены в файле «/etc/fstab».

Один USB-накопитель подключен как «/dev/sdc1», который является первым разделом на устройстве sdc . На другой карте памяти есть два раздела, и они были смонтированы как «/dev/sdb1» и «/dev/sdb2».

СВЯЗАННЫЕ С: Что такое файл Linux fstab и как он работает?

Выбор по точке монтирования

Если вы знаете точку монтирования, вы можете передать ее findmnt , чтобы узнать настройки и другие детали.

 findmnt /media/dave/PINK
 findmnt /media/dave/WHITEUSB 

Проверка точек монтирования по имени с помощью findmnt

Рекламное объявление

Мы видим, что эти два USB-накопителя имеют файловую систему vfat и смонтированы как «/dev/sdb2» и «/dev/sdc1».

Использование режима опроса в findmnt

Возможно, самая крутая функция findmnt — это функция опроса. Запись изображений на USB-устройства — это то, что вы можете делать периодически. Определение правильного диска, конечно, имеет решающее значение. Вы не хотите перезаписывать неправильное устройство. findmnt позволяет легко увидеть, к какому устройству подключен съемный диск.

Как записать файл ISO на USB-накопитель в Linux
СВЯЗАННЫЕ С : Как записать файл ISO на USB-накопитель в Linux

Есть два способа сделать это. Вы можете попросить findmnt отслеживать новые подключения в течение периода времени, выраженного в миллисекундах. Сообщается обо всех монтированиях, которые происходят в течение этого периода. При этом используется --timeout .

Второй способ говорит findmnt подождать, пока он не обнаружит новое монтирование. Здесь используется параметр --first-only . Он будет ждать столько, сколько потребуется для нового монтирования, но будет сообщать только о первом монтировании. Параметр --timeout будет сообщать обо всех новых монтированиях, произошедших в течение указанного периода опроса.

Эта команда указывает findmnt отслеживать новые подключения в течение 30 секунд.

 findmnt -p --timeout 30000 

Делаем findmnt монитор для новых точек монтирования на 30 секунд

В течение этого периода была подключена одна USB-карта памяти, о ней сообщается, и findmnt продолжает наблюдение в течение оставшихся 30 секунд.

Эта команда указывает findmnt отслеживать новые подключения до тех пор, пока не будет создана одна новая точка подключения.

 findmnt -p --first-only 

ожидание следующей новой точки монтирования с помощью findmnt

Рекламное объявление

Когда новое устройство подключено, оно сообщает о новой точке монтирования, а затем выходит в командную строку.

Простой способ избежать ошибок

Перезапись неправильного устройства — это всегда катастрофа. Команда findmnt упрощает идентификацию устройства, которое вы только что подключили, делая процесс перезаписи более безопасным.

Легче и безопаснее — еще один способ сказать «победа-победа».

СВЯЗАННЫЕ С: Как безопасно перезаписать свободное пространство в Windows