linux-labs

Вики / Хранилище и ФС

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

Концепция Ubuntu 24.04 ХранилищеФайлыЗагрузка

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

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

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

/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.
  • После правки обязательно проверь, не сломал ли загрузку:
sudo mount -a                     # смонтировать всё из fstab БЕЗ ребута (увидишь ошибку сразу)
sudo systemctl daemon-reload      # перечитать сгенерированные mount-юниты
findmnt --verify                  # проверить fstab на ошибки
# 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

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 система ждёт ФС до сети. Добавь _netdevnofail для некритичных) в опции fstab (см. nfs).

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

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

lsblk -f ; findmnt               # устройства+ФС / дерево монтирования
blkid /dev/sdX1                  # UUID для fstab
sudo mount -a                    # применить fstab без ребута (проверка!)
sudo mount -o remount,rw /       # корень в rw (recovery)
sudo mount --bind SRC DST        # bind-mount
fuser -vm /mnt                   # кто держит ФС (для umount)

См. также