Linux
Шрифт:
Существует специальный файл /etc/fstab, содержащий список файловых систем и их параметры монтирования. Этот файл используется ядром операционной системы при ее старте. Ядро пытается смонтировать файловые системы, описанные в этом файле, с соответствующими параметрами монтирования.
После того как отпала необходимость в использовании файловой системы, ее можно демонтировать. Чаще всего это необходимо при работе с дискетами или дисками CD-ROM (один диск необходимо заменить на другой). Для демонтирования используется команда umount. В качестве параметра указывается файл устройства или точка монтирования. Например, umount /dev/hda1 или umount /mnt/floppy.
По окончании работы
Для выполнения операций монтирования и демонтирования требуется наличие прав доступа root. Но при работе на своем персональном компьютере это усложняет процедуру. Есть несколько вариантов решения такой проблемы:
• в KDE или GNOME обычному пользователю можно монтировать CD-ROM и дисковод;
• осуществить временный вход в систему пользователем root, монтировать/демонтировать диск и немедленно выйти;
• применить программу sudo, позволяющую пользователям, для которых это разрешено, использовать команду mount;
• применить пакет mtools, используемый для работы с файловой системой MS-DOS;
• поместить список файлов устройств, используемых при работе с гибкими дисками, и доступных узлов монтирования вместе с нужными опциями (разрешением монтирования пользователем) в файл /etc/fstab.
Поддержка работоспособности файловых систем
Даже самая надежная файловая система не обладает стопроцентной надежностью. Рано или поздно целостность файловой системы нарушается. Это может произойти от некорректного завершения работы системы (нажата кнопка Reset, перебои в электропитании) или повреждения носителя информации. Для проверки и восстановления целостности файловой системы используется команда fsck. Она при загрузке системы запускается автоматически, поэтому возможные неполадки будут обнаружены (и может быть исправлены) перед использованием файловой системы.
Полная проверка файловой системы на современных жестких дисках может занять достаточно большое время, поэтому существуют некоторые способы избежать таких проверок. В файловой системе Ext2 существует специальный флаг, расположенный в суперблоке, который используется для выявления корректности демонтирования файловой системы при последнем выключении системы. Так же можно принудительно отключить проверку файловой системы, создав файл /etc/fastboot.
Автоматическая проверка используется только для файловых систем, монтируемых во время загрузки. Для проверки других систем команда fsck должна выполняться вручную.
Если fsck находит неисправность, которую не может исправить, то для восстановления структуры файловой системы или потерянной информации могут потребоваться глубокие знания и понимание работы файловых систем и их типов.
Команда fsck должна использоваться только для демонтированных систем (за исключением корневой файловой системы, которая проверяется смонтированной в режиме read-only), т. к. при ее работе используется прямой доступ к диску, и информация о внесении каких-либо изменений в файловую систему может быть недоступна операционной системе, что, обычно, приводит к нарушению ее работы.
Так же рекомендуется использовать утилиту badblocks. При ее выполнении выводится список номеров найденных на диске поврежденных блоков. Этот список может быть использован программой fsck для внесения изменений в структуру файловой системы.
Виртуальная файловая система (VFS)
База, на которой основывается использование всего многообразия
поддерживаемых файловых систем.Принцип функционирования
Ядро системы Linux содержит в себе программный код-посредник, выполняющий функции виртуальной файловой системы. Этот код обрабатывает запросы к файлам и вызывает необходимые функции соответствующей файловой системы для выполнения операции ввода/вывода. Такой механизм работы с файлами используется для упрощения объединения и использования нескольких типов файловых систем.
Пусть программа записывает информацию в файл (или считывает ее, не суть важно). Программой вызывается библиотечная функция, отвечающая за запись (или чтение) информации в файл. Эта функция определенным образом подготавливает информацию, которая затем передается в ядро системы. Ядро, в свою очередь, вызывает соответствующую функцию виртуальной файловой системы. Эта функция определяет, с каким типом файловой системы будут производиться манипуляции, подготавливает данные и вызывает необходимую функцию соответствующей файловой системы, с которой производится операция. Такая многоуровневая структура позволяет максимально абстрагироваться от особенностей операционной системы и, в случае необходимости, безболезненно эмулировать недостающие атрибуты файла.
Структура VFS
Виртуальная файловая система содержит набор функций, которые должна поддерживать любая файловая система (создание, удаление, модификация файла, каталога и тому подобные действия). Этот интерфейс состоит из функций, которые оперируют тремя типами объектов: файловые системы, индексные дескрипторы и открытые файлы.
Виртуальная файловая система использует таблицу, в которой во время компиляции ядра сохраняется информация о всех типах поддерживаемых файловых систем. Запись в таблице содержит тип файловой системы и указатель на соответствующую функцию монтирования файловой системы. При монтировании файловой системы эта функция возвращает виртуальной файловой системе дескриптор, который используется в дальнейшем в операциях ввода/вывода.
Дескриптор смонтированной файловой системы содержит определенный набор информации: указатели на функции, служащие для выполнения операций данной файловой системы, и данные, используемые этой системой. Указатели на функции, расположенные в дескрипторе файловой системы, позволяют виртуальной файловой системе получить доступ к функциям, специфичным для данной файловой системы.
В виртуальной файловой системе применяются еще два типа дескрипторов: индексный дескриптор и дескриптор открытого файла. Каждый из них содержит информацию, связанную с обрабатываемыми файлами и набором операций, используемых файловой системой. Индексный дескриптор содержит указатели к функциям, применяемым к любому файлу, а дескриптор открытого файла содержит указатели к функциям, оперирующим только с открытыми файлами.
Файловая система Ext2
Файловая система Ext2 (The Second Extended File System, вторая расширенная файловая система) была разработана с целью устранения ошибок, обнаруженных в предыдущей системе Ext (Extended File System), и снятия некоторых ее ограничений.
Стандартные возможности Ext2
Файловая система Ext2 поддерживает стандартные типы файлов UNIX:
• файлы;
• каталоги;
• файлы устройств;
• символические ссылки.
Ext2 может управлять файловыми системами, установленными на очень больших дисковых разделах. Система поддерживает имена файлов большой длины – до 255 символов. Ext2 резервирует некоторое количество блоков для пользователя root, что позволяет системному администратору избежать нехватки объема жесткого диска при его заполнении другими пользователями.