Европейский Университет в Санкт-Петербурге
Опубликован: 04.07.2008 | Доступ: свободный | Студентов: 1309 / 258 | Оценка: 4.34 / 3.65 | Длительность: 21:13:00
Лекция 11:

Запуск и остановка системы

< Лекция 10 || Лекция 11: 12345 || Лекция 12 >

Начальная загрузка системы

Загрузка Solaris 10 на компьютерах SPARC

После включения компьютера записанное в ПЗУ программное обеспечение (firmware) запускает процедуру самотестирования компьютера (power-on self-test – POST). То, как проходит эта процедура, зависит от конфигурации и модели компьютера.

Если тест прошел нормально, то программа автозагрузки пытается загрузить систему, используя имя устройства и имя файла ядра, записанные в ПЗУ.

Эти параметры могут быть изменены программой eeprom при интерактивной работе с Solaris из командной строки или после остановки системы – из командной строки ok, которую выдаст firmware по завершении остановки системы.

Программа, которая запускается после начального загрузчика, называется ufsboot, если загрузка происходит с диска, или inetboot, если выполняется загрузка по сети.

Загрузка по сети

Загрузка по сети может идти с применением DHCP или RARP/bootparams, зависимости от настроек, записанных в ПЗУ и реальной конфигурации сети (для настройки по DHCP в сети должен быть доступен DHCP-сервер).

Команду boot среды OpenBoot (иначе говоря, командной строки firmware) можно использовать для задания протокола загрузки явным образом:

boot net:rarp
boot net:dhcp

или полагаясь на выбор сценария по умолчанию (тогда сценарий не указывается):

boot net

При этом загрузка осуществляется через тот интерфейс, для которого определен псевдоним net.

Загрузка через сеть с использованием RARP/bootparams

Начальный загрузчик из ПЗУ выполняет ARP-запрос (подробнее об ARP-запросах см. лекции 3 курса "Системное администрирование ОС Solaris 10") и, после получения ответа, посылает широковещательный запрос в локальную сеть по протоколу TFTP для загрузки программы inetboot из сети. Загрузив с ответившего TFTP-сервера программу inetboot, загрузчик передает ей управление, а она отправляет еще один ARP-запрос, после чего находит файловую систему в сети, с которой следует произвести загрузку ядра. Для этого inetboot использует протокол bootparams (см. man bootparams для получения детальной информации о протоколе). После того, как файловая система найдена, с нее по протоколу NFS загружается ядро и ему передается управление.

Загрузка через сеть с использованием DHCP

При загрузке по сети с использованием DHCP начальный загрузчик из ПЗУ посылает широковещательный запрос, в котором сообщает MAC-адрес своего компьютера и его архитектуру, запрашивая в ответ IP-адрес, параметры загрузки и настройки сети. После получения ответа начальный загрузчик загружает inetboot через сеть, inetboot загружает ядро, которое, в свою очередь, загружает необходимые ему файлы через сеть, после чего выгружает inetboot. Стартовые скрипты запускают dhcpagent, который выполняет оставшуюся часть настроек по DHCP.

Загрузка с диска

При загрузке с диска разделяют два этапа: начальная загрузка и вторичная. Начальная загрузка заключается в том, что программа загрузки из ПЗУ считывает вторичный загрузчик с загрузочного раздела диска, из блоков с первого по пятнадцатый.

Если имя файла ядра указано не как полное имя файла (начинающееся с символа /), то такое имя расценивается как относительное и вторичный загрузчик ищет ядро в каталоге, соответствующем аппаратной платформе компьютера. Тогда путь к ядру точно будет лежать через каталог /platform/platform-name. Для многих компьютеров SPARC после этого выполняется поиск в каталоге /platform/hardware-class-name. Если указано полное имя файла, загрузчик будет пытаться загрузить в точности тот файл, что указан. После загрузки файла ядра в память загрузчик передает ему управление.

Если имя файла ядра не указано и из других настроек не понятно, какое ядро следует загружать, загрузчик сам решает, какое ядро требуется, основываясь на том, какое ПО установлено в системе, на известных свойствах аппаратуры и firmware и на записях в файле политики загрузки boot.conf. О местоположении и содержимом этого файла будет рассказно ниже, в разделе "Файлы, используемые при загрузке системы".

Среда OpenBoot. Команда boot

