Целостность и обслуживание ФС [104.2]

Рейтинг: 48.7% · 7 голосов
Полный курс LPIC-1 (экзамены 101-500 и 102-500): архитектура, загрузка, пакеты, команды и текст, ФС и права, шелл-скрипты, пользователи, сервисы, сеть, безопасность. Debian и RHEL.
Ответить
Аватара пользователя
Sergey_Sysadmin
Сообщения: 134
Зарегистрирован: 11 май 2026, 05:31

Целостность и обслуживание ФС [104.2]

Сообщение Sergey_Sysadmin »

Оглавление курса (41)
  1. Введение в LPIC-1 и как устроен путь администратора
  2. Железо, устройства и модули ядра [101.1]
  3. Загрузка системы: от BIOS до systemd [101.2]
  4. systemd, цели и уровни выполнения [101.3]
  5. План разметки диска и swap [102.1]
  6. Загрузчик GRUB 2 [102.2]
  7. Разделяемые библиотеки [102.3]
  8. Управление пакетами в Debian: dpkg и apt [102.4]
  9. Управление пакетами RPM, DNF и Zypper [102.5]
  10. Linux как гость виртуализации [102.6]
  11. Командная строка Bash [103.1]
  12. Обработка текста фильтрами [103.2]
  13. Базовое управление файлами [103.3]
  14. Потоки, конвейеры и перенаправление [103.4]
  15. Процессы: создание, мониторинг, сигналы [103.5]
  16. Приоритеты выполнения процессов [103.6]
  17. Регулярные выражения [103.7]
  18. Редактор vi и vim [103.8]
  19. Разделы и создание файловых систем [104.1]
  20. Целостность и обслуживание ФС [104.2] (вы здесь)
  21. Монтирование файловых систем [104.3]
  22. Урок 21. Права доступа и владение: rwx, chmod, umask и специальные биты
  23. Жёсткие и символические ссылки
  24. FHS и поиск файлов в системе [104.7]
  25. Окружение и кастомизация оболочки [105.1]
  26. Урок 25. Написание простых bash-скриптов [105.2]
  27. Графика, рабочие столы и доступность
  28. Учётные записи пользователей и групп
  29. Автоматизация задач: cron, at, таймеры [107.2]
  30. Локализация и интернационализация [107.3]
  31. Системное время и синхронизация [108.1]
  32. Системное логирование [108.2]
  33. Основы почтового агента (MTA) [108.3]
  34. Печать и CUPS [108.4]
  35. Основы интернет-протоколов [109.1]
  36. Постоянная конфигурация сети [109.2]
  37. Диагностика сети [109.3]
  38. DNS на стороне клиента [109.4]
  39. Задачи администрирования безопасности [110.1]
  40. Настройка безопасности хоста [110.2]
  41. Шифрование данных: SSH и GnuPG [110.3]
Урок 19. Целостность и обслуживание ФС [104.2]

Файловая система ломается не только от сбоя диска, но и от внезапного выключения, паники ядра или просто от старости железа. Задача администратора - вовремя увидеть, что место или иноды кончаются, понять, в каком состоянии метаданные, и при необходимости провести проверку и ремонт так, чтобы не сделать хуже. В этом уроке разбираем учёт места (df, du), проверку и ремонт ext4 и XFS, чтение и правку метаданных (tune2fs, dumpe2fs, xfs_info, xfs_db) и базовую осведомлённость о здоровье диска через SMART.

Изображение

Как это работает

Любая ФС хранит две принципиально разные вещи: данные файлов и метаданные (карта свободных блоков, таблица инодов, журнал, ссылки каталогов). Когда вы видите No space left on device, причина бывает двух сортов: кончились блоки данных или кончились свободные иноды. Это разные ресурсы. Один инод - это запись об объекте (файле, каталоге, симлинке); миллион пустых файлов забьёт иноды при куче свободных гигабайт. Поэтому df показывают и то, и другое.

