Linux. Алексей СтахновЧитать онлайн книгу.
стопроцентной надежностью. Рано или поздно целостность файловой системы нарушается. Это может произойти от некорректного завершения работы системы (нажата кнопка Reset, перебои в электропитании) или повреждения носителя информации. Для проверки и восстановления целостности файловой системы используется команда fsck. Она при загрузке системы запускается автоматически, поэтому возможные неполадки будут обнаружены (и может быть исправлены) перед использованием файловой системы.
Полная проверка файловой системы на современных жестких дисках может занять достаточно большое время, поэтому существуют некоторые способы избежать таких проверок. В файловой системе Ext2 существует специальный флаг, расположенный в суперблоке, который используется для выявления корректности демонтирования файловой системы при последнем выключении системы. Так же можно принудительно отключить проверку файловой системы, создав файл /etc/fastboot.
Автоматическая проверка используется только для файловых систем, монтируемых во время загрузки. Для проверки других систем команда fsck должна выполняться вручную.
Если fsck находит неисправность, которую не может исправить, то для восстановления структуры файловой системы или потерянной информации могут потребоваться глубокие знания и понимание работы файловых систем и их типов.
Команда fsck должна использоваться только для демонтированных систем (за исключением корневой файловой системы, которая проверяется смонтированной в режиме read-only), т. к. при ее работе используется прямой доступ к диску, и информация о внесении каких-либо изменений в файловую систему может быть недоступна операционной системе, что, обычно, приводит к нарушению ее работы.
Так же рекомендуется использовать утилиту badblocks. При ее выполнении выводится список номеров найденных на диске поврежденных блоков. Этот список может быть использован программой fsck для внесения изменений в структуру файловой системы.
Виртуальная файловая система (VFS)
База, на которой основывается использование всего многообразия поддерживаемых файловых систем.
Ядро системы Linux содержит в себе программный код-посредник, выполняющий функции виртуальной файловой системы. Этот код обрабатывает запросы к файлам и вызывает необходимые функции соответствующей файловой системы для выполнения операции ввода/вывода. Такой механизм работы с файлами используется для упрощения объединения и использования нескольких типов файловых систем.
Пусть программа записывает информацию в файл (или считывает ее, не суть важно). Программой вызывается библиотечная функция, отвечающая за запись (или чтение) информации в файл. Эта функция определенным образом подготавливает информацию, которая затем передается в ядро системы. Ядро, в свою очередь, вызывает соответствующую функцию виртуальной файловой системы. Эта функция определяет, с каким типом файловой системы будут производиться манипуляции, подготавливает данные и вызывает необходимую функцию соответствующей файловой