Файловая система в реальности
Каждый раздел имеет свою собственную файловую систему. Представляя все эти файловые системы вместе, мы можем говорить о древовидной структуре всей системы, но все не так просто. В файловой системе, файл представлен с помощью inode (индексного дескриптора), своего рода серийного номера, содержащего информацию о данных этого файла: кому принадлежит этот файл, и где он находится на жестком диске.
Каждый раздел имеет свой собственный набор индексных дескрипторов; на всей системе с несколькими разделами могут существовать файлы с одним и тем же номером индексного дескриптора.
Каждый inode описывает структуру данных на жестком диске, хранит информацию о свойствах файла, в том числе физическое местоположение его данных. Когда жесткий диск назначается для хранения данных, в разделе создается определенное количество индексных дескрипторов. Это число будет максимальным количеством файлов всех типов, которые могут существовать в одно и то же время на данном разделе.
Во время создания нового файла, он получает свободный inode. В этом индексном дескрипторе содержится следующая информация:
- Владельца и группа-владелец файла. Тип файла (обычный, каталог, ...) Разрешения на файл Дата и время создания, последнего открытия и изменения. Дата и время, когда эта информация была изменена в индексном дескрипторе. Количество ссылок на этот файл. Размер файла Адрес, определяющий фактическое расположение данных файла.
Виртуальная файловая система /proc
В ОС Linux виртуальная файловая система /proc содержит файлы с текущей информацией о процессах и системе в целом. Файловая система создается в оперативной памяти компьютера в процессе загрузки и используется в качестве интерфейса обмена данными со структурами ядра. Использование файлов /proc/* в большинстве случаев позволяет избавиться от необходимости чтения и записи в устройство /dev/kmem. Большинство расположенных в структуре /proc файлов доступны пользователям только для чтения, а для записи требуют полномочий root.
Для поддержки виртуальной файловой системы /proc при компиляции ядра должна быть включена опция /proc file system support.
Файловая система /proc содержит множество каталогов с численными именами – эти каталоги создаются для каждого запущенного в системе процесса. Имя каталога определяется идентификатором (PID) соответствующего процесса.
Использование общепринятых имен основных файлов и структуры каталогов существенно облегчает работу в операционной системе, ее администрирование и повышает переносимость. .
Команда mount
Данная команда монтирует файловую систему.
Монтирование — это подключение в один из каталогов целой файловой системы, находящейся где-то на другом устройстве. Для монтирования необходим пустой каталог — он называется точкой монтирования. Точкой монтирования может служить любой каталог.
Операция монтирования состоит из нескольких этапов:
Определение типа монтируемой системы Проверка целостности монтируемой системы Считывание системных структур данных и инициализация соответствующего модуля файлового менеджера (драйвера файловой системы) Установка флага, что система смонтирована. При корректном размонтировании этот флаг сбрасывается, если при загрузке система определяет, что он не сброшен, значит работа завершена некорректно и возможно ФС нуждается в починке. Включение новой файловой системы в общее пространство имен.Синтаксис команды mount:
mount [-lhV]
mount - a [-fFnrsvw] [-t тип_ФС] [-O список_параметров]
mount [-fnrsvw] [-o параметры [,...]] устройство | каталог
mount [-fnrsvw] [-t тип_ФС] [-o параметры] устройство каталог
Параметры
- -V - выводит информацию о версии программы. -h - выводит подсказку. -v - подробно информирует о выполняемых действиях. -a - монтирует все файловые системы указанного типа, описания которых содержатся в файле /etc/fstab. -F - позволяет подключать файловые системы на различных устройствах или на серверах NFS параллельно. Это благоприятно сказывается на производительности; также параллельно обслуживаются тайм-ауты NFS. -f - пытается делать все возможное для выполнения системного вызова; если это невозможно, тогда создаётся видимость успешного выполнения монтирования файловой системы. Этот параметр полезен в сочетании с - v, чтобы отследить попытки, предпринимаемые командой mount. -l - к выводу информации добавляет описания файловых систем ext2, ext3 и XFS. Для работы этого параметра, монтирование должно разрешать операцию чтения дискового устройства (т. е. активизирован suid root). -n - монтирует без записи в /etc/mtab. Необходимость в этом возникает когда, например, /etc находится на файловой системе с режимом доступа "только для чтения". -s - избегая аварийного завершения, допускает даже неподходящие параметры монтирования. При этом параметры, не поддерживаемые файловой системой, будут проигнорированы. -r - монтирует файловую систему в режиме "только для чтения".
Операция монтирования предполагает присоединение дерева каталогов, находящегося на устройстве памяти, к указанному пользователем каталогу. Лишь после этого можно перейти в присоединенный каталог и обращаться к его файлам.
Выполнение:
1. Подключим флеш накопитель к компьютеру.
2. При подключении накопителя был создан файл устройства /dev/sdd1. Смонтируем его в папку /home/oleg/flashusb. Для этого пропишем mount /dev/sdd1 /home/oleg/flashusb, предварительно создав каталог flashusb. Чтобы проверить результат введем ls /home/oleg/flashusb.

Рис 2. Результат монтирования
Теперь флэш накопитель доступен для работы через указанную директорию. Это демонстрируется выводом файлов с накопителя с помощью команды ls.
Команда umount
Команда umount отключает файловые системы от иерархического дерева каталогов. Файловая система указывается или по имени каталога, к которому она была подключена, или по имени специального устройства, на котором она размещена.
Следует отметить, что файловая система не может быть размонтирована, если в настоящий момент она "занята" или используется, а именно: на ней есть открытые файлы, некоторые процессы имеют там рабочие каталоги или на ней размещён файл подкачки (swap).
Синтаксис:
umount [-hV]
umount - a [-dflnrv] [-t тип_vfs] [-O параметры]
umount [-dflnrv] каталог | устройство [...]
Параметры:
- -V - вывести информацию о версии программы и завершить работу. -h - вывести справку о программе, её параметрах и завершить работу. -v - подробно комментирует происходящее. -n - размонтировать без регистрации событий в файле /etc/mtab. -r - если размонтирование выполнить не удалось, пытается перемонтировать файловую системы в режим "только для чтения". -d - если размонтируемое устройство являлось петлевым (loop), тогда освобождает его. -t тип_vfs - требует выполнение действий лишь для файловых систем указанного типа тип_vfs. Вообще тип_vfs является списком файловых систем, разделённых запятыми. Этот список может начинаться с префикса no для указания файловых систем, на которые не распространяются никакие действия. -O параметры - действия будут выполнены лишь для тех файловых систем, для которых в /etc/fstab указаны заданные параметры. Кортеж из нескольких параметров подряд может быть указан через запятую. Этот список может содержать префикс no, что предпишет не выполнять действий над файловой системой, имеющую в /etc/fstab заданный параметр.
Выполнение: размонтирование смонтированной ранее файловой системы на устройстве /dev/sdd1. Для этого пропишем umounts /dev/sdd1 /home/oleg/flashusb и проверим результат командой ls /home/oleg/flashusb.

Рис 3. Результат размонтирования
После данных операций видно, что каталог flashusb является пустым.
Команда df
Команда df выдаёт отчёт о доступном и использованном дисковом пространстве на файловых системах. При запуске без аргументов df выдаёт отчёт по доступному и использованному пространству для всех смонтированных файловых систем.

Рис 3. Результат команды df без аргументов
Синтаксис:
df [опции] [файл...]
Опции:
- -a, --all - включает в список файловых систем те, которые имеют размер в 0 блоков, и которые по умолчанию опускаются. Такие файловые системы обычно являются псевдо-файловыми системами специального назначения. Кроме того, только если задана эта опция, будут показаны файловые системы типа "ignore" или "auto", которые поддерживаются некоторыми операционными системами. -B, --block-size=size - выдаёт размеры в блоках размера байт. -h, --human-readable - добавляет к каждому размеру букву, например M для мегабайт
Выполнения команды df - h:

Рис 4. Результат выполнения команды df - h
- -H, --si - делает то же, что и опция - h, но использует официальные SI единицы измерения (где для расчётов используется 1000 вместо 1024 и, таким образом, M~-- это 1000000, а не 1048576). -i, --inodes - вместо информации о блоках выдаётся информация об использовании inode'ов в файловой системе. Inode содержит информацию о файле: владелец, права доступа, временные штампы и местоположение на диске.
Выполнение команды df –i:

Рис 5. Результат выполнения команды df –i
- -k, --kilobytes - при выводе устанавливает размер блока в 1024 байт. -l, --local - выводит только данные о локальных файловых системах. -m, --megabytes - при выводе устанавливает размер блока в двоичный мегабайт (1048576 байт). -P, --portability - использовать формат вывода по стандарту POSIX. Он такой же, как формат по умолчанию, только информация о каждой файловой системе всегда выводится на одной строке; имя смонтированного устройства никогда не помещается на отдельную строку. Это приводит к тому, что если длина имени смонтированного устройства больше, чем 20 символов, то колонки не выравниваются. -t тип-файловой-системы, --type=тип-файловой-системы - показывать только файловые системы с указанным типом-файловой-системы. Можно задать несколько типов файловых систем, если использовать несколько опций - t. По умолчанию никакие типы файловых системы не опускаются. -T, --print-type – печатать тип файловой системы. Тип берётся от операционной системы (и определяется системно-зависимым способом, например посредством чтения файла /etc/mtab).
Выполнение команды df –T –P:
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 |