Журналируемые ФС (ext3/ext4, XFS) ведут журнал: перед изменением метаданных операция сначала пишется в журнал, и только потом применяется к самой ФС. После сбоя система при монтировании проигрывает журнал (replay) и приводит метаданные в согласованное состояние за секунды. Это не отменяет полную проверку насовсем, но делает её редкой: журнал защищает структуру, а не содержимое ваших файлов.

Главное правило ремонта: проверять и чинить нужно размонтированную ФС или смонтированную в режиме только-чтение. Если чинить живую ФС, ядро держит в памяти кэш метаданных, а инструмент правит их на диске - вы получите рассинхрон и реальное разрушение данных. Для корня это значит загрузку в rescue/initramfs или с live-носителя.

И ключевое различие семейств: ext4 чинят оффлайн через fsck/e2fsck, а XFS устроена иначе. При штатной загрузке XFS сама делает journal replay; отдельной проверки на каждый монтаж нет, а ремонт делается утилитой xfs_repair, причём только на размонтированной ФС. fsck.xfs специально ничего не делает (это заглушка), чтобы автозагрузка не трогала XFS зря.

Команды и примеры

Свободное место и иноды:

Код: Выделить всё

df -h            # человекочитаемые размеры (G/M/K)
df -i            # счётчик инодов: всего, занято, свободно, %
df -hT /var      # с типом ФС, по конкретной точке монтирования
Кто съел место - идём по каталогам:

Код: Выделить всё

