Определение простыми словами
Файл /etc/fstab — таблица постоянных монтирований. Ядро читает её при старте и подключает диски, разделы, NFS-шары и swap по правилам из строк. Каждая строка описывает одно устройство: что монтировать, куда, какого типа, с какими опциями и в каком порядке проверять при загрузке.
Без fstab пришлось бы каждый раз вручную выполнять mount для всех разделов после перезагрузки. Связан с swap, сетевыми протоколами NFS и SMB, шифрованием LUKS и автомонтированием через systemd.
Сравнение
| Поле | Назначение | Пример |
|---|---|---|
| device | Что монтируем | UUID=abc-123 или /dev/sda1 |
| mountpoint | Куда | /mnt/data |
| type | Файловая система | ext4, xfs, nfs |
| options | Параметры | defaults,noatime |
| dump | Резерв | 0 |
| pass | Порядок fsck | 1 для корня, 2 для остальных |
Кейсы использования
- Подключение второго диска к VPS — добавляют строку с UUID и опцией
nofail. - Монтирование сетевой шары NFS с автоперемонтированием при разрыве через
_netdev,x-systemd.automount. - Активация swap-файла объёмом 4 ГБ для VPS с малым ОЗУ.
- Негативный сценарий: ошибка в строке fstab без
nofailблокирует загрузку — сервер уходит в emergency mode, доступ только через KVM-консоль или rescue-режим хостера.
Технические детали
blkid /dev/sdb1
echo "UUID=$(blkid -s UUID -o value /dev/sdb1) /mnt/data ext4 defaults,noatime,nofail 0 2" | sudo tee -a /etc/fstab
sudo systemctl daemon-reload
sudo mount -a
findmnt --verify --verbose
UUID лучше пути /dev/sdX — буквы дисков меняются при добавлении контроллеров. Опция noatime экономит запись и продлевает ресурс ext4 на SSD. Команда findmnt --verify проверяет fstab на ошибки до перезагрузки.
🔥 Где это применяется
Частые вопросы
Что делать, если сервер не загружается из-за ошибки в fstab?
Загрузитесь в rescue-режим хостера, отредактируйте /etc/fstab, закомментируйте проблемную строку, перезагрузитесь и исправьте опции с nofail.
UUID или /dev/sdX в fstab?
Только UUID или метку. Имена sdX зависят от порядка обнаружения и могут поменяться при добавлении дисков, что сломает монтирование.
Как протестировать fstab без перезагрузки?
Команда findmnt --verify проверит синтаксис, mount -a применит новые строки, а systemctl daemon-reload подхватит изменения для systemd-юнитов.