раздел, содержащий персональные данные пользователей (/home)
раздел для хранения временных данных, таких как очереди печати и почты (/var)
раздел для дополнительного программного обеспечения (/opt)
Схема файловой системы
Для удобства файловая система Linux обычно представляется в виде древовидной структуры.
Рис 1. Древовидная структура файловой системы linux
В зависимости от системного администратора, операционной системы и назначения UNIX-машины, структура может меняться, и каталоги по желанию могут быть опущены или добавлены.
Дерево файловой системы начинается со слэша, обозначаемого наклоненной вперед косой чертой (/). Это каталог, содержащий все основные каталоги и файлы, также называется корневой директорией или "корнем" файловой системы. Файловая система в реальности
Каждый раздел имеет свою собственную файловую систему. Представляя все эти файловые системы вместе, мы можем говорить о древовидной структуре всей системы, но все не так просто. В файловой системе, файл представлен с помощью 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:
Рис 6. Результат выполнения команды df –T -P
-x тип-файловой-системы, --exclude-type=тип-файловой-системы - не показывать файловые системы с заданным типом-файловой-системы. Можно задать несколько типов файловых систем, если использовать несколько опций -x . По умолчанию никакие типы файловых систем не опускаются.
Команда mkfs используется для создания файловой системы Linux на некотором устройстве, обычно в разделе жёсткого диска. В качестве аргумента filesys для файловой системы может выступать или название устройства (например, /dev/hda1, /dev/sdb2) или точка монтирования (например, /, /usr, /home). Аргументом blocks указывается количество блоков, которые выделяются для использования этой файловой системой. По окончании работы mkfs возвращает 0 - в случае успеха, а 1 - при неудачной операции.
Параметры:
-V - подробно информирует происходящее, включая все выполняемые специфические команды файловой системы. Если указать этот параметр более одного раза, то это запретит реальное выполнение любых специфических команд файловой системы. Использовать этот параметр целесообразно во время тестирования.
-t fstype - указывает тип создаваемой файловой системы. Если этот параметр не указан, тогда, по умолчанию, принимается тип файловой системы ext2.
fs-options - передаёт модулю создания специфической файловой системы параметры в виде списка. Следует отметить, что нет гарантии в том, что следующие перечисленные параметры будут поддерживаться большинством модулей создания файловых систем.
-c - перед созданием файловой системы проверяет наличие сбойных блоков на устройстве.
-l filename - считывает список сбойных блоков из указанного файла filename. Для составления подобного списка, можно выполнить предварительную проверку, например, с помощью программы badblocks.
-v - подробно комментирует происходящее.
Команда Fsck - команда UNIX, которая проверяет и устраняет ошибки в файловой системе. Fsck используется для проверки файловых систем и для исправления ошибок файловой системы, если они будут обнаружены. Основное требование при проверки файловой системы: файловая система должна быть размонтирована. Запуск fsck для уже смонтированной файловой системы может привести к ее разрушению. К счастью, при запуске fsck на смонтированной файловой системе, программа выдаёт предупреждение.
Синтаксис: fsck [options] [filesystem]
filesys может быть именем устройства (например, /dev/sda7), точкой монтирования этого блочного устройства (/, /mnt/sda7 и т. д.), меткой раздела или UUID-индексом. Обычно fsck параллельно проверяет данные на разных физических дисках, чтобы сократить общее время, необходимое для полной проверки всех дисков.
Если файловых систем не указано и не указана опция -A, то fsck по порядку проверит файловые системы, указанные в /etc/fstab. Это эквивалентно опции -As.
Код, возвращаемый fsck, является суммой следующих условий:
0 — нет ошибок
1 — ошибки файловой системы исправлены
2 — необходима перезагрузка системы
4 — ошибки файловой системы не исправлены
8 — в процессе проверки произошли ошибки
16 — неверное использование команды либо синтаксическая ошибка
32 — fsck была прервана пользователем
128 — ошибка разделяемых объектов
Воспользуемся командой fsck /dev/sdb1.
Рис 7.Результат выполнения команды fsck /dev/sdb1 Файл /etc/fstab
fstab - один из конфигурационных файлов в UNIX-подобных системах, который содержит информацию о различных файловых системах и устройствах хранения информации компьютера; описывает, как диск (раздел) будет использоваться или как будет интегрирован в систему.
Полный путь к файлу — /etc/fstab.
Каждая запись имеет следующие поля (которые разделяются пробелом или табуляцией):
Поле, (файловая система) сообщает демону монтирования файловых систем mount, что монтировать, имя монтируемого устройства.
Второе поле,
(директория), определяет куда монтировать .
Поле (тип) содержит тип файловой системы монтируемого устройства. Полный список поддерживаемых систем можно просмотреть выполнив команду: man mount
Следующее поле называется (опции).
Список опций:
auto
Файловая система монтируется при загрузке автоматически или после выполнения команды 'mount -a'.
noauto
Файловая система может быть смонтирована только вручную.
exec
Позволяет вам исполнять бинарные файлы на этом разделе диска.
noexec
Бинарные файлы не выполняются.
ro
Монтирует файловую систему только для чтения
rw
Монтирует файловую систему для чтения/записи
sync
Все операции ввода/вывода должны выполняться синхронно
async
Все операции ввода/вывода должны выполняться асинхронно
user
Разрешает любому пользователю монтировать файловую систему. Применяет опции noexec, nosuid, nodev, если они не переопределены.
nouser
Только суперпользователь может монтировать файловую систему.
defaults
Использовать значения по умолчанию. (rw, suid, dev, exec, auto, nouser, async)
suid
Разрешить операции с suid и sgid битами. В основном используются, чтобы позволить пользователям выполнять бинарные файлы со временно приобретёнными привилегиями для выполнения определённой задачи.
nosuid
Запрещает операции с suid и sgid битами.
nodev
Данная опция предполагает, что на монтируемой файловой системе не будут созданы файлы устройств (/dev). Корневой каталог и целевая директория команды chroot всегда должны монтироваться с опцией dev или defaults.
noatime
Отключить возможность получения информации о последнем доступе/изменении файла.
Поле используется утилитой dump для того чтобы решить, когда делать резервную копию. Возможные значения поля — 0 и 1. Если 0, то dump игнорирует файловую систему, если 1, то dump сделает резервную копию.
Последнее поле —
. fsck проверяет число, подставленное в поле
и решает, в каком порядке проверять файловую систему. Возможные значения 0, 1 и 2. Файловые систему со значением
, равным 0, не будут проверены утилитой fsck. У корневой системы должен быть наибольший приоритет, 1, остальные файловые системы должны иметь приоритет 2.
Вместо указания имени устройства, можно указать UUID или метку тома, написав LABEL=
Лабораторная работа №
Лабораторная работа №1. Изучение основных возможностей программного продукта Яндекс. Сервер. Установка окружения, установка и настройка...