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