du -sh /var/*            # суммарный размер каждого подкаталога
du -h --max-depth=1 /    # то же, но через ограничение глубины
du -xsh /                # -x не уходить на другие ФС (не считать /proc, mounts)
Проверка и ремонт ext4. Сначала обязательно размонтировать:

Код: Выделить всё

umount /dev/sdb1
fsck /dev/sdb1            # fsck сам выбирает e2fsck по типу ФС
e2fsck -f -y /dev/sdb1    # -f форс даже если ФС помечена чистой, -y на всё да
e2fsck -p /dev/sdb1       # preen: чинить только безопасное автоматически
XFS чинится своей утилитой, fsck для неё бесполезен:

Код: Выделить всё

umount /dev/sdb1
xfs_repair /dev/sdb1      # основной ремонт оффлайн
xfs_repair -n /dev/sdb1   # -n только проверка, без записи (dry-run)
xfs_repair -L /dev/sdb1   # обнулить повреждённый журнал - крайняя мера, риск потери
Метаданные и тюнинг ext. Это работает с размонтированной или живой ФС в зависимости от ключа:

Код: Выделить всё

dumpe2fs /dev/sdb1            # суперблок, группы блоков, параметры
dumpe2fs -h /dev/sdb1        # только заголовок (короткий, читаемый)
tune2fs -l /dev/sdb1         # листинг параметров суперблока
tune2fs -m 1 /dev/sdb1       # резерв для root с 5% до 1%
tune2fs -c 30 -i 2w /dev/sdb1 # принудительный fsck каждые 30 монтирований или 2 недели
tune2fs -L data /dev/sdb1    # задать метку (label) тома
Метаданные XFS - смотрим, не правим:

Код: Выделить всё

xfs_info /mnt/data           # геометрия: размер блока, allocation groups, лог
xfs_db -c "sb 0" -c "p" /dev/sdb1   # эксперту: чтение суперблока, опасно на rw
SMART - заглянуть в здоровье диска до того, как ФS посыпалась:

Код: Выделить всё

smartctl -H /dev/sda         # общий вердикт PASSED/FAILED
smartctl -a /dev/sda         # все атрибуты: Reallocated_Sector_Ct, Pending и т.д.
smartctl -t short /dev/sda   # запустить короткий самотест
В Debian/Ubuntu это пакет smartmontools (apt install smartmontools), демон smartd. В RHEL/Fedora тот же пакет ставится через dnf install smartmontools, сервис smartd через systemctl enable --now smartd. Утилиты e2fsprogs (fsck, tune2fs, dumpe2fs) есть в обоих семействах; xfsprogs (xfs_repair, xfs_info) - тоже общий пакет, в RHEL 10 XFS остаётся ФС по умолчанию.

Частые грабли
  • Запуск fsck/e2fsck/xfs_repair на смонтированной ФС - почти гарантированное разрушение. Всегда umount, для корня - загрузка с live или в rescue.
  • e2fsck без -f на чистой ФС просто выходит, ничего не проверив. Если нужна реальная проверка - добавляйте -f.
  • Ожидание, что fsck.xfs что-то чинит. Это пустышка; ремонт только xfs_repair.
  • xfs_repair -L обнуляет журнал и может потерять незаписанные изменения. Это последний шанс, а не штатный ключ.
  • No space left при свободных гигабайтах - проверьте df -i: кончились иноды.
  • Удалённый файл, который держит открытым процесс, место не освобождает - смотрите lsof, df покажет старую занятость до перезапуска процесса.
  • du и df расходятся из-за sparse-файлов, удалённых-но-открытых файлов и разной единицы счёта - это нормально, не баг.
  • SMART PASSED не гарантия: диск может сыпаться при растущих Pending/Reallocated секторах. Смотрите атрибуты, а не только вердикт.
Мини-лаба
  • Создайте файл-образ: dd if=/dev/zero of=/tmp/disk.img bs=1M count=200, сделайте loop-устройство через losetup или сразу mkfs.ext4 /tmp/disk.img.
  • Смонтируйте, заполните мелкими файлами (touch в цикле) и сравните df -h и df -i - убедитесь, что иноды кончаются раньше места.
  • Снимите параметры: dumpe2fs -h на образе, найдите Inode count и Reserved block count.
  • Размонтируйте и выполните e2fsck -f -y - посмотрите фазы проверки.
  • Создайте второй образ с mkfs.xfs, смонтируйте, посмотрите xfs_info, размонтируйте и прогоните xfs_repair -n.
  • На реальном диске выполните smartctl -H и smartctl -a, найдите атрибуты Reallocated_Sector_Ct и Current_Pending_Sector.
Контрольные вопросы
  • Чем отличается исчерпание блоков от исчерпания инодов и какой ключ df покажет второе?
  • Почему e2fsck нельзя запускать на смонтированной ФС и как проверить корневую ФС?
  • Что делает fsck.xfs и какой утилитой реально чинят XFS?
  • Зачем нужен ключ -f у e2fsck, если ФС помечена чистой?
  • Какой командой задать резерв блоков для root на ext4 в 1% и зачем этот резерв вообще нужен?
  • Что означает journal replay при монтировании и почему он не заменяет полный fsck?
👍3 ❤️ 🔥1 😄 🤔
Аватара пользователя
scala7
Сообщения: 1
Зарегистрирован: 11 май 2026, 19:23

Re: Целостность и обслуживание ФС [104.2]

Сообщение scala7 »

А если корень на XFS и он побился - xfs_repair с live-флешки гонять, я правильно понял? fsck же ему не поможет.
👍1 ❤️ 🔥 😄 🤔
Аватара пользователя
pettoy
Сообщения: 1
Зарегистрирован: 13 май 2026, 22:40

Re: Целостность и обслуживание ФС [104.2]

Сообщение pettoy »

Поймал на проде: df -h три гига свободно, а запись падает. Оказалось иноды кончились, спасибо df -i, без него бы долго гадал.
👍 ❤️ 🔥 😄 🤔1
Ответить
← Предыдущая глава
Разделы и создание файловых систем [104.1]
Следующая глава →
Монтирование файловых систем [104.3]

Все главы курса «LPIC-1: администратор Linux (101 + 102)»

Поделиться темой: ✈ Telegram VK
  • Похожие темы

Вернуться в «LPIC-1: администратор Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость