С чего начать Первые шаги трек · 15 ступеней
Linux Labs

Монтирование и fstab

6 мин Ubuntu 24.04

Подключение файловых систем, постоянное монтирование через /etc/fstab, UUID.

Шпаргалка

7 команд Версия для печати
  • lsblk -f устройства и ФС
  • findmnt дерево монтирования
  • blkid /dev/sdX1 UUID для fstab
  • sudo mount -a применить fstab без ребута (проверка!)
  • sudo mount -o remount,rw / корень в rw (recovery)
  • sudo mount --bind /srv/data /var/www/data bind-mount
  • fuser -vm /mnt кто держит ФС (для umount)

Обзор

В Linux нет «дисков C:/D:» — всё дерево начинается с /, а файловые системы монтируются в каталоги (точки монтирования).

bash
lsblk -f                          # блочные устройства + ФС + UUID + точки монтирования
findmnt                           # дерево монтирования (наглядно)
mount | column -t                 # что и куда смонтировано (плоско)
df -h                             # свободное место по смонтированным ФС

Конфигурация

/etc/fstab монтирует ФС при загрузке. Поля: что · куда · тип · опции · dump · pass.

UUID=1234-ABCD  /data  ext4  defaults,noatime  0  2
tmpfs           /scratch tmpfs size=2G,noexec   0  0
  • pass (6-е поле): 1 для корня, 2 для прочих, 0 — не проверять fsck.
  • После правки обязательно проверь, не сломал ли загрузку:
bash
sudo mount -a                     # смонтировать всё из fstab БЕЗ ребута (увидишь ошибку сразу)
sudo systemctl daemon-reload      # перечитать сгенерированные mount-юниты
findmnt --verify                  # проверить fstab на ошибки

Рецепты

3

Монтирование

bash
sudo mount /dev/sdb1 /mnt/data    # смонтировать вручную (временно, до ребута)
sudo mount UUID=1234-ABCD /mnt    # по UUID
sudo umount /mnt/data             # отмонтировать
sudo umount -l /mnt/data          # lazy: отцепить, освободить когда отпустят (аккуратно)
blkid /dev/sdb1                   # UUID и тип ФС (для fstab)
sudo mount -o remount,rw /        # перемонтировать корень в rw (recovery)
sudo mount -o remount,ro /data    # на лету сделать ro

Частые опции -o: ro/rw, noexec, nosuid, nodev (безопасность), noatime (скорость), _netdev (сетевые ФС).

bind и tmpfs

bash
# bind-mount: показать каталог в другом месте дерева
sudo mount --bind /srv/data /var/www/data
#   в fstab:  /srv/data  /var/www/data  none  bind  0 0

# tmpfs: ФС в ОЗУ (быстрый scratch, чистится при ребуте)
sudo mount -t tmpfs -o size=1G tmpfs /mnt/ram

Новый диск в fstab: UUID и nofail

bash
sudo blkid -s UUID -o value /dev/vdb1     # UUID новой ФС
sudo mkdir -p /srv/data
echo 'UUID=<uuid> /srv/data ext4 defaults,nofail 0 2' |
  sudo tee -a /etc/fstab
sudo systemctl daemon-reload              # systemd перечитывает fstab
sudo findmnt --verify                     # таблица без ошибок
sudo mount -a && findmnt /srv/data        # смонтировалось по таблице

nofail — для дисков с данными. Без неё каждая строка fstab обязательна для загрузки: если диска нет, systemd ждёт его, а потом останавливает загрузку в аварийном режиме (emergency mode) — к машине нужен человек с консолью. С nofail система загрузится без диска, а каталог останется пустым. Корень / и /boot так не помечают.

Перезагрузка для проверки не нужна: sudo umount /srv/data, затем sudo mount -a — раздел вернулся в каталог, значит, строка верна.

Неполадки

7

wrong fs type, bad option, bad superblock

mount отвечает wrong fs type, bad option, bad superblock on /dev/vdb, missing codepage or helper program, or other error и советует заглянуть в dmesg. Чаще всего на устройстве нет файловой системы: монтируют новый диск целиком или раздел до mkfs. Проверь lsblk -f — пустая колонка FSTYPE. Новый диск сначала размечают (fdisk-parted), потом создают ФС и монтируют раздел (/dev/vdb1, а не /dev/vdb). Реже причина — неверный тип в -t или опция, которую ФС не знает; подробности печатает sudo dmesg | tail.

your fstab has been modified, but systemd still uses the old version

Подсказка mount после правки fstab: systemd строит из таблицы свои юниты монтирования и ещё не перечитал её. Выполни sudo systemctl daemon-reload.

target is busy при umount

ФС используется. Кто держит: lsof +D /mnt/data или fuser -vm /mnt/data. Закрой процессы, выйди из каталога (cd /), или umount -l (lazy).

Ошибка в fstab → система не загрузилась

Неверная строка может уронить загрузку в emergency-режим. Всегда после правки sudo mount -a/findmnt --verify. В recovery: mount -o remount,rw / и поправь fstab.

Смонтировал, но место не там, где ждал

Если в точке монтирования уже были файлы — они «спрятаны» под смонтированной ФС (не удалены). umount вернёт их.

Сетевая ФС вешает загрузку

Без _netdev система ждёт ФС до сети. Добавь _netdev (и nofail для некритичных) в опции fstab (см. nfs).

Не та ФС/устройство

Имена /dev/sdX «плавают» между ребутами — монтируй по UUID (blkid), не по /dev/sdX.

Термины

2
точка монтирования mount point
Каталог, в котором подключённая файловая система становится доступна в дереве путей. Ещё встречается в: resize2fs / xfs_growfs, lsblk, Load average: сколько задач ждёт процессор и диск, Логические тома LVM и ещё 2
fstab
Таблица описания файловых систем, их источников, точек монтирования и параметров подключения. Ещё встречается в: blkid, Память и swap: free, available и кэш страниц, mkfs, Загрузка системы и GRUB и ещё 10

См. также

  • blkid — UUID и метка устройства для строки fstab.
  • mkfs — создать файловую систему перед монтированием.
  • fdisk-parted — разметить новый диск.
  • filesystems — ext4 и xfs, проверка fsck.
  • loop-device — смонтировать образ или учебный диск из файла.
  • lvm — PV → VG → LV; гибкое управление дисками, расширение и снапшоты.
  • disk-usage — Куда делось место и inode — df, du, поиск крупных файлов, ловушки.
Загрузка…