Все об Arch Linux

Arch Linux будет тем, что вы из него сделаете!

fstab: что значат все поля на практике

Каждая строка /etc/fstab — это шесть полей: устройство, точка монтирования, тип файловой системы, опции, dump и pass. Система читает файл при загрузке и монтирует разделы строго по нему. Ошибка в любом поле — и Arch не поднимется, поэтому разберём каждый столбец на реальном примере.

Какие поля есть в /etc/fstab

Типичный 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

Устройство (поле 1)

Здесь указывают, что монтировать. Варианты:

  • UUID — предпочтительный. Создаётся при форматировании, не меняется при перестановке дисков.
  • PARTUUID — UUID раздела из таблицы GPT. Работает на уровне таблицы, а не файловой системы.
  • LABEL — метка (LABEL=Data). Удобно читать, но метки бывают одинаковыми.
  • /dev/sda2 — имена ядра. Не используй: порядок дисков меняется, и система не стартует.

Точка монтирования (поле 2)

Куда «приклеивается» раздел. Корень — /, домашний — /home, swap — none. Директория должна существовать до перезагрузки (sudo mkdir -p /mnt/data).

Тип файловой системы (поле 3)

ext4, btrfs, xfs, vfat (для /boot на UEFI), swap. Надёжнее писать явно, чем auto.

Опции (поле 4)

Параметры через запятую — самое важное поле. Подробнее в следующем разделе.

Dump (поле 5)

Утилита dump не используется в Arch. Всегда ставь 0.

Pass / fsck (поле 6)

Порядок проверки файловой системы при загрузке:

  • 1 — первым (только корень на ext2/ext3/ext4).
  • 2 — после корня (остальные разделы).
  • 0 — без проверки. Обязательно для swap, btrfs и xfs — у них нет своей fsck-утилиты.

Что такое UUID и как его узнать

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 и pass

Dump — просто 0. Утилита dump не используется, systemd это поле игнорирует.

Pass — порядок вызова fsck:

Значение Поведение Когда ставить
1 Первым Только корень на ext4
2 После корня /home, /boot
0 Без проверки swap, btrfs, xfs, nfs, tmpfs

Неправильное значение для btrfs/xfs приводит к длинной паузе при загрузке.

Как перечитать fstab без перезагрузки

Три команды после правок:

Проверка синтаксиса:

findmnt --verify --verbose

Монтирование всех строк из fstab:

sudo mount -a

Если строка битая — получишь ошибку в терминале.

Применение опций без перезагрузки:

sudo mount -o remount,rw /

remount перечитывает опции для уже смонтированной системы. Полезно, когда добавил noatime и хочешь применить к корню прямо сейчас. Ошибки загрузки смотри в journalctl — первая загрузка.

Частые вопросы

Что будет, если неправильный UUID в fstab?

Система не смонтирует раздел. Если это корень — emergency shell. Исправление: загрузись с live-USB, поправь UUID. Всегда проверяй через findmnt --verify после правок.

Можно ли использовать /dev/sda в fstab?

Можно, но не стоит. Имена блочных устройств меняются. Используй UUID — это постоянный идентификатор. При переносе Arch на другой диск с UUID править fstab не придётся.

Зачем nofail для внешних дисков?

Без nofail systemd ждёт 90 секунд. С nofail и x-systemd.device-timeout=5 загрузка не задержится. Если USB-диски вообще не монтируются — смотри статью про флешки.

Чем noatime отличается от relatime?

noatime отключает запись времени доступа полностью. relatime (ядро по умолчанию) обновляет, только если прошло 24 часа. Для десктопа разница минимальна, но noatime чище для SSD.

Я отредактировал fstab, система загрузилась криво

Загрузись с 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 — и не бойся править файл, теперь ты знаешь, за что отвечает каждый столбец.



Не получилось? Поможем настроить

Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Читайте также

Комментарии

Загрузка…

Откроется GitHub: создайте новый issue с вашим комментарием (кнопка «Submit new issue»). После отправки обновите эту страницу — комментарий появится ниже.

Telegram Max