Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ктитров Администрирование ОЦ УНИХ 2007

.pdf
Скачиваний:
34
Добавлен:
16.08.2013
Размер:
864.18 Кб
Скачать

Практическое занятие 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