Монтирование дисков¶
Статья предназначена для тех, кто хочет разобраться в работе команды mount. Здесь рассмотрены основные понятия и настройки монтирования дисков в Linux.
Монтирование в Linux¶
В Linux все файлы и папки организованы в единое дерево, которое начинается с корневого каталога /. В отличие от Windows, где каждый диск имеет свою букву (C:, D:), в Linux новые устройства подключаются в свободные папки этого дерева.
Чтобы получить доступ к файлам на новом диске или сетевом хранилище, его нужно привязать к одной из папок. Эта операция называется монтированием, а папка — точкой монтирования. Например, если смонтировать USB-флэшку в папку /mnt/storage, все файлы с флэшки будут видны в этой папке.
Способы монтирования¶
Есть несколько способов монтирования:
Подключить диск вручную — для разового доступа: скопировать файлы, проверить диск. После перезагрузки подключение исчезнет.
Настроить автоматическое подключение с помощью конфигурационного файл fstab — для постоянной работы, диск будет подключаться при каждой загрузке.
Объединить диски в пул (LVM) — если одного диска мало, можно объединить несколько дисков в один том.
Если у вас Ubuntu 22.04 или Astra Linux¶
Ubuntu 22.04+¶
Современная Ubuntu использует подсистему инициализации systemd. При записи строки в fstab systemd создает виртуальные файлы конфигурации .mount.
Если вам нужна нестандартная конфигурация и знакомы с устройством systemd-юнитов, вместо fstab можно создать статический юнит монтирования вручную — например, /etc/systemd/system/mnt-data.mount.
[Unit]
Description=Mount Data Storage
After=network-online.target
[Mount]
What=/dev/sdb1
Where=/mnt/data
Type=ext4
Options=defaults,nofail
[Install]
WantedBy=multi-user.target
Astra Linux Special Edition¶
Astra Linux Special Edition, особенно в режиме Смоленск, использует мандатное разграничение доступа и контроль целостности. Система должна разрешить работу с диском на уровне безопасности.
При монтировании учитывайте:
Тип файловой системы ext4-parsec — Astra использует модифицированную ext4, которая хранит мандатные метки безопасности во внутренних структурах служебных записей файловой системы inode. В обычной ext4 таких полей нет, поэтому при создании ФС на новом диске используйте средства Astra. Иначе метки безопасности храниться не будут, при доступе к файлам система или откажет в доступе, или нарушит правила безопасности.
Права доступа — если диск монтируется для СУБД, права на точку монтирования должны принадлежать системному пользователю базы:
sudo chown -R postgres:postgres /var/lib/postgresql
Блокировки — из-за мандатного разграничения попытка смонтировать внешний носитель без флага мандатного контекста может запретить чтение файлов обычными пользователями, даже если в Unix-правах стоит
777. Используйте опции монтирования Astra Linux в fstab.
Ручное монтирование¶
Подходит для разового доступа к диску. После перезагрузки подключение исчезнет.
Предположим, был подключен новый диск, который распознан системой как /dev/sdb.
Найдите диск и его UUID.
UUID — уникальный идентификатор, который создается при форматировании. Он не меняется при перестановке дисков, поэтому в настройках лучше указывать именно его.
sudo lsblk -fили
sudo blkid
Создайте точку монтирования — это папка, в которую будет «проецироваться» диск.
sudo mkdir -p /mnt/data
Отформатируйте диск: если на диске еще нет файловой системы, создайте ее.
Внимание
Форматирование уничтожит все данные на диске.
sudo mkfs.ext4 /dev/sdb1где sdb1 — имя раздела.
Подключите диск:
sudo mount -t ext4 /dev/sdb1 /mnt/dataПосле этого файлы диска будут доступны в папке /mnt/data.
Автоматическое монтирование¶
Подходит, если диск должен подключаться автоматически при каждой загрузке сервера.
Чтобы смонтировать диск, пропишите настройки монтирования в файле /etc/fstab. Файл /etc/fstab (File Systems Table) — это файл, в котором хранятся настройки монтирования дисков и разделов. Система читает его при загрузке и автоматически подключает все прописанные в нем устройства. Файл состоит из шести полей, каждое поле отвечает за определенный параметр монтирования.
Пример строки:
UUID=d4ac2a08-7c9a-4c4b-8780-1b1b5c5ae8e9 /var/lib/postgresql ext4 rw,nofail 0 2
Запись означает, что устройство с UUID d4ac2a08-7c9a-4c4b-8780-1b1b5c5ae8e9 будет смонтировано в каталог /var/lib/postgresql автоматически при загрузке.
Тип файловой системы — ext4. Опции монтирования — rw,nofail: чтение и запись, система загрузится, даже если диск отключен.
Резервные копии создаваться не будут. Проверка целостности ФС будет выполняться после корневой ФС.
Примечание
Используете Ubuntu 22.04+ или Astra Linux? Сначала прочтите это
Device — указывает путь к устройству: например, /dev/sda, /dev/hda, /dev/sr0, /dev/sdb1 — или уникальный идентификатор UUID.
UUID генерируется утилитами mkfs при создании файловой системы. Посмотреть UUID устройств можно командой blkid:
sudo blkidПример записи с UUID:
UUID="550e8400-e29b-41d4-a716-446655440000" /home ext4 rw,auto 0 2
Mount Point — папка, в которой будет доступна файловая система устройства.
FS Type — тип файловой системы; чаще всего вам придется иметь дело с ext4 — файловой системой по умолчанию для большинства дистрибутивов Linux. Могут встречаться ntfs и vfat от Microsoft.
Options — в этом поле указываются дополнительные параметры монтирования. Основные из них:
defaults— стандартный набор опций: чтение и запись, автоподключение при загрузке и т. д.;rw— чтение и запись;nofail— если диска нет, система загрузится без него. Без этой опции отсутствующий диск может помешать загрузке.
Подробности — в статье Википедии или в официальной документации mount.
Dump — используется утилитой dump для создания резервных копий:
0— не создает резервную копию,1— создает резервную копию.
Внимание
Всегда указывайте
0.
Pass — проверка диска с помощью утилиты fsck. Возможные значения:
Pass — проверка диска с помощью утилиты fsck. Возможные значения:
0— проверка отключена. Для btrfs всегда указывайте0, даже если она используется как корневая;1— только для корневой ФС с точкой монтирования /;2–9— порядок проверки остальных разделов; можно дублировать: несколько разделов с одинаковым номером проверяются одновременно.
Завершение автоматического монтирования¶
Внимание
Никогда не перезагружайте сервер сразу после редактирования /etc/fstab.
Перед перезагрузкой обязательно выполните:
sudo mount -a
Эта команда принудительно монтирует все, что указано в fstab. Если ошибок нет, команда завершится без вывода. Если ошибка есть, исправьте ее до перезагрузки.
Объединение дисков (LVM)¶
Подходит, если нужно:
объединить несколько физических дисков в один виртуальный;
увеличить разделы без перезагрузки;
делать мгновенные снимки (снапшоты).
LVM (Logical Volume Manager) — это слой между физическими накопителями и операционной системой. Он позволяет собрать несколько дисков в общий пул и нарезать из него виртуальные тома.
При обычном монтировании файловая система жестко привязана к физическому разделу: изменить размер или объединить диски сложно. LVM создает слой абстракции над «железом». Благодаря этому вы можете легко расширять тома, распределять данные по разным дискам и создавать снапшоты прямо на работающей системе.
Инициализируйте диски как физические тома — LVM (Physical Volumes):
sudo pvcreate /dev/sdb1 /dev/sdc1
Объедините их в группу томов (Volume Group) с именем vg21:
sudo vgcreate vg21 /dev/sdb1 /dev/sdc1
Создайте логический том (Logical Volume) с именем lv21 на всю емкость группы:
sudo lvcreate -n lv21 -l +100%FREE vg21
Создайте файловую систему и примонтируйте том:
sudo mkfs.ext4 /dev/vg21/lv21 sudo mount /dev/vg21/lv21 /mnt/lvm_data
Работа с дисками¶
Увеличение разделов¶
LVM позволяет увеличивать разделы без размонтирования. После добавления диска выполните:
vgextend vg21 /dev/sdd1
lvextend -l +100%FREE /dev/vg21/lv21
Для файловой системы ext4 выполните:
resize2fs /dev/vg21/lv21
Для XFS:
xfs_growfs /mnt/lvm_data
Уменьшение диска¶
Уменьшить том в LVM сложнее: нужно размонтировать ФС и обязательно проверить целостность через e2fsck, иначе можно потерять данные. XFS уменьшение не поддерживает.
Перенос дисков¶
Чтобы перенести LVM на другой сервер, деактивируйте и экспортируйте группу:
vgchange -an vg21 && vgexport vg21
На новом сервере:
pvscan && vgimport vg21 && vgchange -ay vg21
Адресация в fstab для LVM-устройств¶
Для LVM-устройств указывайте прямой путь /dev/vg21/lv21 или псевдоним /dev/mapper/vg21-lv21 вместо UUID. Это нагляднее и снижает риск ошибок.
Если сервер не загружается после правки fstab¶
Если после добавления диска в fstab система зависает при загрузке или уходит в аварийную консоль (режим Emergency/Recovery):
В аварийной консоли введите пароль root.
Корень монтируется в режиме только чтение. Перемонтируйте его в режим записи:
mount -o remount,rw /
Откройте файл:
nano /etc/fstab
Закомментируйте ошибочную строку или добавьте опцию nofail в четвертую колонку.
Сохраните изменения и перезагрузите сервер:
reboot