Ктитров Администрирование ОЦ УНИХ 2007
.pdfПрактическое занятие 4
ЭТАПЫ ЗАГРУЗКИ СИСТЕМЫ. УПРАВЛЕНИЕ УРОВНЯМИ ИСПОЛНЕНИЯ
4.1. Этапы загрузки
Процесс загрузки операционной системы можно разбить на четыре основных этапа – этап аппаратной загрузки, программная загрузка, загрузка ядра и этап процесса init (табл. 4.1 и 4.2).
|
Таблица 4.1 |
Этап загрузки |
|
системы SPARС |
Описание |
Boot PROM |
1. PROM выводит идентификационную инфор- |
|
мацию о системе и проводит базовую диагно- |
|
стику оборудования |
|
2. PROM загружает первичную программу за- |
|
грузки bootblk, которая находится в файло- |
|
вой системе ufs устройства, с которого произ- |
|
водится загрузка |
Boot |
3. bootblk находит и запускает ufsboot – |
Programs |
вторичную программу загрузки |
|
4. ufsboot загружает ядро операционной си- |
|
стемы |
Kernel |
5. Ядро инициализируется и подгружает необ- |
Initializa- |
ходимые модули. После загрузки модулей для |
tion |
доступа к ufs, оно выгружает ufsboot |
|
6. Ядро запускает процесс init. |
|
|
Init |
7. /sbin/init запускает процессы, указан- |
|
ные в etc/inittab и скрипты уровней вы- |
|
полнения |
31
Для архитектуры x86 количество этапов загрузки остается прежним, но меняется их содержание.
|
Таблица 4.2 |
Этап загрузки |
Описание |
системы х86 |
|
BIOS |
1. BIOS проводит серию тестов для диагностики |
|
оборудования |
|
2. BIOS пытается прочитать первый сектор |
|
устройства, с которого производится загрузка и |
|
запускает программу mboot. mboot содержит |
|
информацию о разметке диска |
Boot Pro- |
3. mboot запускает pboot |
grams |
4. pboot запускает основную программу за- |
|
грузки bootblk, которая находится в файловой |
|
системе ufs устройства, с которого производит- |
|
ся загрузка |
|
5. Если в системе присутствует более чем один |
|
загрузочный раздел, то bootblk выводит меню |
|
для выбора раздела |
|
6. bootblk находит и запускает boot/bin или |
|
ufsboot – вторичную программу загрузки. |
|
7. boot/bin или ufsboot загружает ядро опера- |
|
ционной системы |
Kernel Ini- |
8. Ядро инициализируется и подгружает необхо- |
tialization |
димые модули. После загрузки модулей для до- |
|
ступа к ufs, оно выгружает ufsboot |
|
9. Ядро запускает процесс init. |
Init |
10. /sbin/init запускает процессы, указан- |
|
ные в /etc/inittab и скрипты уровней вы- |
|
полнения |
|
|
32
4.2. Уровни выполнения
ОС Unix может работать в нескольких режимах (на нескольких уровнях). В ОС Solaris предусмотрены следующие основные уровни выполнения (см.табл. 4.3)
|
|
Таблица 4.3 |
|
Обозна- |
Уровень |
Описание |
|
чение |
|||
|
|
||
0 |
PROM / BIOS |
Перевод системы в режим PROM/BIOS |
|
s |
Однопользо- |
Однопользовательский режим, файловые |
|
системы не монтируются), доступна |
|||
вательский |
|||
|
только физическая системная консоль |
||
|
|
||
|
|
Аналогичен s, но права системной консо- |
SОднопользоли передаются терминалу, с которого вывательский полнен вход в систему (виртуальная си-
стемная консоль)
1ОднопользоОднопользовательский режим, файловые вательский системы монтируются
2 |
Многопользо- |
Многопользователький режим, пользова- |
тели могут входить в систему, не запус- |
||
|
вательский |
кается демон NFS |
|
|
МногопользоМногопользователький режим, пользова-
3вательский с тели могут входить в систему, запускает-
NFS |
ся демон NFS |
4Не используМожет применяться администратором по ется своему усмотрению
5 |
Выключение |
Останов системы и выключение питания |
|
питания |
|||
|
|
||
6 |
Перезагрузка |
Перезагрузка и переход на уровень вы- |
|
полнения по умолчанию |
|||
|
|
33
Определение текущего уровня выполнения
Текущий уровень выполнения можно определить с помощью команды who -r:
run-level 3 Sep 1 14:45 |
3 0 S |
| |
| |
| |
предыдущий уровень |
текущий уровень выполнения |
|
Протокол загрузки системы отображает команда dmesg, используемые драйверы – prtconf.
4.3.Перевод системы на некоторый уровень выполнения. Файл /etc/inittab
Команды, используемые для изменения уровня выполнения, приведены в табл. 4.4.
|
Таблица 4.4 |
|
init уровень |
Без аргументов команда init переводит систе- |
|
telinit уро- |
му на уровень по умолчанию. |
|
вень |
telinit передает команду init |
|
shutdown |
Переводит систему на указанный уровень (по |
|
умолчанию s), посылает предупреждения поль- |
||
|
зователям |
|
halt |
Перевод системы на уровень 0, при этом rc0 не |
|
используется |
||
|
||
poweroff |
Останов системы с выключением питания. |
|
-n - не делать sync |
||
|
||
reboot |
Перезагрузка до уровня выполнения по умолча- |
|
нию |
||
|
Перевод системы на определенный уровень выполнения осуществляет процесс init. Процесс init использует конфигурационный файл /etc/inittab для определения того, какие действия
34
он должен выполнить для перевода системы на определенный уровень.
Строки файла /etc/inittab имеют следующий формат:
id:rstate:action:process
| |
| |
| |
| |
| |
| |
| |
полный путь к выполняемому файлу |
|| действие с полем process
| список уровней выполнения уникальный идентификатор записи
Уровни выполнения в поле rstate перечисляются без разделителей. Ключевые слова поля action:
initdefault – уровень выполнения по умолчанию указан в поле rstate,
respawn – запустить или возобновить процесс, если он не выполняется,
powerfail– действия при сбое питания, powerwait– при сбое питания запустить и ожидать завершения,
sysinit – инициализация системы, wait – ожидать завершения процесса, once – выполнить,
boot – выполняется на этапе загрузки, bootwait – то же, но ожидает завершение процесса,
off – если процесс выполняется – остановить.
Пример
1:2345:respawn:/sbin/mingetty tty1
4.4.Автоматический запуск служб (сервисов)
Вчисле процессов, указанных в файле inittab, есть rcскрипты, выполняющие скрипты из каталога /etc/init.d, ссылки на которые размещены в каталогах /etc/rcX.d, где X – уровень, выполнения, на который переходит система. При повышении уровня запускаются скрипты по ссылке из каталога
35
целевого уровня S* с аргументом start, при понижении – К* с аргументом stop.
Для автоматизации запуска и остановки какой-либо службы необходимо выполнить следующую последовательность действий: - в каталоге /etc/init.d создать скрипт, который принимает в
качестве параметров start/stop и выполняет соответствующие действия для сервиса;
-создать ссылку на созданный скрипт из каталога, соответствующего уровню, на котором следует запускать сервис; при этом ссылка должна начинаться с заглавной буквы S;
-создать ссылку на созданный скрипт из каталога, соответствующего уровню, на котором следует остановить сервис; при этом ссылка должна начинаться с заглавной буквы К.
Обычно после соответствующей начальной буквы указывают две цифры, что позволяет упорядочить последовательность запуска скриптов. Часть имени после цифр поясняет назначение скрипта. Если необходимо временно отключить автоматический запуск процесса – можно переименовать ссылку, заменив заглавную букву на строчную.
Упражнения
1.Переведите систему на уровень выполнения S.
2.Загрузите её на уровень выполнения по умолчанию.
3.Определите текущий уровень выполнения системы. Перейдите на нижележащий уровень. Вернитесь обратно.
4.Остановите систему максимально быстро.
5.Остановите систему с отсрочкой на 3 минуты и выдачей предупредительного сообщения.
6.Перезагрузите систему, используя три разные команды.
7.Выведите на экран протокол начальной загрузки системы. Какие устройства были опознаны и сконфигурированы системой?
8.Создайте скрипт, который будет при запуске с параметром start выводить на консоль сообщение ”Start service”, а
при запуске с параметром stop – сообщение ”Stop service”.
36
Пропишите ссылку на созданный скрипт для запуска сервиса в самом начале 2-го уровня, а для автоматического останова – в самом конце уровня s.
9.Напишите скрипты, выдающие соответствующее сообщение при переходе с уровня на уровень. Проверьте последовательность вызова при переходе с повышением уровня и понижением, при переходе на смежные и несмежные уровни, начальной загрузке и останове. Используйте механизм rc-каталогов.
10.Измените уровень выполнения по умолчанию. Убедитесь, что изменения вступили в силу.
11.Запустите «неубиваемую» программу, работающую на заданных уровнях.
12.Отмените графический вход в систему. Проверьте путем перезагрузки системы. Восстановите графический вход.
13.Создайте стартовый скрипт, имя которого не содержит цифр. Выполняется ли он, если да – каким по счету?
14.Запустите программу так, чтобы она выполнялась только на уровне 2. Перейдите на уровень 3 с нулевого. Перейдите на уровень 2, затем на уровень 3. Запускалась ли программа?
15.Находясь на 3-м уровне выполнения, остановите какую-либо службу, оставаясь на том же уровне. Затем запустите её.
16.Посмотрите rc-сценарии. Как их модифицировать, чтобы при переходе с уровня на уровень вызывались скрипты, имя которых начинается с какой-либо другой буквы, например, A?
17.Напишите скрипт, который выдает на терминал аргумент, переданный ему при запуске и текущий уровень выполнения. Разместите его в rc* каталоге. Определите моменты его вызова, переводя систему на разные уровни.
18.Остановите машину с выключением питания.
37
Практическое занятие 5
АДМИНИСТРИРОВАНИЕ ФАЙЛОВЫХ СИСТЕМ
ВUNIX файлы организованы в виде древовидной структуры, называемой файловой системой. В UNIX все файловые системы имеют два основных компонента – файл и каталог.
Корнем дерева файловой системы является корневой каталог (/).
Вбольшинстве случаев файловое дерево (в том виде, как видит его пользователь), составлено из нескольких отдельных файловых систем, которые могут иметь различную файловую структуру, а файлы, принадлежащие этим файловым системам, могут располагаться на различных устройствах. Подсоединение корня файловой системы к каталогу коневой файловой системы называют монтированием, отсоединение – демонтированием.
Каждый файл имеет связанные с ним метаданные (хранящиеся
виндексных дескрипторах – inode), содержащие все характери-
стики файла. Имя файла связано с индексным дескриптором посредством специального файла – каталога.
5.1.Типы файлов
ВUNIX существует шесть типов файлов, различающихся по функциональному назначению и действиям ОС при выполнении тех или иных действий над файлами:
- обычный файл (regular file) - каталог (directory)
- специальный файл устройства (special device file) - именованный каталог (named pipe)
- символическая ссылка (link) - сокет (socket)
5.2.Типы файловых систем
ОС Solaris использует файловые системы: UFS, ZFS, HSFS, PCFS, UDFS, и сетевую файловую систему NFS, причем UFS используется в Solaris по умолчанию, tmpfs – файловую систему в памяти и lofs – файловую систему обратной связи, procfs – файловую систему процессов и др.
38
На диске может размещаться несколько файловых систем. Раздел диска, где может быть размещена файловая система, в ОС Solaris назван slice. Таблица размещения разделов (VTOC)
располагается в первом секторе диска и отображается командой prtvtoc.
Для создания и изменения таблицы разделов используется диалоговая программа format. Раздел 2 соответствует всему диску. Программа format служит также для анализа поверхности
диска и его форматирования.
Доступ к разделам осуществляется через специальные файлы, расположенные в /dev/rdsk/* (байт-ориентированные) и /dev/dsk/* (блочно-ориентированные, т.е. после форматирования).
Для SCSI-дисков наименование специальных файлов имеют вид
сAtBdCsD, где
A – номер контроллера,
B – логический номер устройства (LUN), C – номер диска, обычно 0,
D– номер раздела.
5.3.Структура UFS
Описание элементов файловой системы UFS приведено в табл.5.1.
|
|
Таблица 5.1 |
Элемент |
|
Описание |
|
|
|
Primary Su- |
Содержит описание файловой системы, рас- |
|
perblock |
полагается в одном секторе и содержит: |
|
|
∙ |
Число блоков данных |
|
∙ |
Число групп цилиндров |
|
∙ Размер блока данных и размер фраг- |
|
|
∙ |
мента данных |
|
Название точки монтирования |
|
|
∙ Флаги состояния файловой системы |
39
|
|
Продолжение таблицы 5.1 |
Элемент |
|
Описание |
|
|
|
Backup |
Резервная копия суперблока |
|
Superblock |
|
|
Cylinder |
Блок данных, описывающий состояние груп- |
|
Group Block |
пы цилиндров и содержащий информацию: |
|
|
∙ |
Число inode |
|
∙ Число блоков данных в группе |
|
|
∙ Число каталогов в группе |
|
|
∙ Число свободных блоков, inode, фраг- |
|
|
∙ |
ментов |
|
Карту свободных блоков |
|
|
∙ |
Карту свободных inode |
Inode Table |
Список inode для группы цилиндров |
|
Data Block |
Блоки данных. Размер блока по умолчанию |
|
|
8192 байта |
Структура inode
Индексный дескриптор (inode) содержит следующие данные:
∙
∙
∙
∙
∙
∙
∙
∙
∙
Тип файла Права доступа
UID владельца файла
GID группы владельца файла Размер файла Дата создания файла
Число жестких ссылок на файл Число занятых блоков на файл
12 прямых указателей на блоки данных
40