Фатмавати Ахмад Заенури/Shutterstock.com
Файловые системы в Linux и Unix-подобных операционных системах, таких как macOS, могут быть смонтированы, размонтированы и перемонтированы с помощью терминала. Это мощный и универсальный инструмент – вот все, что вам нужно знать.
- Файловая система Linux
- Опрос вашей файловой системы с монтированием
- Опрос вашей файловой системы с помощью df
- Перемонтирование всех файловых систем в fstab
- Монтирование ISO-образа
- Изучение ISO-образа
- Размонтирование образа ISO
- Создание точки монтирования
- Привязка точки монтирования
- Использование umount с Binds
- Монтирование дискеты
- Метки файловой системы
- Безграничный Ленивый Вариант
- Монтирование Samba Share
- Создание и монтирование файловой системы
- Перемонтирование файловой системы
- (Не) Перемещение файловой системы
- Заключительные наблюдения
Файловая система Linux
Файловые системы в Linux, macOS и других Unix-подобных операционных системах не используют отдельные идентификаторы томов для устройств хранения, как, например, Windows. Windows назначает каждому тому букву диска, такую как C: или D:, а файловая система для каждого тома представляет собой дерево каталогов, расположенное под этой буквой диска.
В Linux файловая система представляет собой дерево каталогов «все в одном». У смонтированного запоминающего устройства его файловая система привита к этому дереву, так что оно кажется неотъемлемой частью единой файловой системы. Вновь смонтированная файловая система будет доступна через каталог, в который она смонтирована. Этот каталог называется точкой монтирования для этой файловой системы.
Многие файловые системы автоматически монтируются во время загрузки или на лету как тома хранения, подключенные к компьютеру во время выполнения. Осторожные системные администраторы могут отключить функции автоматического монтирования во время выполнения, чтобы они могли контролировать соединения с системой.
Это означает, что запоминающие устройства, подключенные во время выполнения, могут не монтироваться автоматически и требуют установки вручную. Монтирование файловой системы вручную позволяет принимать решения об этой файловой системе, например о том, где будет находиться точка монтирования и будет ли файловая система доступна только для чтения или для чтения и записи.
Независимо от необходимости или по выбору, команды mount
, umount
и remount
позволяют вам контролировать этот важный аспект ваша система Linux.
Опрос вашей файловой системы с монтированием
В Mount есть множество опций, но для вывода списка всех смонтированных файловых систем на вашем компьютере вообще не требуется никаких опций. Просто введите mount
и нажмите Enter:
mount
выведет список всех подключенных файловых систем в окне терминала.
Может быть трудно выбрать этот дамп данных, чтобы найти то, что вы ищете.
Вы можете уточнить вывод, попросив mount
перечислить только интересующие вас файловые системы. Опция -t
(тип) сообщает mount
, какой тип файловой системы следует использовать для создания отчетов.
mount -t tmpfs
mount -t ext4
В качестве примера мы попросили mount
перечислить только файловые системы tmpfs
. Мы получаем намного более управляемый результат.
Файловая система tmpfs
выглядит так, как будто это обычная монтируемая файловая система, но на самом деле она хранится в энергозависимой памяти – tmp обозначает временное – вместо постоянного хранилища устройство.
Вы хотите заменить параметр tmpfs
на тип файла, который вас интересует.
Мы также выпустили команду для перечисления ext4
файловых систем. На этом тестовом компьютере есть одна файловая система ext4
, она находится на устройстве sda
– первое устройство хранения, смонтированное, обычно на основном жестком диске, – и смонтированное на /
, который является корнем дерева файловой системы.
Другие показатели означают:
- rw : файловая система доступна для чтения и записи.
- relatime : ядро использует оптимизированную схему для записи доступа к файлам и изменения метаданных.
- errors = remount -o : если обнаружена достаточно серьезная ошибка, файловая система будет перемонтирована в режиме только для чтения, чтобы разрешить диагностику.
Опрос вашей файловой системы с помощью df
Команда df
также может использоваться для отображения того, какие файловые системы смонтированы и где находятся их точки монтирования.
df
, используемый без параметров, дает ту же проблему перегрузки информацией, что и mount
. Например, в Ubuntu Linux существует псевдофайловая система squashfs
, созданная для каждого приложения, которое было установлено с помощью команды snap
. Кто хочет увидеть все это?
Чтобы заставить df
их игнорировать – или любой другой тип файловой системы – используйте параметр -x
(exclude):
df -x squashfs
Вы можете легко увидеть имена файловых систем, их емкость, используемое и свободное пространство, а также их точки монтирования.
Перемонтирование всех файловых систем в fstab
Все файловые системы, смонтированные во время загрузки, имеют записи в файле с именем fstab
, который является таблицей файловой системы, расположенной в /etc
.
Вы можете использовать mount
для принудительного «обновления» и перемонтирования всех файловых систем, перечисленных в fstab
. В нормальных условиях эксплуатации это не требуется. Это действительно вступает в свои права, если у вас есть проблемы с несколькими файловыми системами.
Вам нужно будет использовать sudo
, поэтому вам будет предложено ввести пароль.
sudo mount -a
Правда, на правильно работающем компьютере это немного не впечатляет.
Однако на компьютере с проблемами файловой системы перемонтирование может устранить проблемы. Если этого не произойдет, то, по крайней мере, вы получите диагностические сообщения на экране и в системных журналах, которые помогут вам найти причину проблемы.
Монтирование ISO-образа
Легко смонтировать ISO-образ, чтобы вы могли получить доступ к его содержимому как части файловой системы.
Это будет работать с любым образом ISO. В этом примере мы используем Tiny Core Linux ISO, потому что он удобно небольшой и быстрый для загрузки. (Небольшой дистрибутив Linux с графическим интерфейсом, размером 18 МБ! Вероятно, у вас больше файлов .mp3.)
В той же директории, что и образ ISO, введите эту команду. Подставьте имя файла ISO, который вы монтируете.
sudo mount -t iso9660 -o loop TinyCore-current.iso/mnt
Поскольку нам нужно использовать sudo
, вам нужно будет ввести свой пароль.
Опция -t
(тип) сообщает mount
, какой тип файловой системы мы монтируем. Это файл ISO, поэтому мы предоставляем спецификатор типа iso9660
.
Флаг -o
(параметры) используется для передачи дополнительных параметров в mount
. Наш параметр – loop
.
Мы используем loop
, чтобы заставить mount
использовать файл устройства цикла для подключения к нашему ISO-образу. Файл устройства цикла позволяет монтировать файл (например, образ ISO) и обрабатывать его так, как если бы он был устройством хранения.
Файлы устройств – это специальные файлы, используемые в качестве интерфейса, поэтому подключенные устройства выглядят так, как если бы они были обычным файлом файловой системы. Это часть всего, что в Linux является философией файлового дизайна.
Существует много разных типов файлов устройств. Мы видели это раньше, когда заметили, что единственная файловая система ext4
на этом тестовом компьютере была смонтирована в /
и называлась sda
.
Чтобы быть более точным, эта файловая система ext4
находится на устройстве хранения, подключенном к файловой системе через файл устройства /dev/sda
, и файловая система на этом устройстве хранения смонтирована. в /
.
Разумеется, мы должны предоставить имя ISO-образа и сообщить mount
, где мы хотели бы смонтировать файловую систему. Мы выбрали /mnt
.
ISO-образ смонтирован. Напоминание о том, что ISO-образы всегда монтируются в режиме только для чтения, появляется в окне терминала.
Изучение ISO-образа
Теперь, когда он смонтирован, мы можем перемещаться по каталогам в образе ISO так же, как и в любой другой части файловой системы. Давайте перечислим файлы в образе ISO. Он монтируется в /mnt
запомнить.
ls/mnt
ls/mnt/cde/
Размонтирование образа ISO
Чтобы размонтировать смонтированную файловую систему, используйте команду umount
. Обратите внимание, что между «u» и «m» нет «n» – команда umount
, а не «unmount».
Вы должны указать umount
, какую файловую систему вы отключаете. Сделайте это, указав точку монтирования файловой системы.
sudo umount/mnt
Отсутствие новостей – хорошая новость. Если нечего сообщать, то все прошло хорошо.
Создание точки монтирования
Вы можете создавать и использовать свои собственные точки монтирования. Мы собираемся создать один с именем isomnt
и смонтировать наш ISO-образ на этом. Точка монтирования – это просто каталог. Таким образом, мы можем использовать mkdir
для создания нашей новой точки монтирования.
sudo mkdir/media/dave/isomnt
Теперь мы можем использовать тот же формат команд, что и раньше, для монтирования нашего ISO-образа. На этот раз мы не будем монтировать его в /mnt
, мы будем монтировать его в /media/dave/isomnt/
:
sudo mount -r -t iso9660 -o loop TinyCore-current.iso/media/dave/isomnt/
Теперь мы можем получить доступ к смонтированной файловой системе с нашей новой точки монтирования.
ls/media/dave/isomnt/cde/необязательный
Но эти пути становятся очень длинными. Это быстро станет утомительным. Давайте сделаем что-нибудь с этим.
Привязка точки монтирования
Вы можете привязать точку монтирования к другому каталогу.Затем к монтированной файловой системе можно получить доступ либо через исходную точку монтирования, либо через связанный с ней каталог.
Вот работающий пример. Мы создадим каталог в нашем домашнем каталоге с именем iso
. Затем мы свяжем точку монтирования ISO-образа /media/dave/isomnt
с новым каталогом iso
в нашем домашнем каталоге.
Мы сможем получить доступ к ISO-образу через исходную точку монтирования /media/dave/isomnt
и через новый каталог iso
. Опция -B
(bind) требует имя точки монтирования и имя каталога, к которому она привязана.
mkdir iso
sudo mount -B/media/dave/isomnt/iso
ls iso
ls/media/dave/isomnt
cd iso
Ls
cd cde
Использование umount с Binds
Файловая система, у которой точка монтирования связана с другим каталогом, требует размонтирования из своей точки монтирования и точки привязки.
Даже если мы размонтируем файловую систему из исходной точки монтирования, вы все равно сможете получить доступ к файловой системе из ее привязанного каталога. Файловая система также должна быть размонтирована из этого каталога.
sudo umount/media/dave/isomnt
ls iso
sudo umount iso
ls iso
Монтирование дискеты
Флоппи-дисковод (с гибким диском в нем) является устройством хранения. Это означает, что файл устройства sd (для устройства хранения) будет использоваться для подключения к физическому устройству. Мы должны установить, какой следующий бесплатный файл устройства SD. Мы можем сделать это, отправив выходные данные из df
через grep
и ища записи с «sd» в них.
df | grep/dev/sd
На этом компьютере используется один файл устройства sd. Это /dev/sda
. Следующий выпущенный файл устройства sd будет /dev/sdb
. Это означает, что когда мы подключаем дисковод к компьютеру, Linux будет использовать /dev/sdb
для подключения к дисководу.
Мы сообщим mount
смонтировать файловую систему на дискете в дисководе, который подключен к /dev/sdb
к /mnt
точка крепления.
Вставьте дискету в дисковод и подключите дисковод к USB-порту компьютера. Выполните следующую команду:
sudo mount/dev/sdb/mnt
Метки файловой системы
Мы можем использовать опцию -l
(label) с mount
, чтобы выяснить, какая метка, если таковая имеется, прикреплена к файловой системе. Метки являются не более чем произвольными именами. У них нет функционального назначения.
Мы используем параметр -t
(тип), чтобы запросить mount
сообщать только о файловых системах vfat
.
mount -l -t vfat
Вы найдете ярлык в квадратных скобках в конце списка. Ярлык для этого дисковода – NORTUN.
Мы можем получить доступ к дисководу гибких дисков через точку монтирования /mnt
.
cd/mnt
Ls
ls -l AMATCH.C
Дискета содержит файлы с исходным кодом на языке Си. Отметка даты одного файла показывает, что он был последний раз изменен в октябре 1992 года. Вероятно, он старше, чем многие наши читатели. (Излишне говорить, что значение NORTUN как ярлыка теряется в глубине веков.)
Если мы повторим нашу команду df
, переданную по каналу grep
, для просмотра файлов устройств sd, мы увидим, что теперь их два.
df | grep/dev/sd
Наш дисковод гибких дисков выглядит как смонтированный в /dev/sdb
, как мы и ожидали. Файловая система на дискете в дисководе смонтирована в /mnt
.
Чтобы размонтировать дискету, мы используем umount
и передаем ей файл устройства в качестве параметра.
sudo umount/dev/sdb
Безграничный Ленивый Вариант
Что произойдет, если вы (или другой пользователь) используете файловую систему при попытке размонтировать ее? Размонтирование не удастся.
sudo umount/dev/sdb
Это не удалось, поскольку текущий рабочий каталог пользователя находится в файловой системе, которую он пытается отключить. Linux достаточно умен, чтобы не позволить вам отпугнуть ветку, на которой вы сидите.
Чтобы преодолеть это, используйте параметр -l
(lazy). Это заставляет umount
ждать, пока файловая система не сможет безопасно отключиться.
sudo umount -l/dev/sdb
Ls
cd ~
ls/mnt
Несмотря на то, что введена команда umount
, файловая система все еще монтируется, и пользователь может вывести список файлов в обычном режиме.
Как только пользователь меняет каталог на свой домашний каталог, файловая система дискеты освобождается и размонтируется. Попытка перечислить файлы в /mnt
не дает результатов.
Монтирование Samba Share
Samba – это набор программных сервисов, которые обеспечивают взаимозаменяемость общего доступа к сетевым ресурсам между Linux и Unix-подобными операционными системами и операционными системами Windows.
Настройка Samba выходит за рамки этой статьи. Но если у вас есть авторизованный доступ к общему ресурсу Samba, который был предоставлен вам, вы можете подключить его в Linux.
Raspberry Pi, подключенный к той же сети, что и тестовая машина, имеет общий ресурс Samba. Это каталог с именем Backup, которому Samba присвоено имя «share». Давайте установим SSH-соединение с ним и посмотрим содержимое общего каталога. Общий каталог находится на USB-накопителе, смонтированном на Pi.
Имя пользователя – pi
, а сетевое имя Raspberry Pi – marineville.local
.
ssh pi@marineville.local
ls/media/pi/USB64/Backup
Выход
Пользователь вводит команду SSH
и запрашивает пароль Raspberry Pi.
Они предоставляют свой пароль и проходят проверку подлинности. Запрос окна терминала изменится на pi @ marineville
, поскольку он подключен к Raspberry Pi.
Они перечисляют содержимое общего каталога в /media/pi/USB64/Backup
. Содержимое состоит из двух каталогов: один называется dave
, а другой – pat
. Итак, теперь мы знаем, чего ожидать, когда мы монтируем общий ресурс Samba.
Они набирают exit
, чтобы отключиться от Raspberry Pi, и приглашение снова изменяется на dave @ howtogeek
.
Чтобы использовать Samba, вы должны установить пакет cifs-utils
.
Используйте apt-get
для установки этого пакета в вашу систему, если вы используете Ubuntu или другой дистрибутив на основе Debian. В других дистрибутивах Linux используйте инструмент управления пакетами вашего дистрибутива Linux.
sudo apt-get install cifs-utils
После завершения установки подключите общий ресурс с помощью команды, подобной следующей, изменив IP-адрес, имя общего ресурса и точку подключения (которая уже должна существовать) в соответствии с вашими обстоятельствами.
sudo mount -t cifs -o учетные данные =/etc/samba/creds, uid = 1000, gid = 1000 //192.168.4.13/share/media/dave/NAS
Давайте разберемся с частями этой команды.
- -t cifs . Тип файловой системы: cifs.
-
-o учетные данные =/etc/samba/creds, uid = 1000, gid = 1000 . Параметры параметров – это путь к файлу с именем
creds
, который защищен и содержит имя пользователя и пароль для пользователя Raspberry Pi; идентификатор пользователя (UID) и идентификатор группы (GID), которые используются для установки владельца и группы корня файловой системы. -
// 192.168.4.13/share : сетевое расположение устройства с общим ресурсом Samba и имя Samba общего каталога. Корнем общего ресурса является каталог с именем
Backup
, но для его общего ресурса Samba установлено значениеshare
. - /media/dave/NAS : имя точки монтирования. Вы должны создать свою точку монтирования заранее.
Получая доступ к нашей точке монтирования в /media/dave/NAS
, мы получаем доступ к общему каталогу на Raspberry Pi по всей сети. Мы видим две папки на Raspberry Pi, которые называются dave
и pat
.
cd/media/dave/NAS
Создание и монтирование файловой системы
Вы можете использовать команду dd
для создания файла изображения, а затем использовать mkfs
для создания внутри него файловой системы. Эта файловая система может быть смонтирована. Это хороший способ попрактиковаться и поэкспериментировать с mount
.
Мы используем опцию if
(входной файл), чтобы указать dd
использовать поток нулевых значений из /dev/zero
в качестве входного файла.
of
(выходной файл) – это новый файл с именем geek_fs
.
Мы используем опцию bs
(размер блока) для запроса размера блока 1 МБ.
Мы используем опцию count
, чтобы dd
включить 20 блоков в выходной файл.
dd if =/dev/zero of./geek_fs bs = 1M count = 20
Это создает наш файл изображения для нас. Он не содержит ничего, кроме нулевых значений.
Мы можем создать работающую файловую систему внутри файла geek_fs
, используя команду mkfs
. Параметр -t
(тип) позволяет нам выбрать файловую систему тип . Мы создаем систему ext4
.
mkfs -t ext4 ./geek_fs
Это все, что нужно, чтобы иметь работающую файловую систему.
Давайте смонтируем его в /media/dave/geek
, а затем используем chown
, чтобы установить владельца и группы владельцев, чтобы разрешить доступ к нему.
sudo mount ./geek_fs/media/dave/geek
sudo chown dave: пользователи/медиа/dave/geek
Это работает? Давайте перейдем в новую файловую систему и скопируем файл, чтобы увидеть.
cd/media/dave/geek
cp/etc/fstab.
ls -l
Нам удалось сменить каталог на новую файловую систему, и мы успешно сделали копию файла /etc/fstab
. Работает!
Если мы используем mount
для вывода списка смонтированных файловых систем, но ограничиваем его вывод файловыми системами ext4
с помощью параметра -t
(type), мы ‘ Посмотрим, что теперь есть две смонтированные файловые системы ext4
.
mount -t ext4
Перемонтирование файловой системы
Перемонтирование файловой системы использует опцию -o remount
. Обычно это делается для перевода файловой системы из состояния «только чтение» (тестирование) в состояние «чтение-запись» (производство).
Давайте снова смонтируем наш дисковод. На этот раз мы будем использовать флаг -r
(только для чтения). Затем мы передадим mount
через grep
и рассмотрим детали файловой системы дискеты.
sudo mount -r/dev/sdb/mnt
mount | grep/mnt
Как видите, подсвеченный ro
означает, что файловая система смонтирована только для чтения.
Используя опцию -o remount
с флагом rw
(чтение-запись), мы можем размонтировать и перемонтировать файловую систему с новыми настройками, все в одной команде.
sudo mount -o remount, rw/mnt
Повторение конвейера mount
через grep
показывает, что ro
был заменен на rw
(выделено). Файловая система теперь находится в режиме чтения-записи.
mount | grep/mnt
(Не) Перемещение файловой системы
Раньше вы могли размонтировать файловую систему и перемонтировать ее в другую точку монтирования с помощью одной команды.
Параметр -M
(перемещение) в mount
существует специально для того, чтобы вы могли это сделать. Но он больше не работает в дистрибутивах Linux, которые перешли на systemd
. И это большинство громких имен.
Если мы попытаемся переместить файловую систему из /mnt
в ./ geek
, она завершится неудачно и выдаст сообщение об ошибке, показанное ниже. Попытка перечислить файлы в файлах с помощью ./ geek
не дает результатов.
sudo mount -M/mnt ./geek
ls ./geek
Обходной путь должен использовать параметр -B
(bind), который мы использовали ранее, чтобы привязать исходную точку монтирования к новой точке монтирования.
sudo mount -B/mnt ./geek
ls ./geek
Помимо не освобождения исходной точки монтирования, это будет иметь тот же практический результат.
Заключительные наблюдения
Используя опцию --make-private
, можно было заставить принудительно перейти на версии systemd
Linux. Эта техника не представлена здесь по двум причинам.
- Это может иметь непредсказуемое поведение.
- Это не было постоянным и должно было бы повторяться при каждой перезагрузке.
Devuan Linux использует SysV
init, а не systemd
. Компьютер был загружен с последней версией Devuan и протестирован. Опция -M
(перемещение) работала, как и ожидалось, в этой системе.
Помимо проблем systemd
с опцией -M
(move), вы должны найти использование mount
и umount
просто. Это отличные команды, чтобы держать себя в руках при столкновении с поврежденной системой, и вы должны начать собирать файловую систему вручную.