когда файловая система /usr не смонтирована, каталог размещается в
системе root. После того, как /usr смонтирована, каталог /usr/tmp,
расположенный в файловой системе root, становится недоступным.
Если же /usr/tmp не существует в системе root, то перед
монтированием /usr создание и pабота с временными файлами будет
невозможна.
Для защиты файловой системы от записи, команда mount
запускается с опцией -r, после чего монтирование производится в
режиме read-only. После этого ядро пресекает любые попытки записи,
включая модификацию времени доступа к файлам в индексном
дескрипторе. Монтирование с защитой от записи используется при
работе с такими устройствами, как CD-ROM.
Возникает вопрос: каким же образом монтируется самая первая
файловая система (т.е. система root), так как очевидно, что она не
может быть смонтирована на какую-либо другую. Система root
монтируется во время загрузки, поэтому считается, что она всегда
установлена (если бы она не была установлена, то компьютер не смог
бы загрузиться). Название файловой системы, используемой для
монтирования root, либо встроено в ядро, либо устанавливается при
- 49 -
помощи LILO или rdev.
Обычно сначала система root монтируется в режиме read-only.
Затем запускается программа fsck(8) для проверки ее целостности и
если все в порядке, то система монтируется снова в режиме
read-write. fsck не следует запускать на смонтированной файловой
системе, так как изменения, произведенные при ее выполнении, могут
привести к повpеждению системы. Так как система root сначала
монтируется в режиме read-only, то после ее проверки все неполадки
могут быть полностью устранены при повторном монтировании.
На многих системах существуют и другие файловые системы,
которые должны быть смонтированы во время загрузки. Их список
содержится в файле /etc/fstab (см. руководство к fstab(5)).
Если файловая система для работы больше не требуется, то она
может быть демонтирована. Для этого используется команда umount(8)
с одним параметром. Это может быть как файл устройства, так и узел
монтирования. Например, для демонтирования каталогов,
рассмотренных в предыдущем примере, используются следующие
команды:
ttyp5 root ~ $ umount /dev/hda2
ttyp5 root ~ $ umount /usr
ttyp5 root ~ $
После работы с дисководом следует каждый раз применять эту
команду, так как до демонтирования системы нельзя быть уверенным,
что данные были записаны на диск, а не остались в буфере.
Для выполнения операций монтирования и демонтирования
требуется наличие прав доступа пользователя root. Однако, многие
пользователи довольно часто работают с дисководом и для решения
этой проблемы существует несколько способов:
Сообщить всем пароль пользователя root. Это самый простой, но
далеко не лучший выход. Он может использоваться на некоторых
системах, не нуждающихся в защите (обычно не подключенных к
- 50 -
какой-либо сети).
Применять какую-либо программу (например, sudo(8)),
позволяющую всем использовать команду mount. Это также не лучший
способ по причине плохой защиты, хотя его применение не
предоставляет напpямую права root каждому пользователю.
Применение пакета mtools, используемого только для работы с
файловой системой MS-DOS без выполнения операции монтирования.
Используется только в тех случаях, когда дисковод применяется для
работы с дисками системы MS-DOS.
Поместить список файлов устройств, используемых при работе с
гибкими дисками, и доступных узлов монтирования вместе с нужными
опциями в файл /etc/fstab.
Последний метод может быть реализован путем добавления в файл
/etc/fstab следующей строки:
/dev/fd0 /floppy msdos user,noauto
Сначала указывается файл устройства, затем каталог, на
который монтируется устройство, тип файловой системы и опции.
Опция noauto запрещает автоматическое монтирование при начальной
загрузке системы. Опция user позволяет любому пользователю
монтировать указанную файловую систему и, по причине защиты
системы, запрещает выполнение программ и работу с файлами
устройств, расположенных на смонтированной системе. После этого,
любой пользователь может выполнить следующую команду:
ttyp5 root ~ $ mount /floppy
ttyp5 root ~ $
Для демонтирования системы используется команда umount с
соответствующими параметрами.
4.6.6 Поддержка работоспособности файловых систем
- 51 -
Файловые системы это достаточно сложные объекты, поэтому
иногда их функционирование нарушается. Для проверки целостности и
работоспособности файловой системы используется команда fsck(8).
Наиболее часто возникающие тpудности связаны с перебоями в
питании, неполадках в оборудовании или ошибках оператора
(например, некорректное выключение системы).
Большинство систем сконфигурировано таким образом, что
команда fsck запускается автоматически при загрузке системы,
поэтому возможные неполадки будут обнаружены (и, возможно,
исправлены) перед тем, как система будет использоваться. Работа с
поврежденной файловой системой может привести к потерям данных и
другим нарушениям ее функционирования. Однако, если файловая
система довольно большая по объему, то ее проверка может занять
некоторое время, а так как неполадки случаются очень редко, то
если система была выключена корректно, пpименяются определенные
методы для избежания проверки файловой системы. Первый из них
связан с тем, что если существует файл /etc/fastboot, то никаких
проверок не производится. Второй метод заключается в том, что в
файловой системе ext2 существует специальный флаг, раположенный в
суперблоке, который используется для выявления коppектности
демонтирования системы пpи последнем выключении системы. Эта
возможность используется в программе e2fsck (версия команды fsck
для файловой системы ext2fs) для избежания излишней проверки
файловой системы, если флаг ее целостности установлен (то есть
система была коppектно демонтирована). Фунционирование метода,
используещего файл /etc/fastboot, зависит от файлов, запускаемых
при загрузке системы, в то время как применение команды e2fsck
работает в любом случае (см. руководство по e2fsck(8) для более
подробной информации).
Автоматическая проверка используется только для файловых
систем, устанавливаемых во время загрузки. Для проверки других
систем команда fsck должна выполняться отдельно.
Если fsck находит неисправность, не подлежащую
восстановлению, то могут потребоваться глубокие знания и понимание
работы файловых систем и их типов. Также могут потребоваться
- 52 -
резервные копии. Некоторую информацию по тем или иным вопросам
можно найти через телеконференции, связанные с системой Linux.
Также может потpебоваться программа debugfs(8), созданная Theodore
T.
Команда fsck должна использоваться только для демонтированных
систем (за исключением системы root, смонтированной в режиме
read-only во время загрузки), так как при ее работе используется
прямой доступ к диску и информация о внесении каких-либо изменений
в файловую систему может быть недоступна операционной системе,
что, обычно, приводит к нарушению ее работы.
Иногда следует проводить поиск плохих блоков при помощи
команды badblocks. При ее выполнении выводится список номеров
найденных плохих блоков. Этот список может быть использован
программой fsck для внесения изменений в структуру файловой
системы во избежание использования этих блоков для хранения
информации. В следующем примере показано как это сделать.
ttyp5 root ~ $ badblocks /dev/fd0H1440 1440 > bad-blocks
ttyp5 root ~ $ fsck -t ext2 -l bad-blocks /dev/fd0H1440
Parallelizing fsck version 0.5a (5-Apr-94)
e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Check reference counts.
Pass 5: Checking group summary information.
/dev/fd0H1440: ***** FILE SYSTEM WAS MODIFIED *****
/dev/fd0H1440: 11/360 files, 63/1440 blocks
ttyp5 root ~ $
4.7 Диски без файловых систем
Не все диски или разделы используются как файловые системы.
Например, раздел swap-области не содержит файловой системы. Многие
дисководы используются в режиме эмуляции ленточного накопителя,
- 53 -
поэтому tar-файл или любой другой файл записывается
непосредственно на диск без использования какой-либо файловой
системы. У такого использования есть небольшое преимущество в
свободном пространстве (при установке файловой системы некоторая
часть дискового простьранства используется для системных целей) и
совместимости с другими системами. Например, файловый формат tar
является стандартным для всех систем, в то время как файловые
системы на разных платформах различаются. Дискеты экстренной
загрузки системы Linux также могут не содержать файловой системы.
Одна из причин использования прямого доступа к диску (без
применения файловой системы) это создание копий. Например, если
диск содержит частично поврежденную файловую систему, то при
возможности следует создать его копию перед тем, как пытаться
что-либо сделать. Для этого можно использовать программу dd(1).
ttyp5 root /usr/tmp $ dd if=/dev/fd0H1440 of=floppy-image
2880+0 records in
2880+0 records out
ttyp5 root /usr/tmp $ dd if=floppy-image of=/dev/fd0H1440
2880+0 records in
2880+0 records out
ttyp5 root /usr/tmp $
Сначала команда dd выполняет точную копию дискеты в файл
floppy-image, а затем записывает копию обратно на диск
(предполагается, что перед выполнением последней команды была
вставлена другая дискета).
4.8 Распределение дискового пространства
4.8.1 Схемы разделения дисков
Довольно сложно разбить диск на несколько разделов наилучшим
образом, так как на это влияет довольно много факторов.
Обычно используется отдельный раздел или диск для файловой
системы root, которая содержит каталоги /bin, /etc, /dev, /lib,
- 54 -
/tmp и некоторые другие, требуемые для нормальной загрузки и
запуска системы. Таким образом, все, что нужно для запуска системы