Введение в Unix



         

Проверка и восстановление стуктуры файловой системы


Структура файловой системы, описанная выше в терминах i-узлов, блоков, косвенных блоков и суперблока, может быть нарушена и требовать восстановления. Например, при разрушении информации в трижды косвенном блоке могут появиться следующие проблемы:

  • некоторый блок может быть вне системы, т.е. не являться частью файла и не быть в списке свободных блоков;
  • могут появиться дубли i-узлов, т.е. описывать один и тот же файл дважды;
  • некоторый блок может одновременно быть частью файла и быть в списке свободных блоков;
  • некоторый файл может существовать, не будучи включенным ни в один каталог.

К счастью, структура файловой системы обладает некоторой избыточностью, позволяющей восстанавливать отдельные поломки. Вот некоторые виды избыточности:

  • блок данных, являющийся каталогом, содержит имена файлов и номера i-узлов; где-то есть i-узел, соответствующий этому каталогу, и этот i-узел должен быть каталогом, а не обычным файлом;
  • блок, включенный в список свободных блоков, теоретически не может быть частью какого-либо файла; для проверки этого достаточно сканировать все i-узлы для просмотра всех блоков, занятых файлами, и сканировать список свободных блоков;
  • аналогично, блок, принадлежащий файлу, должен принадлежать только одному файлу; это легко проверить.

Эти и другие виды избыточности использует программа проверки файловой системы, запускаемая командой fsck (file system check). В различных реализациях существуют разные команды проверки целостности файловой системы: icheck, dcheck, ncheck. Однако все они в большей или меньшей степени перекрываются командой fsck. Типичное выполнение команды fsck выглядит следующим образом:




Содержание  Назад  Вперед