BOOT(HW)
НАЗВАНИЕ
boot - программа загрузки системы UNIX.
ОПИСАНИЕ
boot - интерактивная программа, используемая для загрузки и
выполнения отдельных программ системы UNIX. Она используется
главным образом для загрузки и выполнения ядра UNIX, но может
также использоваться для згрузки и выполнения прочих программ,
скомпилированных для изолированного выполнения. boot является
необходимой частью операционной системы UNIX и должна
присутствовать в корневом каталоге корневой файловой системы для
обеспечения успешной загрузки ядра системы UNIX.
Программа boot вызывается системой всякий раз, когда включается
компьютер. Для перезапуска системы, минуя длительные процедуры
разгрузки, используйте команду reboot, которая перезагружает
систему после разгрузки, не ожидая ввода с клавиатуры. Для
получения дополнительной информации смотрите haltsys(8).
При загрузке с дискеты эта процедура включает три этапа:
- Коды ПЗУ загружают в память блок загрузки с нулевого сектора
дискеты, который совпадает с нулевым сектором файловой системы.
- Загрузочный блок загружает файл /boot из файловой системы
дискеты.
- Файл /boot выполняется и выдает подсказку для пользователя.
При загрузке с жесткого диска эта процедура включает пять этапов:
- Коды ПЗУ загружают в память блок главного загрузчика с нулевого
сектора жесткого диска.
- Блок главного загрузчика загружает после этого загрузочный блок
разделов (boot0) из нулевого сектора активного раздела (см.
fdisk(8)).
- Затем, предполагая, что активным разделом является раздел
системы UNIX, загружаются коды boot1, располагающиеся после
первого килобайта в активном разделе версии 2.2 инсталляции
UNIX или старше. Если на диске инсталлирована более ранняя
версия UNIX, то предполагается, что коды boot1 начинаются в
активном разделе после третьего килобайта. Коды boot1 занимают
на диске 20 физически последовательных блока размером 1K.
- boot1 загружает /boot из файловой системы UNIX.
- /boot выполняется и выдает подсказку для пользователя.
Файлы /boot и /kernel могут находиться на дорожках, отмеченных
программой badtrk(8). Главный загрузчик (masterboot), boot0 и
boot1 не могут располагаться на дефектных дорожках.
Процедура загрузки с жесткого диска запускается в том случае, если
карман дисковода гибких дисков пуст.
При первом вызове boot высвечивает подсказку для задания
местоположения программы, подлежащей загрузке:
UNIX System V
Boot
:
Для задания местоположения этой программы нужно указать устройство
и имя файла. Это имя должно являться полным именем файла,
содержащего самостоятельную программу. Вы можете высветить список
доступных в текущий момент имен, набрав вопросительный знак (?).
Устройство и полное имя задаются в следующем формате:
xx(m,o)filename
или
xx(m)filename
где:
xx - имя устройства ('hd' - для жесткого диска и 'fd' - для дискеты)
m - малое (меньшее) число устройства (40 - для корневой файловой системы на жестком диске)
o - смещение в разделе (обычно 0). Это значение задавать не
обязательно.
filename - стандартное полное имя. Может начинаться с косой
черты, если программа находится не в корневом каталоге.
Все числа задаются в десятичном виде. Малые (меньшие) числа
устройств смотрите на страницах документации hd(HW) и fd(HW).
Задавать смещение не обязательно. Местоположение подлежащей
загрузке программы задается в первую очередь и обязано
присутствовать, если в командной строке или в /etc/default/boot
задаются прочие загрузочные опции.
Если вы хотите ввести в процедуру загрузки паузу и ожидание нажатия
<RETURN> перед выполнением загружаемой программы, введите в
командную строку слово "prompt". Например, если вы введете "prompt"
и нажмете <RETURN>, то boot выдаст следующее сообщение и будет
ждать нажатия этой клавиши снова:
Loaded, press <RETURN>
Данная подсказка может быть заменена на другую строку, например:
prompt="change diskettes now"
При этом boot загрузит с дискеты xenix, выведет сообщение "change
diskettes now" и будет ждать нажатия <RETURN>. Между словом prompt,
знаком "=" и строкой подсказки не должно быть никаких символов,
хотя сама эта строка может содержать пробелы. Когда вы нажимаете
<RETURN>, xenix начинает свою работу. "Prompt" может быть включено
как в командной строке, так и в файле /etc/default/boot. Если
подсказка не задана, то boot выполняет загруженную программу, не
останавливаясь.
Если вы только что загрузили программу boot с дистрибутивной
дискеты, нажмите просто <RETURN> и boot установить значения
параметров по умолчанию.
Для загрузки системы UNIX с жесткого диска введите:
hd(40,0)unix
Для запуска загрузочной строки, используемой по умолчанию и
задаваемой в файле /etc/default/boot, нажмите <RETURN>, когда
система высветит загрузочную подсказку, и boot возьмет значения,
заданные структурой DEFBOOTSTR в этом файле.
Если за короткое время не было введено ничего и в файле
/etc/default/boot корневой файловой системы LOADUNIX=YES, то boot
по истечении заданного времени поведет себя, как если бы была
нажата клавиша <RETURN>, за исключением того случая, когда в
загрузочной строке включено "auto". (Если кроме задания
LOADUNIX=YES задано еще и TIMEOUT=n, то boot будет ждать истечения
n секунд.) boot выполняет загрузочную процедуру, и программе
init(5) передается аргумент -a без "prompt".
Рекомендуется устанавливать на жестком диске систему DOS, до
установки системы UNIX. (См. dos(1)). При установленной системе
DOS вы можете загрузить ее с подсказки "Boot" системы UNIX, введя
слово "dos".
Во время инсталляции системы XENIX на жесткий диск записывается
подходящий главный загрузчик (masterboot). Если задается
нестандартный жесткий диск, то его параметры хранятся и
активизируются в этом главном загрузчике.
Установка конфигурации ядра системы
Программа boot передает загрузочную строку, введенную на
загрузочную подсказку, ядру системы, исключая при этом строку
"prompt".
Ядро читает эту загрузочную строку и определяет, какие периферийные
устройства отвечают за корневую файловую систему, конвейер и
свопинг. Если эти устройства не заданы ни в файле
/etc/default/boot, ни в командной строке, то по умолчанию
используются устройства, включенные в ядро при его компоновке.
Добавочные аргументы в командной строке, которые могут изменить эти
действия и имеют вид:
dev=xx(m,o)
или
dev=xx(M)
где:
dev - Нужное системное устройство (root[dev], pipe[dev] или
swap[dev])
xx, m, o - те же, что и для загрузочного устройства.
Если задана какая-либо комбинация root, pipe и swap, то эти
системные устройства будут относиться к указанным устройствам, если
же системные устройства не будут заданы, то по умолчанию будут
использоваться установки включенные в ядро при его компоновке.
Установка одного устройства не влияет на установки по умолчанию
других устройств.
Выбор системной консоли
Вы можете выбрать системную консоль во время загрузки, введя
команду systty=x на загрузочную подсказку или вставив ключевое
слово SYSTTY=x в файл /etc/default/boot. Буква x представляет собой
либо число, либо строку.
Если вы используете во время загрузки команду systty=x, то boot
передаст параметр x, соответствующий выбранной консоли, ядру
системы. Значения параметра x загрузочной строки systty таковы:
sio Последовательный порт COM1
scrn Адаптер дисплея
Например, для того, чтобы приписать системную консоль
последовательному порту COM1, введите на загрузочную подсказку
следующую команду:
systty=sio
Если вы не стали задавать во время загрузки выбор системной
консоли, то программа boot для ее определения выполнит следующие
действия:
boot читает файл /etc/default/boot и ищет в нем ключевые слова
SYSTTY=x, где x - число, определяющее системную консоль.
1 означает последовательный адаптер порта COM1.
0 означает адаптер дисплея.
Если SYSTTY не найдено или файл /etc/default/boot не читается,
то boot проверяет адаптер дисплея и назначает его в качестве
системной консоли.
Если адаптер дисплея не обнаружен, то boot ищет порт COM1,
устанавливает его на скорость передачи данных 9600 бод, 8
информационных битов, отсутствие контроля четности и использует
в качестве системной консоли.
Таким образом, для того, чтобы автоматически установить в качестве
системной консоли последовательный порт COM1, введите в файл
/etc/default/boot строку:
SYSTTY=1
Назначение псевдонимов
Ряд системных устройств может получить в качестве псевдонима одно
ключевое слово, которое задается в файле /etc/default/boot. После
этого данное ключевое слово можно ввести в загрузочную командную
строку, и программа boot прочитает информацию о соответствующих
системных устройствах в файле /etc/default/boot и затем передаст ее
ядру системы. Псевдоним задается в следущем виде:
key=file [root=xx9m0 pipe=xx(m) swap=xx(M) prompt[="string"]]
Во всех случаях спецификация устройства может иметь формат
dev=xx(m,o), где o - смещение.
Например, если вы имеете корневую файловую систему на втором
жестком диске и хотите использовать ее, но при этом хотите
загрузиться с помощью файла xenix, расположенного на первом жестком
диске, введите в файл /etc/default/boot следующую строку:
disk2=hd(40,0)unix root=hd(104,0) prompt="Using second disk"
При очередной загрузке системы с первого жесткого диска введите на
загрузочную подсказку "disk2". Тогда xenix будет загружаться с
первого жесткого диска, и когда вы увидите сообщение "Using second
disk", нажмите <RETURN>. После этого xenix загрузится и будет
работать с корневой файловой системой на втором жестком диске.
Обратите внимание, что вам нужно отредактировать файл
/etc/default/boot в корневой файловой системе на устройстве, откуда
будет считываться boot, в данном случае - на первом жестком диске.
Другой пример: предположим, что вы хотите загрузиться со второго
дисковода (hd10) и использовать на нем корневую файловую систему и
пространство свопинга. Тогда во время загрузки используйте
следующую загрузочную строку:
hd(104)unix root=hd(104) pipe=hd(104) swap=hd(105)
После загрузки вы должны создать дескрипторы устройств на втором
дисководе с помощью следующих утилит:
fixperm -c -dHD1 /etc/perms/inst
Загрузочные опции
Загрузочные опции могут быть изменены с помощью ключевых слов в
файле /etc/default/boot. Программа boot распознает следующие
ключевые слова:
LOADUNIX=YES | Если задано YES, то boot автоматически
загружает систему UNIX по истечении
времени, определяемого параметром
TIMEOUT. По умолчанию устанавливается
задержка на 60 секунд. |
DEFBOOTSTR=string | Cтрока string служит в качестве загрузочной строки, используемой по
умолчанию в отсутствие ввода из командной
строки. Между DEFBOOTSTR, знаком "=" и
строкой string не должно быть пробелов. |
SYSTTY=x | Если x=1, то в качестве системной консоли
устанавливается последовательный адаптер
порта COM1. Если x=0, в качестве
системной консоли выбирается главный
адаптер дисплея. |
RONLYROOT=NO | Будет ли корневая файловая система
монтироваться в статусе "только для
чтения". Данный параметр должен
устанавливаться в "yes" только во время
инсталляции. |
FSCKFIX=YES или NO | Будет ли fsck(8) исправлять какие-либо
ошибки в корневой файловой системе сама.
Если устанавливается значение YES, то
fsck(8) запускается в отношении
корневой файловой системы с аргументом
-rr. |
MULTIUSER=YES или NO | Вызывает ли init(8) sulogin или переходит в многопользовательский режим. |
PANICBOOT=YES или NO | Перезагружается ли система после реакции на сбой panic(). Эта переменная считывается программой init из файла /etc/default/boot. |
TIMEOUT=n | n - количество секунд ожидания ввода при
загрузке (если LOADUNIX=YES). |
ДИАГНОСТИКА
При возникновении ошибки главный загрузчик выдает сообщение об
ошибке и блокирует систему. Далее приводится список самых
распространенных сообщений и их значение:
- IO ERR
- Ошибка при потке чтения главным загрузчиком блока загрузки
разделов активной операционной системы.
- BAD TBL
- Указатель загрузочных разделов хотя бы одной из операционных
систем в таблице разделов содержит нераспознаваемый код.
- NO OS
- Неустранимая ошибка, мешающая выполнению загрузчика операционной
системы активного раздела.
Когда boot высвечивает сообщения об ошибках, пользователь
возвращается к подсказке "Boot". Далее приводится список самых
распространенных сообщений и их значение:
- bad magic number
- Данный файл не является выполняемой программой.
- can't open <pathname>
- Заданное полное имя не соответствует существующему файлу или
известному устройству.
- Stage 1 boot failure
- Загрузчик не может найти или прочитать файл boot. Вы должны
перезапустить компьютер и обеспечить доступ к диску с файлом
boot в корневом каталоге.
- not a directory
- Заданная область устройства не содержит действительную файловую
систему UNIX.
- zero length directory
- Найденная файловая система содержит каталог нулевого объема.
Наиболее часто это случается, когда в заданной области
располагается файловая система версий, более ранних, чем версия
System V UNIX (с неправильным или несовместимым форматом слов).
- fload:read(x)=y
- При попытке чтения x байтов было прочитано только y байтов. Это
случается из-за преждевременного обнаружения символа конца
файла. Это может быть также вызвано пвреждением файла или
неверным форматом слов дескриптора (заголовка).
ФАЙЛЫ
/boot
/etc/default/boot
/etc/masterboot
/etc/hdboot0
/etc/hdboot1
СМ. ТАКЖЕ
autoboot(8), badtrk(8), fd(HW), fdisk(8), haltsys(8),
hd(HW), init(5), sulogin(5)
ПРИМЕЧАНИЯ
Компьютер осуществляет попытку загрузиться с дискеты в дисководе.
Если дискета не содержит истинной загрузочной программы, возникают
ошибки.
Программа boot не может быть использована для загрузки программ,
которые не были скомпонованы для самостоятельного выполнения. Для
создания самостоятельных программ нужно использовать опцию -A
компоновщика системы UNIX (ld(1)) и специальные самостоятельные
библиотеки.
Самостоятельные программы могут функционировать в реальном или
защищенном режиме, но они не должны использовать большие или
сверхбольшие модели памяти. В реальном режиме программы могут
использовать процедуры ввода/вывода, зашитые в ПЗУ компьютера.
Параметр RONLYROOT должен быть установлен на значение "yes" только
на период инсталляции. Если эта установка действует во время
повседневных операций, то она не даст вам изменять корневую
файловую систему. В этом случае вам придется загрузиться с дискеты,
отредактировать файл /etc/default/boot и перезагрузиться.