В системах с архитектурой SPARC после процедуры самотестирования компьютера (POST), которую выполняет firmware, запускается загрузчик, предоставляющий интерфейс среды OpenBoot. В этой среде можно вводить команды в командной строке в ответ на приглашение среды. Приглашение среды представляет собой слово

ok

Здесь мы рассмотрим команду boot среды OpenBoot.

Синтаксис команды boot предполагает возможность указания загрузочного устройства и дополнительных аргументов:

boot [device] [arguments]

Если дать команду boot без параметров, то будет выполнена загрузка с устройства по умолчанию – то есть с того устройства, которое указано в переменной boot-device или diag-device в ПЗУ (NVRAM variable). Если система запускается в режиме диагностики, вместо переменных bootdevice и boot-file используются diag-device и diag-file.

Аргументы команды boot могут быть многострочными, они не анализируются загрузчиком OpenBoot, а передаются вторичному загрузчику как есть. Если команде boot переданы какие-нибудь аргументы, содержимое переменных boot-file и diag-file игнорируется. Например, если дана команда

boot –s

то подстрока "-s" расценивается как аргумент, а переменные boot-file и diag-file не принимаются во внимание.

boot net

и

boot cdrom

если даны без аргументов, будут использовать содержимое переменных boot-file и diag-file как путь к файлу ядра. Стало быть, когда boot-file содержит имя 64-разрядного ядра, а вы пытаетесь загрузиться с CD-ROM командой boot cdrom, то загрузка не состоится, если на CD-диске имеется только 32-разрядное ядро.

Для загрузки в специфическом режиме следует указывать команде boot соответствующие аргументы, в ответ на приглашение ok вводится команда:

Для SPARC-платформ

boot –as – загрузка ядра, используемого по умолчанию, в однопользовательском режиме;

boot kernel/unix –as – принудительная загрузка 32-разрядного ядра в однопользовательском режиме (для принудительной загрузки указывается имя файла явным образом);

boot kernel/sparcv9/unix –as – принудительная загрузка 64-разрядного ядра в однопользовательском режиме (для принудительной загрузки указывается имя файла явным образом).

Для более детального изучения команды boot в вашей системе следует использовать man boot ; помните, что на некоторых платформах, в зависимости от firmware, могут наблюдаться отклонения от описанной здесь и в документации схемы.

Загрузка Solaris 10 на компьютерах x86

На компьютерах x86 загрузка состоит из двух разных этапов: начальной загрузки и вторичной загрузки. Начальная загрузка выполняется BIOS системной платы и BIOS контроллеров. После процедуры POST начальный загрузчик пытается прочесть первый сектор с дискеты, компакт-диска, внешнего флэш-накопителя USB или жесткого диска, либо, если эта функция поддерживается, загрузить вторичный загрузчик через сеть. После того, как вторичный загрузчик записан в оперативную память, ему передается управление. Начальный загрузчик работает в режиме real mode процессора, а вторичный – в защищенном режиме (32-bit protected mode).

Вторичный загрузчик представляет собой знакомый по системам Linux загрузчик GRUB и способен считать ядро с диска из файловой системы UFS, компакт-диска или через сеть с использованием NFS.

Начиная с версии Solaris 10 1/06 описанная в этом и следующих двух абзацах процедура перестала использоваться. В версиях до Solaris 10 3/05 включительно в процессе загрузки применялся DCA (device configuration assistant). Вторичный загрузчик запускал программу DCA, которая определяет физические устройства компьютера. При этом системный администратор мог вмешаться в процесс определения устройств, если DCA их не мог верно определить автоматически.

После возвращения управления от DCA вторичный загрузчик выполнял скрипт /etc/bootrc, который управлял дальнейшим процессом загрузки. Обычный /etc/bootrc предлагает администратору ввести символ b для загрузки с определенными ключами и аргументами, символ i для запуска интерактивного командного интерпретатора и любой другой символ – для загрузки ядра с установками по умолчанию.

Для загрузки в специфическом режиме следует указывать команде boot соответствующие аргументы, так для x86 платформ в ответ на приглашение > вводится команда

b kernel/unix –as

для загрузки ядра, используемого по умолчанию, в однопользовательском режиме.

< Лекция 10 || Лекция 11: 12345 || Лекция 12 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Александр Васильченко
Александр Васильченко
Россия
Денис Гайдуль
Денис Гайдуль
Россия, Подольск