Как использовать команду findmnt в Linux
Опубликовано: 2022-06-16 Узнайте все о точках монтирования вашей файловой системы с помощью команды Linux findmnt
. Это универсальный инструмент с очень простым синтаксисом. Мы покажем вам, как его использовать.
Точки крепления
Файловая система Linux представляет собой большое дерево. В зависимости от выбора, который вы сделали при установке Linux, на разных жестких дисках вашего компьютера могут быть разные файловые системы. Если вы используете пакеты snap
снимков, у вас также будут псевдофайловые системы squashfs
в вашей системе. Такие устройства, как USB-накопители, будут иметь разные файловые системы, особенно если вы также используете их на компьютерах с Windows.
Независимо от типа файловой системы, все они должны быть привиты к дереву файловой системы в процессе, называемом монтированием . Монтаж является важным этапом в получении работающей системы. Мы склонны думать о монтировании устройства как о жестком диске, но на самом деле монтируется файловая система на этом устройстве. А без доступа ко всем этим различным файловым системам ваш компьютер может даже не загрузиться, или вы не сможете получить доступ к приложениям или данным.
Файловые системы монтируются в точках монтирования. Это просто пустые каталоги. После того, как файловая система смонтирована, вход в этот каталог помещает вас в эту файловую систему. Это дает большую гибкость. Корень дерева файловых систем должен быть смонтирован в « /
», но вы можете монтировать другие файловые системы там, где это наиболее целесообразно в ваших конкретных обстоятельствах.
Эта гибкость действительно означает, что может быть трудно отслеживать все различные точки монтирования, особенно те, которые были созданы автоматически и были созданы без вашего участия. Linux предоставляет множество инструментов командной строки, позволяющих просматривать конфигурацию и состояние точек монтирования. Из всех, findmnt
является самым простым в использовании и имеет свои собственные хитрости.
Команда поиска
Команда findmnt
уже была установлена в проверенных нами сборках Ubuntu, Manjaro и Fedora. Если он не установлен на вашем компьютере с Linux, вы сможете легко найти его с помощью менеджера пакетов для вашего дистрибутива.
Инструмент командной строки, который вы используете для монтирования файловых систем, называется mount
. Файловые системы, монтируемые во время загрузки, определяются в файле «/etc/fstab». Вы можете использовать команду mount
, чтобы получить дамп всех точек монтирования, настроенных в вашем файле «/etc/fstab».
устанавливать
Вывод детализирован, но отформатирован в виде плотной стены текста.
Приложив немного усилий, вы можете пробраться через него или передать его через такие утилиты, как grep
, чтобы извлечь интересующие вас фрагменты. Вывод findmnt
гораздо более доступен.
найти
Напротив, выходные findmnt
по умолчанию представлены в виде таблицы и содержат дерево, показывающее иерархию точек монтирования.
Столбцы:
- Цель : расположение точки монтирования в файловой системе.
- Источник : исходное устройство, содержащее файловую систему. Обратите внимание, что это может быть псевдоустройство, такое как петлевое устройство.
- Fstype : Тип файловой системы.
- Параметры : параметры, которые использовались с командой монтирования из командной строки или в файле «/etc/fstab» для монтирования файловой системы.
Чтобы просмотреть вывод без дерева, используйте параметр -l
(список).
найти -l
Столбцы те же, но иерархия точек подключения не представлена в виде дерева с отступом.
Выбор конкретных типов файловых систем
Параметр -t (тип) заставляет findmnt
ограничивать свой отчет, чтобы включать только запрашиваемый тип файловой системы. Например, чтобы видеть только файловые системы ext4
, вы должны использовать:
findmnt -t exta
Чтобы увидеть только файловые системы squashfs
, введите:
findmnt -t squashfs
Чтобы инвертировать выбор так, чтобы вы видели все остальное, кроме типа, указанного в командной строке, используйте параметр -i
(инвертировать).
findmnt -t squashfs -i
О файловых системах squashfs
не сообщается.
Параметр -t
(тип) позволяет использовать список типов файловых систем, разделенных запятыми. Не ставьте между ними пробелы, так как пробелы между типами файловой системы запрещены.
findmnt -t squashfs,proc,ext4
Выбор источника данных
По умолчанию 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
Мы попробуем еще раз, и на этот раз воспользуемся параметром -k
(ядро).
findmnt -k -t vfat
Это сообщает о четырех записях. Одна из них — та же файловая система 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
Мы видим, что эти два USB-накопителя имеют файловую систему vfat
и смонтированы как «/dev/sdb2» и «/dev/sdc1».
Использование режима опроса в findmnt
Возможно, самая крутая функция findmnt
— это функция опроса. Запись изображений на USB-устройства — это то, что вы можете делать периодически. Определение правильного диска, конечно, имеет решающее значение. Вы не хотите перезаписывать неправильное устройство. findmnt
позволяет легко увидеть, к какому устройству подключен съемный диск.
Есть два способа сделать это. Вы можете попросить findmnt
отслеживать новые подключения в течение периода времени, выраженного в миллисекундах. Сообщается обо всех монтированиях, которые происходят в течение этого периода. При этом используется --timeout
.
Второй способ говорит findmnt
подождать, пока он не обнаружит новое монтирование. Здесь используется параметр --first-only
. Он будет ждать столько, сколько потребуется для нового монтирования, но будет сообщать только о первом монтировании. Параметр --timeout
будет сообщать обо всех новых монтированиях, произошедших в течение указанного периода опроса.
Эта команда указывает findmnt
отслеживать новые подключения в течение 30 секунд.
findmnt -p --timeout 30000
В течение этого периода была подключена одна USB-карта памяти, о ней сообщается, и findmnt
продолжает наблюдение в течение оставшихся 30 секунд.
Эта команда указывает findmnt
отслеживать новые подключения до тех пор, пока не будет создана одна новая точка подключения.
findmnt -p --first-only
Когда новое устройство подключено, оно сообщает о новой точке монтирования, а затем выходит в командную строку.
Простой способ избежать ошибок
Перезапись неправильного устройства — это всегда катастрофа. Команда findmnt
упрощает идентификацию устройства, которое вы только что подключили, делая процесс перезаписи более безопасным.
Легче и безопаснее — еще один способ сказать «победа-победа».
СВЯЗАННЫЕ С: Как безопасно перезаписать свободное пространство в Windows