Каждая строка /etc/fstab — это шесть полей: устройство, точка монтирования, тип файловой системы, опции, dump и pass. Система читает файл при загрузке и монтирует разделы строго по нему. Ошибка в любом поле — и Arch не поднимется, поэтому разберём каждый столбец на реальном примере.
Типичный fstab для Arch на UEFI:
# <device> <dir> <type> <options> <dump> <pass>
UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 defaults,noatime 0 1
UUID=CBB6-24F2 /boot vfat defaults,nodev,nosuid,noexec 0 2
UUID=b411dc99-f0a0-4c87-9e05-184977be8539 /home ext4 defaults,noatime,nofail 0 2
UUID=f9fe0b69-a280-415d-a03a-a32752370dee none swap defaults 0 0
Здесь указывают, что монтировать. Варианты:
LABEL=Data). Удобно читать, но метки бывают одинаковыми.Куда «приклеивается» раздел. Корень — /, домашний — /home, swap — none. Директория должна существовать до перезагрузки (sudo mkdir -p /mnt/data).
ext4, btrfs, xfs, vfat (для /boot на UEFI), swap. Надёжнее писать явно, чем auto.
Параметры через запятую — самое важное поле. Подробнее в следующем разделе.
Утилита dump не используется в Arch. Всегда ставь 0.
Порядок проверки файловой системы при загрузке:
1 — первым (только корень на ext2/ext3/ext4).2 — после корня (остальные разделы).0 — без проверки. Обязательно для swap, btrfs и xfs — у них нет своей fsck-утилиты.UUID — уникальный идентификатор файловой системы. Привязан к разделу и не зависит от SATA/NVMe-слота. Два способа получить:
lsblk -f # красивая таблица, без root
sudo blkid # компактный вывод, нужен root
Скопируй UUID и вставь в fstab: UUID=0a3407de-014b-458b-b5c1-848e92a327a3.
Имена блочных устройств (sda, nvme0n1) непостоянны — при подключении второго диска sda может стать sdb. Подробнее об этом — в статье про udev-правила.
Самые частые:
defaults — набор rw, suid, dev, exec, auto, async. Стандарт для большинства разделов.noatime — не обновлять время доступа при чтении. Ускоряет дисковую подсистему, must have для SSD.nofail — не останавливать загрузку, если раздел недоступен. Обязательно для внешних дисков.x-systemd.device-timeout=5 — сколько секунд ждать устройства. Ставь с nofail, иначе дефолтные 90 секунд заставят тебя смотреть на чёрный экран. Не ставь 0 — это бесконечное ожидание.nodev, nosuid, noexec — запрещают устройства, setuid и запуск программ. Обязательны для /boot.Для swap добавляют discard (TRIM для SSD) или оставляют defaults.
Dump — просто 0. Утилита dump не используется, systemd это поле игнорирует.
Pass — порядок вызова fsck:
| Значение | Поведение | Когда ставить |
|---|---|---|
1 |
Первым | Только корень на ext4 |
2 |
После корня | /home, /boot |
0 |
Без проверки | swap, btrfs, xfs, nfs, tmpfs |
Неправильное значение для btrfs/xfs приводит к длинной паузе при загрузке.
Три команды после правок:
Проверка синтаксиса:
findmnt --verify --verbose
Монтирование всех строк из fstab:
sudo mount -a
Если строка битая — получишь ошибку в терминале.
Применение опций без перезагрузки:
sudo mount -o remount,rw /
remount перечитывает опции для уже смонтированной системы. Полезно, когда добавил noatime и хочешь применить к корню прямо сейчас. Ошибки загрузки смотри в journalctl — первая загрузка.
Система не смонтирует раздел. Если это корень — emergency shell. Исправление: загрузись с live-USB, поправь UUID. Всегда проверяй через findmnt --verify после правок.
Можно, но не стоит. Имена блочных устройств меняются. Используй UUID — это постоянный идентификатор. При переносе Arch на другой диск с UUID править fstab не придётся.
Без nofail systemd ждёт 90 секунд. С nofail и x-systemd.device-timeout=5 загрузка не задержится. Если USB-диски вообще не монтируются — смотри статью про флешки.
noatime отключает запись времени доступа полностью. relatime (ядро по умолчанию) обновляет, только если прошло 24 часа. Для десктопа разница минимальна, но noatime чище для SSD.
Загрузись с live-USB, смонтируй корень, поправь:
sudo mount /dev/sda2 /mnt
sudo nano /mnt/etc/fstab
Проверь через findmnt --verify --root /mnt и перезагрузись. Если чёрный экран после установки — это частый симптом битого fstab.
fstab — шесть полей, и каждое делает одну вещь. Устройство (UUID!), точка монтирования, тип, опции, dump=0, pass для fsck. Большинству десктопных строк хватает defaults,noatime, для внешних дисков добавь nofail,x-systemd.device-timeout=5. Всегда проверяй синтаксис через findmnt --verify — и не бойся править файл, теперь ты знаешь, за что отвечает каждый столбец.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии