ОПЕРАЦИОННЫЕ СИСТЕМЫ Авторы курса лекций: Зверева Ольга Михайловна, ст. преподаватель каф АСУ Доросинский Леонид Григогрьевич, д-р техн. наук, профессор Екатеринбург 2007 Модуль 3 Работа с операционными системами семейства Linux Лекция 19. Установка и загрузка ОС Linux Лекция 20. Процесс init и файл /etc/inittab Лекция 21. Пользователи и группы в среде Linux Лекция 22. Процессы в системах UNIX Лекция 23. Работа с ФС ext2fs Лекция 24. Создание и монтирование файловых систем в ОС Linux Лекция 25. Различные файловые системы ОС Linux 3 Формируемые компетенции После изучения теоретического материала Модуля 3 необходимо знать и иметь представление о: отличительных особенностях интерфейса ОС семейства Linux; основных конфигурационных файлах систем Linux; этапах загрузки ОС Linux, основных файлах, задействованных в этом процессе, возможностях многовариантной загрузки; основных файловых системах, с которыми работает ОС Linux и их основных возможностях; работе и управлении процессами в системе; уметь: работать с помощью графического интерфейса и средствами командной строки; корректировать конфигурационные файлы, решая проблемы администрирований системы; владеть: навыками администрирования в ОС Linux 4 Лекция 24. Создание и монтирование файловых систем в ОС Linux Цели изучения Понять, каким образом формируется и функционирует файловая система в Linux Изучить структуру и содержимое файла /etc/fstab Подробно изучить содержимое основных структур ФС ext2fs: суперблока, группы блоков, индексного дескриптора 6 Содержание Содержимое файла /etc/fstab Структура дискового раздела в ext2fs Структура суперблока Структура группы блоков Структура индексного дескриптора 7 ФОРМАТИРОВАНИЕ ДИСКОВ В ОС Windows == СОЗДАНИЕ ФС В ОС Linux 8 Создание файловой системы ext2fs Создание в данном разделе на диске: суперблока, таблицы индексных дескрипторов совокупности блоков данных. 9 Команда mkfs Синтаксис: mkfs –t тип_ФС раздел Примеры: mkfs -t ext2 /dev/hda5 /dev/hda5 – раздел (логический), в не создается ФС ext2fs . Если вы хотите создать файловую систему на дискете, то команда примет вид: mkfs -t ext2 /dev/fd0 После выполнения команды mkfs в указанном разделе будет создана файловая система ext2fs. В новой файловой системе автоматически создается один каталог с именем lost+found. Он используется в экстренных случаях 10 Команда mount mount -t тип_ФС устройство путь Где: тип задает тип файловой системы, устройство указывает, на каком устройстве (в каком разделе) она находится, путь задает точку монтирования. Точкой монтирования называется тот каталог в уже существующем и известном системе дереве каталогов, который будет теперь служить корневым каталогом для подключаемой файловой системы. Пример: mount /dev/hdb1 /mnt/disk2 подсоединяет файловую систему первого раздела на втором жестком диске к каталогу /mnt/disk2 (этот каталог должен существовать!). 11 Файл /etc/fstab Используется в основном для того, чтобы обеспечить автоматическое монтирование файловых систем в процессе загрузки. Каждая строка этого файла содержит описание одной файловой системы и состоит из 6 полей, разделяемых пробелами (для удобочитаемости поля обычно выравнивают, но делать это не обязательно): имя устройства. точка монтирования тип файловой системы; опции монтирования уровень дампа. порядок (приоритет) 12 Описание полей файла /etc/fstab Имя устройства. В качестве имени может использоваться имя локального устройства, например, /dev/hda5. Точка монтирования (полное имя каталога, в который будет монтироваться файловая система). Опции монтирования (по умолчанию подразумевается rw — чтение, запись); Уровень дампа. Это поле используется программой dump, предназначенной для создания резервных копий. Если файловая система должна участвовать в процессе резервного копирования, то здесь должно стоять число 1, если нет— 0. Возможны и другие значения (см. руководство к программе dump); Порядок (приоритет) проверки файловых систем программой fsck. Системы с меньшими значениями этого поля проверяются раньше. Системы с одинаковыми номерами проверяются, если это возможно, параллельно. 13 Пример файла /etc/fstab 14 Правила монтирования Когда монтируется файловая система, упомянутая в файле /etc/fstab, то в команде монтирования достаточно указать только один аргумент — либо имя устройства, либо точку монтирования. Все остальные параметры команда mount возьмет из файла /etc/fstab. Обычно монтировать файловые системы может только суперпользователь, но если в поле опций монтирования файла /etc/fstab указать опцию user, то соответствующую файловую систему смогут смонтировать все пользователи. Команды mount и umount поддерживают в актуальном состоянии таблицу (или перечень) смонтированных файловых систем. Этот перечень сохраняется на диске в виде файла /etc/mtab. Этот файл можно просмотреть непосредственно, или вывести на экран командой mount без аргументов. Если вы хотите монтировать какую-то систему только для чтения из нее, то в соответствующей строке файла /etc/fstab надо либо указать опцию r (read only, по умолчанию подразумевается rw, т.е. и чтение, и запись), либо использовать команду mount с параметром -r. 15 Демонтирование Можно отключить от компьютера носитель, на котором расположена файловая система, (чаще всего это требуется делать с дискетами в дисководе, но иногда и с носителями других типов), необходимо «размонтировать» файловую систему (другими словами, «размонтировать носитель»). Эта операция выполняется с помощью команды umount (замечание для тех, кто знает английский язык: имя команды не является правильным английским словом, так что не вставляйте в него лишнюю букву «n»). В качестве аргумента команде umount надо дать либо имя устройства, либо точку монтирования. Демонтирование файловой системы возможно только тогда, когда в ней нет открытых файлов (в частности, не должно быть запущено программ, файлы которых расположены в данной системе) и в системе нет процессов, использующих эту файловую систему (т.е. демонтируемая файловая система не должна быть занятой). 16 Структура дискового раздела в ext2fs Загруз Группа Группа ... очная блоков блоков запись 1 2 Группа блоков n 17 Строение группы блоков Суперблок Супер Битовая Битовая -блок карта карта блоков индексн ых дескрип торов Таблица Область индексн блоков ых данных дескрип торов 18 Суперблок одинаков для всех групп, а все остальные — индивидуальны для каждой группы. хранится в первом блоке каждой группы блоков. является начальной точкой файловой системы. имеет размер 1024 байта и всегда располагается по смещению 1024 байта от начала файловой системы. Наличие нескольких копий суперблока объясняется чрезвычайной важностью этого элемента файловой системы. Дубликаты суперблока используются при восстановлении файловой системы после сбоев. 19 Суперблок содержит информацию о: размере файловой системы; максимальном числе файлов в разделе; объеме свободного пространства; информацию о том, где искать незанятые участки. 20 Структура суперблока Название поля Тип Комментарий s_inodes_count ULONG Число индексных дескрипторов в файловой системе s_blocks_count ULONG Число блоков в файловой системе s_r_blocks_count ULONG Число блоков, зарезервированных для суперпользователя s_free_blocks_coun ULONG t Счетчик числа свободных блоков 21 Структура суперблока Название поля Тип Комментарий s_free_inodes_count ULONG Счетчик числа свободных индексных дескрипторов s_first_data_block ULONG Первый блок, который содержит данные. В зависимости от размера блока, это поле может быть равно 0 или 1. s_log_block_size ULONG Индикатор размера логического блока: 0 = 1 Кб; 1 = 2 Кб; 2 = 4 Кб. s_blocks_per_group ULONG Число блоков в каждой группе блоков 22 Структура суперблока Название поля Тип Комментарий s_inodes_per_group ULONG Число индексных дескрипторов (inodes) в каждой группе блоков s_mtime ULONG Время, когда в последний раз была смонтирована файловая система. s_wtime ULONG Время, когда в последний раз производилась запись в файловую систему 23 Структура суперблока Название поля Тип Комментарий s_mnt_count USHORT Счетчик числа монтирований файловой системы. Если этот счетчик достигает значения, указанного в следующем поле (s_max_mnt_count), файловая система должна быть проверена (это делается при перезапуске), а счетчик обнуляется. s_max_mnt_count SHORT Число, определяющее, сколько раз может быть смонтирована файловая система 24 Структура суперблока Название поля Тип Комментарий s_magic USHORT «Магическое число» (0xEF53), указывающее, что файловая система принадлежит к типу ex2fs s_state USHORT Флаги, указывающее текущее состояние файловой системы (является ли она чистой (clean) и т.п.) s_errors USHORT Флаги, задающие процедуры обработки сообщений об ошибках (что делать, если найдены ошибки). s_pad USHORT Заполнение 25 Структура суперблока Название поля Тип Комментарий s_lastcheck ULONG Время последней проверки файловой системы s_checkinterval ULONG Максимальный период времени между проверками файловой системы s_creator_os ULONG Указание на тип ОС, в которой создана файловая система s_rev_level ULONG Версия (revision level) файловой системы. s_reserved ULONG[235] Заполнение до 1024 байт 26 Структура описания группы блоков Название поля Тип Комментарий bg_block_bitmap ULONG Адрес блока, содержащего битовую карту блоков (block bitmap) данной группы bg_inode_bitmap ULONG Адрес блока, содержащего битовую карту индексных дескрипторов (inode bitmap) данной группы bg_inode_table ULONG Адрес блока, содержащего таблицу индексных дескрипторов (inode table) данной группы bg_free_blocks_count USHORT Счетчик числа свободных блоков в данной группе 27 Структура описания группы блоков Название поля Тип Комментарий bg_free_inodes_count USHORT Число свободных индексных дескрипторов в данной группе bg_used_dirs_count USHORT Число индексных дескрипторов в данной группе, которые являются каталогами bg_pad USHORT Заполнение bg_reserved ULONG[3] Заполнение 28 Описание группы блоков Битовая карта блоков— это структура, каждый бит которой показывает, отведен ли соответствующий ему блок какому-либо файлу. Если бит равен 1, то блок занят. Эта карта служит для поиска свободных блоков в тех случаях, когда нужно выделить место под файл Битовая карта индексных дескрипторов выполняет аналогичную функцию по отношению к таблице индексных дескрипторов: показывает, какие именно дескрипторы заняты. Индексный дескриптор содержит всю информацию о файле. 29 Структура индексного дескриптора Название поля Тип Комментарий i_mode USHORT Тип и права доступа к данному файлу i_uid USHORT Идентификатор владельца файла i_size ULONG Размер файла в байтах i_atime ULONG Время последнего обращения к файлу i_ctime ULONG Время создания файла i_mtime ULONG Время последней модификации файла i_dtime ULONG Время удаления файла i_gid USHORT Идентификатор группы (GID) 30 Структура индексного дескриптора Название поля Тип Комментарий i_links_count USHORT Счетчик числа жестких ссылок i_blocks ULONG Число блоков, занимаемых файлом i_flags ULONG Флаги файла (File flags) i_reserved1 ULONG Зарезервировано для ОС i_block ULONG[15] Указатели на блоки, в которых записаны данные файла i_version ULONG Версия файла (для NFS) i_file_acl ULONG ACL (список контроля доступа) файла i_dir_acl ULONG ACL (список контроля доступа) каталога 31 Структура индексного дескриптора Название поля Тип Комментарий i_pad1 USHORT Заполнение i_reserved2 ULONG[2] Заполнение 32 Система адресации данных В ext2fs система адресации реализуется полем i_block индексного дескриптора файла. Поле i_block в индексном дескрипторе файла представляет собой массив из 15 адресов блоков. Первые 12 адресов в этом массиве (EXT2_NDIR_BLOCKS [12]) представляют собой прямые ссылки (адреса) на номера блоков, в которых хранятся данные из файла. Следующий адрес в этом массиве (EXT2_IND_BLOCK) является косвенной ссылкой, т. е. адресом блока, в котором хранится список адресов следующих блоков с данными из этого файла. Следующий адрес в поле i_block индексного дескриптора указывает на блок двойной косвенной адресации. Этот блок содержит список адресов блоков, которые в свою очередь содержат списки адресов следующих блоков данных того файла, который задается данным индексным дескриптором. Следующий адрес в поле i_block индексного дескриптора указывает на блок двойной косвенной адресации (double indirect block). Этот блок содержит список адресов блоков, которые в свою очередь содержат списки адресов следующих блоков данных того файла, который задается данным индексным дескриптором. 33 Информационное обеспечение лекции Литература по теме: 1. 2. 3. 4. 5. Олифер В. Г. Сетевые операционные системы : учебник / В. Г. Олифер, Н. А. Олифер. – СПб. : Питер, 2001. – 544 с. Гордеев А. В. Операционные систем: Учебник для вузов. 2-е изд./ А. В. Гордеев. – Спб.: Питер. 2005. – 415 с. Костромин В. Справочник для пользователя / В. Костромин. – СПб. : БХВ–Петербург, 2002. – 460 с. Петцке К. LINUX. От понимания к применению : пер. с нем. / К. Петцке. – М. : ДМК, 2000. – 576 с. Садов О. Red Hat Enterprise Linux/Scientific Linux. Полное руководство пользователя / О. Садов. - СПб. : БХВ–Петербург, 2006. – 480 с. Электронный адрес: zvereva@rtf.ustu.ru 34 Операционные системы Курс лекций является частью учебно-методического комплекса «Операционные системы», авторский коллектив: Зверева Ольга Михайловна, старший преподаватель кафедры «Автоматизированные системы управления» Доросинский Леонид Григорьевич, д-р техн. наук, профессор, зав. кафедрой «Автоматизированные системы управления Учебно-методический комплекс подготовлен на кафедре АСУ РИ-РТФ ГОУ ВПО УГТУ-УПИ Никакая часть данной презентации не может быть воспроизведена в какой бы то ни было форме без письменного разрешения авторов 35