Четверг, 25.04.2024, 03:46
Приветствую Вас Гость

SYSTEM ADMINISTRATOR

Меню
Разделы
Друзья
Реклама
Наша кнопка
Опрос
Нужен ли нам форум?
Всего ответов: 64
Главная » 2012 » Апрель » 2 » *nix монтирование и демонтирование файловой системы
14:50
*nix монтирование и демонтирование файловой системы

Файловое дерево формируется из отдельных частей, называемых файловыми системами, каждая из которых содержит корневой каталог и список его подкаталогов и файлов. Термин "файловая система" по сути имеет два значения. С одной стороны, это составная часть файлового дерева, а с другой — все файловое дерево и алгоритмы, с помощью которых Linux управляет им. Как правило, значение термина становится ясным из контекста.

Большинство файловых систем является разделами диска, но, как уже было сказано, файловая система может принять облик всего, что подчиняется определенным функциональным правилам: сетевых файловых систем, компонентов ядра, резидентных дисков и т.д. В Linux есть даже оригинальная файловая система, позволяющая монтировать отдельные файлы, как если бы они были физическими устройствами.

Как Вы знаете, файловое дерево может иметь произвольную глубину, однако каждый компонент имени файла должен состоять не более чем из 255 символов, а в отдельном имени не должно быть более 4095 символов. Сама дисковая подсистема не налагает никаких ограничений на общую длину имени файла. Но системные вызовы, получающие доступ к файловой системе, не позволяют своим строковым аргументам иметь длину более чем 4095 символов. Чтобы получить доступ к файлу, полное имя которого превышает эти ограничения, необходимо с помощью команды cd перейти в промежуточный каталог, а затем воспользоваться сокращенным именем.

На имена файлов и каталогов не налагаются никакие ограничения, за исключением того, что длина имени не должна превышать заданный предел и в имя нельзя включать символы косой черты и нулевые символы. В частности, допускаются имена, содержащие пробелы... якобы. На самом деле по давней традиции аргументы командной строки в UNIX разделяются пробелами, поэтому старые программы интерпретируют пробелы в именах файлов как признак конца одного имени и начала другого.

В интерпретаторе команд и его сценариях имена с пробелами необходимо просто заключать в двойные кавычки.

Учитывая количество всевозможных файловых систем, существующих на сегодняшний день, нельзя полагать, что имена файлов с пробелами никогда не встретятся. Даже если вы не обмениваетесь файлами с пользователями Macintosh или Windows, все равно есть много пользователей, привыкших давать своим файлам сложные имена. Об этом следует помнить при написании любых программ, взаимодействующих с файловой системой.

Файловые системы присоединяются к файловому дереву с помощью команды mount. Эта команда связывает каталог существующего файлового дерева, называемый точкой монтирования, с корневым каталогом новой файловой системы. На время монтирования доступ к прежнему содержимому точки монтирования становится невозможным. Впрочем, в большинстве случаев точка монтирования — это пустой каталог.

При просмотре файловой системы бывает трудно различить смонтированное пустое устройство и точку монтировки, в которую устройство не было смонтировано. Чтобы упростить этот процесс, можно создать файл под названием not_mounted в каждом каталоге, который может служить точкой монтирования. При просмотре каталога будет сразу же видно, существует или нет устройство, смонтированное в даной точке монтирования.

Вспомним действие команды mount. Создадим пустой каталог, в котором разместим файл с названием "not_mounted", а затем попробуем смонтировать туда один из Windows-разделов:

Для получения перечня смонтированных систем можно также воспользоваться командой df:

Данная команда в первом столбце выводит имя файловой системы, во втором столбце - количество блоков размером 1Кбайт, которое занимает данная система (фактически - это размер в килобайтах), третье поле - количество используемых блоков указанного размера (то есть - занятое место на жестком диске), четвертое поле определяет количество свободных блоков (незанятое место), пятое поле указывает процент использования данной файловой системы, последнее поле - определяет каталог, куда она была смонтирована.

Также можно воспользоваться командой mount:

Будучи вызванной без каких-либо аргументов, данная команда приводит список всех смонтированных файловых систем с указанием соответственно имени файловой системы, точки монтирования, типа файловой системы и параметров монтирования. Вывод команды полностью повторяет содержимое файла /etc/mtab.

Файловые системы демонтируются командой umount. "Занятую" файловую систему отмонтировать невозможно. В ней не должно быть ни открытых файлов, ни текущих каталогов ни выполняющихся процессов. Если демонтируемая файловая система содержит исполняемые программы, они не должны быть запущены.

Когда ядро сообщает, что демонтируемая файловая система занята, запустите команду fuser -mv точка_монтирования, которая выводит идентификаторы всех процессов, обращающихся к файлам или каталогам указанной файловой системы:

Буквенные коды в колонке ACCESS указывают на причину, по которой демонтирование не может быть выполнено:

КОД

ПРИЧИНА

f

Процесс открыт файл для чтения или записи

c

В файловой системе находится текущий каталог процесса

e

Процесс в данные момент выполняет программу

r

В файловой системе находится корневой каталог процесса

m

Процесс отображает в памяти файл или совместно используемую библиотеку

Категория: *nix | Просмотров: 4874 | Добавил: AinCross | Теги: *Nix, Файловая система, монтирование и демонтирование | Рейтинг: 3.0/5
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Регистрация
Поиск
Пользовательский поиск
Реклама
Архив записей
Календарь
«  Апрель 2012  »
ПнВтСрЧтПтСбВс
      1
2345678
9101112131415
16171819202122
23242526272829
30
Считалки
Яндекс.Метрика

Онлайн всего: 1
Гостей: 1
Пользователей: 0