Операционные системы - статьи

Промо стойки акция. Промо стойки лазер.          

Монтирование


Однако если ядро ОС учитывает не только состояние файловой системы на диске, но и состояние программ, работающих с файлами, то как быть со сменными носителями? Ведь если просто вынуть из дисковода дискету с файлом, уже не имеющим имени, но еще не удаленным, файловая система будет разрушена; степень повреждения зависит от разных обстоятельств и варьирует от небольших неполадок до полного превращения в руины. Здесь как нельзя лучше подтверждается мысль о том, что наши недостатки - это продолжение наших достоинств.

Чтобы избежать подобных эффектов, любую файловую систему необходимо перед началом работы с ней в явной форме подключить к ОС (смонтировать - mount), а по окончании отключить (размонтировать - unmount). Для этой цели служат команды mount и umount (без n, хотя соответствующее действие называется unmount). Команда mount имеет множество опций (см. врезку "Монтирование: подробности для любознательных"), но обязательных аргументов у ее стандартного варианта два: имя файла блочного устройства и имя каталога. В результате выполнения этой команды файловая система, расположенная на указанном устройстве, подключается к системе таким образом, что ее содержимое заменяет собой содержимое заданного каталога (поэтому для монтирования обычно используют пустой каталог). Команда umount выполняет обратную операцию - отсоединяет файловую систему, после чего накопитель можно извлечь и положить на полку (на самом деле проблемы возникают почти исключительно с дискетами: CD-ROM, магнитно-оптический диск или Zip-диск, который забыли размонтировать, просто не удастся вытащить без помощи скрепки - он блокируется).


Монтирование осуществляется командой mount, требующей двух аргументов - имени файла монтируемого устройства (дискового раздела) и точки монтирования. Кроме того, желательно явным образом (с помощью опции -t) задать тип монтируемой файловой системы (особенно если это не ext2fs):

$ mount -t ext3fs /dev/hd?# /mount_point

Каталог, в который монтируется файловая система, должен быть создан заблаговременно. И желательно пустой: монтирование в каталог с файлами в современных Linux фатальных последствий не повлечет (раньше это могло привести к краху системы), но все его содержимое станет недоступным вплоть до размонтирования файловой системы. Очевидно также, что первым должен монтироваться корневой каталог (/), поскольку и /boot, и /home, и /usr, и прочие представляют собой ветви на его древе. Собственно, свои имена они и обретут только после монтирования в корневую файловую систему.

Корневая файловая система отличается от всех прочих тем, что в ней задействуется загрузочный блок. Конечно, он существует и в любой другой из файловых систем, так как возникает при их создании, но не используется за ненадобностью. И здесь возникнет вопрос, как монтировать раздел, зарезервированный под корневой, к уже существующему корневому разделу. Или, хуже того, к корневому разделу системы, которая еще не инсталлирована. Ответ таков - установщик Linux работает под управлением этой же ОС, которая имеет многие атрибуты полноценной системы, в том числе и корневую файловую систему. Другое дело, что базируется она не на каком-либо дисковом устройстве, а находится в оперативной памяти и раздел, которому суждено стать корневым, монтируется в некий каталог этой виртуальной корневой файловой системы. Уже говорилось, что существуют различные опции монтирования, способствующие повышению производительности при файловых операциях. К ним относится опция -o noatime, которая отключает обновление атрибута времени последнего доступа для обычных файлов и каталогов, соответственно. Монтирование с этой опцией целесообразно для всех типов файловых систем и всех разделов. Другие опции специфичны для файловых систем определенного типа. Так, уже упоминались три режима журналирования в ext3fs, существенно различающиеся по быстродействию и надежности. Так вот, режимы эти задаются именно при монтировании файловой системы с помощью той же опции -o, принимающей значения data=journal, data=ordered и data=writeback для режимов полного журналирования, последовательного и обратной записи, соответственно. Наконец, так же опция -o будет отвечать и за отключение режима тайлинга в файловой системе ReiserFS, для чего ей нужно придать значение notail.

За отсутствием файловой системы swap-раздел в монтировании не нуждается, но должен быть активизирован, для чего служит команда swapon.

Алексей Федорчук(fedorchuk@geo.tv-sign.ru) - сотрудник Геологического института РАН (Москва)



Содержание раздела