Правила монтирования разделов в Linux определяются файлом fstab. Рассмотрим примеры его использования.
Описание файла fstab
Монтирование по имени
Монтирование по UUID
Сетевой диск
Монтирование через SSH
Работа с объектным хранилищем s3
Дополнительные материалы
Синтаксис файла fstab
При загрузке Linux на определенном этапе выполняется чтение файла /etc/fstab, в котором описаны правила монтирования разделов. Рассмотрим синтаксис его заполнения.
Каждый раздел, который должен быть смонтирован записывается с новой строки. Формат такой:
<device> <dir> <type> <options> <dump> <fsck>
Где:
- device — накопитель, который мы монтируем. Это может быть путь до устройства или его идентификатор.
- dir — каталог, в который выполняем монтирование device.
- type — файловая система.
- options — опции монтирования, например, владелец каталога или параметры аутентификации. Рекомендую ознакомится с полным их перечнем на Википеции.
- dump — указываем, нужно ли создать резервную копию с помощью утилиты dump.
- fsck — нужно ли проверять файловую систему при помощи fsck. Стоит очень аккуратно относится к данному параметру, так как не со всеми файловыми системами утилита fsck корректно работает. Если нет уверенности, ставим 0. Доступны значения:
- 0 — не выполнять проверку.
- 1 — проверять с высоким приоритетом. Рекомендовано только для корневого раздела.
- 2 — проверять с низким приоритетом.
Пример файла fstab:
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
* в данном примере будут смонтированы 2 раздела:
- /dev/pve/root — в корневой раздел с файловой системой ext4.
- /dev/pve/swap — файл подкачки.
Монтирование по имени диска
Открываем на редактирование следующий файл:
vi /etc/fstab
и добавляем в него следующую строчку:
/dev/sda1 /db xfs defaults 0 0
Где:
- /dev/sda1 — диск, который мы монтируем
- /db — каталог, в который монтируем диск
- xfs — файловая система
- defaults — стандартные опции. Полный их перечень можно посмотреть на Википеции.
- 0 0 — первый отключает создание резервных копий при помощи утилиты dump, второй отключает проверку диска.
Теперь создаем каталог, в который монтируем диск (в данном примере, /db):
mkdir /db
И монтируем вручную диск, чтобы проверить правильность настроек fstab:
mount /db
Должен появиться новый диск. Это можно проверить следующей командой
mount
Монтирование по идентификатору
Данный способ не сильно отличается от монтирования по имени диска — вместо имени мы указываем идентификатор. Такой подход считается более надежным, так как при переподключении дисков к другим портам материнской платы может поменяться приоритет и, как следствие, имя устройства — это может привести к проблемам монтирования. UUID диска не меняется и поэтому, данная проблема при таком монтировании не страшна.
И так, смотрим идентификатор диска командой:
blkid
Мы получим ответ на подобие:
/dev/sdb: UUID="3e53fc7e-a417-4fa5-b034-b227bea2474c" BLOCK_SIZE="4096" TYPE="ext4"
/dev/sda1: UUID="358f032e-3efb-42ab-b3ba-05ddc82fedfd" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="0beca126-01"
* допустим, диск который мы хотим примонтировать — sda1. Его идентификатор 358f032e-3efb-42ab-b3ba-05ddc82fedfd.
Открываем на редактирование следующий файл:
vi /etc/fstab
и добавляем в него следующую строчку:
UUID=358f032e-3efb-42ab-b3ba-05ddc82fedfd /db xfs defaults 0 0
Монтирование можно проверить командой:
mount -a
Пример монтирования сетевого диска
//192.168.0.1/network /mnt cifs user,rw,noauto,credentials=/root/.smbclient 0 0
* в данном примере выполняется монтировние общей папки network на сервере с IP-адресом 192.168.0.1 в каталог /mnt. В качестве сетевой файловой системы используется cifs (протокол SMB: сервер samba или общая папка Windows). Параметры для подключения — user: позволяет выполнить монтирование любому пользователю, rw: с правом на чтение и запись, noauto: не монтировать автоматически при старте системы, credentials: файл, в котором написаны логин и пароль для подключения к общей папке.
Теперь создадим файл аутентификации (credentials):
vi /root/.smbclient
и приведем его к следующему виду:
username=backup
password=backup
* username: имя пользоватля, password: пароль. Само собой, в вашем случае указываются свои данные.
Теперь вводим следующую команду:
mount /mnt
Должна примонтироваться сетевая папка //192.168.0.1/network. Это можно проверить следующей командой:
mount
Монтирование через SSH
Для монтирования удалённой файловой системы по SSH можно использовать SSHFS (FUSE-модуль для монтирования через SSH). Для этого устанавливаем соответствующий пакет.
а) Для Deb (Debian / Ubuntu / Astra Linux):
apt update
apt install sshfs
б) Для RPM (Rocky / РЕД ОС):
dnf install fuse-sshfs
После можно добавить строчку в fstab:
vi /etc/fstab
root@192.168.1.10:/tmp /mnt/tmp fuse.sshfs defaults,_netdev,allow_other,reconnect,ServerAliveInterval=15 0 0
* где:
- root — имя пользователя, под которым мы подключаемся к удаленной системе по SSH.
- 192.168.1.10 — адрес удаленного компьютера, к которому подключаемся по SSH.
- /tmp — каталог на удаленной системе.
- /mnt/tmp — каталог, куда монтируется раздлел сетевого узла.
** у нашей учетной записи (в нашем примере root) должна быть возможность подключиться к удаленному хосту по SSH. Удобнее всего использовать беспарольный вход по сертификату. Подробнее в инструкции Как использовать команду SCP в UNIX без пароля.
Перечитываем конфигурацию systemd:
systemctl daemon-reload
Выполняем монтирование разделов, перечисленных в fstab:
mount -a
Монтирование S3
Необходимо убедиться, что в системе установлен FUSE-модуль для монтирования s3. В зависимости от системы команды будут отличаться:
а) Для Deb (Debian / Ubuntu):
apt update
apt install s3fs
б) Для RPM (Rocky):
yum install epel-release
yum install s3fs-fuse
Создаем файл для хранения ключа и его идентификатора:
vi /root/.s3fs_passwd
ACCESS_KEY_ID:SECRET_ACCESS_KEY
* данные ключи выдаются при создании доступа к s3 бакету.
Задаем более жесткие права на созданный файл:
chmod 600 ~/.s3fs_passwd
Добавляем строчку в fstab:
vi /etc/fstab
bucket_name /mnt/mys3bucket fuse.s3fs _netdev,allow_other,use_path_request_style,url=https://storage.yandexcloud.net,passwd_file=/root/.s3fs_passwd,uid=33,gid=33 0 0
* где:
- bucket_name — имя бакета в s3, который будет замонтирован.
- /mnt/mys3bucket — каталог, куда монтируется раздлел сетевого узла.
- url — URL сервиса s3.
- passwd_file — путь до файла с секретом для подключения к s3.
- uid,gid — идентификатор локального пользователя, который станет владельцем примонтированных файлов.
Перечитываем конфигурацию systemd:
systemctl daemon-reload
Выполняем монтирование разделов, перечисленных в fstab:
mount -a
Читайте также
Дополнительная информация по теме:
1. Как в Linux монтировать шару CIFS.

Добавить комментарий