linux-labs

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

Файловые системы (ext4, xfs, fsck)

Концепция Ubuntu 24.04 ХранилищеФайлыТраблшутинг

Создание ФС, метки и UUID, проверка fsck, типы ext4/xfs.

Файловая система организует данные на разделе/томе. Самые частые:

  • ext4 — универсальная, можно уменьшать, проверяется fsck/e2fsck;
  • xfs — хорошо масштабируется, только растёт (уменьшить нельзя), чинится xfs_repair.

Связка: блочное устройство → ФС (mkfs) → монтирование (mount) → файлы.

lsblk -f                          # устройства + тип ФС + UUID + точка монтирования
blkid                             # UUID и тип каждого раздела
df -Th                            # смонтированные ФС с типом и местом
sudo mkfs.ext4 /dev/sdb1          # создать ext4 (СОТРЁТ данные!)
sudo mkfs.ext4 -L data /dev/sdb1  # сразу с меткой
sudo mkfs.xfs /dev/sdb1           # создать xfs
sudo mkfs.xfs -f /dev/sdb1        # перезаписать существующую ФС
sudo e2label /dev/sdb1 data       # метка тома (ext)
sudo xfs_admin -L data /dev/sdb1  # метка тома (xfs)
sudo blkid /dev/sdb1              # узнать UUID (для fstab)

Монтировать в /etc/fstab лучше по UUID (имена /dev/sdX «плавают»).

sudo tune2fs -l /dev/sdb1         # все параметры ФС (UUID, счётчик монтирований, фичи)
sudo tune2fs -m 1 /dev/sdb1       # зарезервировано для root: 5%→1% (вернуть место на больших дисках)
sudo tune2fs -L newlabel /dev/sdb1
sudo tune2fs -U random /dev/sdb1  # сменить UUID (после клонирования диска — иначе дубликат!)
sudo dumpe2fs -h /dev/sdb1        # суперблок кратко
xfs_info /mnt/xfs                 # параметры смонтированной xfs
sudo umount /dev/sdb1             # ФС должна быть ОТМОНТИРОВАНА!
sudo fsck -f /dev/sdb1            # принудительно проверить ext (-f)
sudo fsck -y /dev/sdb1            # автоответ «да» на исправления
sudo e2fsck -fy /dev/sdb1         # то же напрямую для ext
sudo xfs_repair /dev/sdb1         # для xfs (fsck.xfs ничего не делает!)
sudo xfs_repair -n /dev/sdb1      # dry-run (только проверить, не чинить)

⚠️ Никогда не запускай fsck на смонтированной ФС — повредишь данные. Корень проверяют из live/recovery или автопроверкой при загрузке (fsck.mode=force в параметрах ядра, либо tune2fs -c).

ФС ушла в read-only

Ядро перевело ФС в ro из-за ошибок I/O. Смотри dmesg/journalctl -k; отмонтируй и fsck/xfs_repair. Частый признак умирающего диска — проверь SMART (smartctl -a).

Не могу уменьшить xfs

xfs не уменьшается в принципе. Уменьшать умеет только ext4 (resize2fs на меньший размер, при отмонтированной ФС), иначе — пересоздавать и копировать.

«Structure needs cleaning» (xfs)

Повреждение: отмонтируй и xfs_repair. Если не монтируется — xfs_repair -L сбросит журнал (крайняя мера, риск потери последних записей).

На большом диске «не хватает места» при свободном

5% зарезервировано для root по умолчанию. На диске данных верни: tune2fs -m 1.

После клонирования два раздела с одним UUID

Смени один: tune2fs -U random (ext) / xfs_admin -U generate (xfs).

lsblk -f ; blkid ; df -Th         # обзор ФС
sudo mkfs.ext4 -L data /dev/sdX1  # создать (сотрёт!)
sudo tune2fs -m 1 /dev/sdX1       # уменьшить резерв root до 1%
sudo umount /dev/sdX1 && sudo fsck -fy /dev/sdX1   # проверка ext (отмонтированной!)
sudo xfs_repair /dev/sdX1         # проверка xfs

См. также