Файловая иерархия и монтирование
И, наконец, файловая иерархия. Сколько бы ни было в системе дисковых разделов и файловых систем на них, для пользователя они предстают в качестве логически единой иерархически устроенной файловой системы древовидного облика (правда, дерево это обычно выглядит посталенным с ног на голову). В основании ее лежит корень (root, символически обозначаемый как /). Обязательными же ветвями являются каталоги - /bin и /sbin (место помещения исполняемых файлов общесистемных программ), /etc (каталог для конфигурационных файлов), /dev (каталог для файлов устройств, о которых только что шел разговор), /var и /tmp (каталоги для всякого рода регулярно изменяемых данных) /usr - здесь имеют место быть большинство пользовательских программ со всем сопровождающим их инвентарем, типа библиотек и документации), /home - место пользовательских каталогов для данных.
Перечисленные ветви вовсе не обязаны быть единой частью файловой системы в физическом смысле. Напротив, каталог /home почти всегда лежит на отдельном дисковом разделе, отдельные физически файловые системы часто составляют и такие ветви, как /usr, /var и /tmp. Возможно и много более дробное разбиение файлового древа, о чем речь пойдет в следующем разделе.
Процесс включения отдельных ветвей файловой системы в единую файловую иерархию называется монтированием. Оно выполняется с помощью специальной команды - mount, требующей указания имени файла устройства, соответствующего разделу, несущему монтируемую файловую систему, имени каталога, к которому она должна подключаться (так называемой точки монтирования) и, в некоторых случаях, опции, определяющей тип файловой системы. Например, команда
$ mount -t vfat /dev/hda1 /mnt
включит в файловую иерархию Linux, в каталог /mnt, раздел Windows с файловой системой VFAT или FAT32.
Однако на практике инсталлятор и при создании дискового раздела и определения несомой им файловой системы запрашивает и указание на точку монтирования, например, /, /home и так далее. И в дальнейшем эти файловые системы монтируются автоматически, в ходе загрузки системы, в соответствие с описанием, содержащемся в специальном файле /etc/fstab (который тоже создается инсталлятором при первичной установке).
Кроме упомянутой выше опции -t, определяющей тип файловой системы, команда mount имеет еще массу опций (см. man mount). И "дюже умные" инсталляторы подчас предлагают, кроме создания раздела, файловой системы, определения точки монтирования, еще и включить те или иные из них (о чем поговорим подробнее в следующем разделе).
Как правило, инсталлятор распознает и "чуждые" файловые системы, такие. как FAT любого рода и, в некоторых случаях, NTFS, и также обеспечивает (по умолчанию или после запроса и подтверждения пользователя) их автоматическое монтирование. Правда, доступ к разделам с файловой системой NTFS возможен обычно только в режиме чтения: запись на них требует специального инструментария и считается не вполне безопасной.
Файловые системы, расположенные на сменных носителях (CD, DVD, флэш-драйвы, внешние винчестеры с интерфейсом USB или FireWire, и так далее - вплоть до встроенных и сменных накопителей цифровых камер), при старте системы не монтируются. Этот выполняется по мере надобности - с помощью упомянутой выше команды mount. Однако инсталляторы, как правило, в силах установить наличие, по крайней мере, CD/DVD-приводов (еще бы, ведь, скорее всего, дистрибутив с них и устанавливается, и создать в /etc/fstab запись, обеспечивающую монтирование по упрощенной форме, например
$ mount /mnt/cdrom
для монтирования компакта. Для прочих сменных носителей, не монтируемых при старте, но используемых регулярно, соответствующие записи в файл /etc/fstab часто приходится создавать вручную (раньше это требовалось всегда, но ныне есть и другие механизмы - см. далее). Для каждого сменного устройства это делается отдельной строкой, содержащей следующие поля, разделенные пробелами (в любом количестве) или символами табуляции:
После этого процедура монтирования сведется к команде mount с одним аргументом - либо точки монтирования, либо имени файла устройства, и необходимости в каких-либо опциях также не возникнет.
Перед выключением машины (или перезагрузкой системы) все задействованные файловые системы должны быть в обязательном порядке размонтированы, что проделывается автоматически при корректном завершении сеанса - командами halt или reboot. Однако если в течении рабочего сеанса возникнет потребность, например, сменить компакт в CD-приводе, или извлечь флэш-драйв - размонтирование нужно выполнить явным образом, командой umount. Которая в любом случае потребует одного аргумента, точки монтирования или имени файла устройства.
Во многих современных дистрибутивах к редактированию файла /etc/fstab, ручному монтированию и размонтированию устройств приходится обращаться только в исключительных случаях. Корректным монтированием файловых систем при старте системы, как уже говорилось, озаботится программа установки. Что же до сменных носителей - их монтирование обеспечивается механизмом HAL (Hardware Abstration Layer), в результате чего сменные носители монтируются прозрачно для пользователя - сразу же при подключении соответствующего устройства или вставки компакт-диска в привод. Механизм HAL не использует описаний из файла /etc/fstab, и потому никаких дополнений в него вносить не нужно (более того, они могут лишь помешать).
Правда, отключение сменных носителей при использовании механизма HAL потребует от пользователя некоторых манипуляций. А именно - щелчка правой клавишей на пиктограмме рабочего стола, соответствующего CD/DVD или флэш-драйву (USB-винчестеру), и выбора из появившегося контекстного меню - в первом случае пунктов Отмонтировать и затем Извлечь, во втором - пункта Безопасно извлечь.