JavaRush /Курсы /Docker SELF /Проверка и исправление файловой системы: команды fsck

Проверка и исправление файловой системы: команды fsck

Docker SELF
6 уровень , 2 лекция
Открыта

1. Почему важно проверять файловую систему?

Файловая система в Linux — это на самом деле один из самых "занятых" сотрудников ОС. Она трудится, пока вы сохраняете файлы, открываете программы или просто читаете данные. А вот представьте: в самый ответственный момент этот сотрудник устал и решил упасть в обморок (читай: система выключилась из-за отключения электричества). Это может привести к повреждению таблицы файлов, потерям данных или множеству других неприятных проблем.

Но что может пойти не так?

  1. Резкое отключение питания — ваше устройство внезапно отключилось, не успев закончить запись данных.
  2. Ошибка хранения — жесткий диск или SSD могут иметь аппаратные сбои, которые повредят файловую систему.
  3. Программные ошибки — не исключены баги в драйверах или системных утилитах.

Часто после таких событий файловая система приходит в негодность, и система сама может попросить вас проверить ее состояние. Вот тут-то и приходит на помощь fsck, что расшифровывается как File System Check.


2. Что такое fsck и как он работает?

Идея инструмента

fsck — это универсальная утилита, которая проверяет целостность файловой системы и исправляет обнаруженные ошибки. Работает она как врач: проводит тесты, находит проблему и, если возможно, "лечит". Если проблема слишком серьезна, fsck может хотя бы диагностировать, что именно пошло не так.

Когда используется fsck?

  1. При явных сбоях работы файлов (например, они вдруг "исчезли").
  2. Если система не грузится и сообщает об ошибке файловой системы.
  3. Для регулярной профилактики, чтобы убедиться, что все в порядке.

3. Основной синтаксис fsck

Для использования fsck обычно применяется следующая команда:

fsck [ключи] <устройство>

Основные ключи:

  • -y — Автоматически подтвердить исправления. Это удобно, если вы не хотите сидеть и нажимать yes на каждый вопрос.
  • -n — Только проверка, без исправления (сухой прогон). Полезно для анализа ситуации, если вы боитесь что-то испортить.
  • -t — Указать тип файловой системы (например, ext4, xfs).
  • -r — Включить интерактивный режим (вы будете подтверждать каждое исправление).

4. Практика: проверка файловой системы

Давайте начнем с простой проверки. Допустим, у нас есть устройство /dev/sdb1, которое мы хотим проверить.

Шаг 1: Проверка без исправлений

Для начала оценим состояние файловой системы без внесения изменений:

fsck -n /dev/sdb1

После выполнения команды вы увидите список найденных проблем, если они есть. Вот пример вывода:

Inodes that were part of a corrupted orphan linked list found.
Filesystem errors detected. Run fsck to repair.

Шаг 2: Автоматическое исправление

Теперь мы включим режим исправления ошибок:

fsck -y /dev/sdb1

fsck будет пытаться исправить каждую обнаруженную ошибку и автоматически подтверждать действие. Это может занять некоторое время, если устройство большое.


5. Что делать, если файловая система используется?

Ошибка при запуске fsck

Если вы попытаетесь запустить fsck на разделе, который уже смонтирован, то получите предупреждение:

fsck: cannot check a mounted filesystem.

Это происходит, потому что проверка монтированной файловой системы может привести к повреждению данных. Есть несколько способов решить эту проблему.

  1. Смонтируйте устройство в режиме только для чтения.
mount -o remount,ro /dev/sdb1
  1. Используйте LiveCD или LiveUSB.

Загрузитесь с загрузочного диска или флешки, чтобы выполнить проверку на уже отмонтированном устройстве.

  1. Используйте режим восстановления.

Перезагрузите систему в режиме восстановления, который обычно предлагает безопасную среду для выполнения проверки.

Особенности проверки корневой файловой системы /

Корневая файловая система — уникальный случай, так как она активно используется системой. Чтобы запустить fsck для такого раздела, потребуется:

  1. Перейти в режим однопользовательского режима с помощью команды:
systemctl isolate rescue.target
  1. Вручную запустить fsck:
fsck -y /

6. Типичные ошибки и их исправление

Поврежденные inodes

Если fsck сообщает о поврежденных inode'ах (структурах, хранящих информацию о файлах), он предложит удалить их. Это безопасно, так как поврежденный inode уже не связан с текущими файлами.

Потерянные файлы

Иногда после запуска fsck потерянные файлы попадают в каталог lost+found на корне файловой системы. Вы можете проверить это место вручную, чтобы восстановить важные данные.

Важные рекомендации

  1. Всегда делайте резервные копии перед проверкой. Хотя fsck обычно работает безопасно, исправления могут привести к потере данных.

  2. Не запускайте fsck на смонтированных разделах. Это может привести к повреждению данных.

  3. Используйте флаг -n для первичного анализа. Если не уверены, стоит ли исправлять ошибки автоматически, начните с сухого прогона.


7. Пример: Симуляция ошибки и исправление

  1. Создайте виртуальный диск и создайте на нем файловую систему:
dd if=/dev/zero of=./disk.img bs=1M count=100
mkfs.ext4 ./disk.img
  1. Смонтируйте диск:
sudo mount ./disk.img /mnt/test/
  1. Смоделируйте повреждение:
sudo dd if=/dev/zero of=/mnt/test/randomfile bs=512 count=10
  1. Отмонтируйте диск и проверьте его:
sudo umount /mnt/test/
fsck ./disk.img

Следуя выводам команды, исправьте ошибки.

На этом этапе вы уверенно разбираетесь в проверке файловой системы, можете корректно устранять ошибки и предотвращать сбои. Впереди нас ждут новые инструменты для работы с файловыми системами, но fsck теперь ваш верный инструмент для диагностики и исправления.

1
Задача
Docker SELF, 6 уровень, 2 лекция
Недоступна
Основная проверка файловой системы
Основная проверка файловой системы
1
Задача
Docker SELF, 6 уровень, 2 лекция
Недоступна
Автоматическое исправление ошибок
Автоматическое исправление ошибок
1
Задача
Docker SELF, 6 уровень, 2 лекция
Недоступна
Проверка корневой файловой системы
Проверка корневой файловой системы
1
Задача
Docker SELF, 6 уровень, 2 лекция
Недоступна
Создание, повреждение и восстановление файловой системы
Создание, повреждение и восстановление файловой системы
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