Boot,   bootstrapping   -   слова, обозначающие  сейчас
"Загрузить/пнуть, процесс начальной  загрузки", на  самом  деле
произошли  из  английской фразы "Pull itself up by its own boot
straps" (Поднять себя за шнурки собственных ботинок)

     Начинается все с Boot-prom'a - небольшой программы, которая
хранится  в   нестираемой   памяти   компьютера    и   начинает
выполняться сразу после включения.

      Естественно, boot-prom умеет делать многое: форматировать
диски, инсталлировать  операционную  систему,  запускать  тесты
hardware.  Однако главное его предназначение - найти на диске и
запустить на выполнение файл /unix - ядро операционной системы.
И  своего  собственного  разума  на  это ему обычно не хватает,
поэтому  он  в  первую  очередь  загружает  с  жесткого   диска
"загрузчика   операционной   системы",  а  уж  тот  делает  все
остальное.



     Boot-prom загружает "BOOT BLOKS" - 1-ю ПРОГРАММУ НАЧАЛЬНОЙ
ЗАГРУЗКИ. "boot-bloks" расположены  в  1-15  секторах  раздела,
содержащего  корневую  файловую  систему  "/".  Обычно корневая
файловая система  располагается  на  разделе  номер  0.
     "Boot-   blocks"   можно   записать   на  корневой  раздел
загрузочного диска (обычно это внутренний диск со  SCSI-номером
3)  командой  installboot.  Для этого выполняется что-нибудь
такое:

    installboot /dev/rdsk/c0t3d0s0

     Boot-blocks  "умеет читать" формат файловой системы unix -
ufs .  Он находит на корневой файловой системе файл  "/ufsboot"
- 2-Ю ПРОГРАММУ НАЧАЛЬНОЙ ЗАГРУЗКИ - и загружает ее.

     /ufsboot находит ядро /kernel/unix и загружает его.

     Ядро   Unix   загружается   в   оперативную  память.  Затем  подключает
дополнительные загружаемые модули с драверами  устройств.  Как  только  ядро
"набирает"    достаточное    количество   драверов,   чтобы   самостоятельно
смонтировать корневую файловую систему, оно тут же это и делает, после  чего
начинает   действовать   самостоятельно,   не   используя   кода   начальных
загрузчиков.

     Перехват в boot-prompt:

  STOP+A

     Загрузка в single user:

  bo: boot -s



     Boot-prom  загружает с диска ЗАГРУЗЧИК - файл /stand/boot,
Загрузчик загружает ядро /stand/unix

     Поскольку  boot-prom  не  в  состоянии  вместить  кода для
работы со стандартной unix'овской файловой системой, файлы unix
и  boot  лежат  в  отдельном  разделе  жесткого диска - разделе
/stand. На нем создана "ОЧЕНЬ  ПРОСТАЯ  ФАЙЛОВАЯ  СИСТЕМА"  bfs
(Boot  File  System),  чтобы  boot-prom'у  было полегче найти и
считать с диска загрузочные файлы.

     Перехват в boot-prompt:

После того как на консоли появится сообщение: "Idle MPU: none"
нажать клавишу ПРОБЕЛ

     Загрузка в single user:

        Во   время   начальной  загрузки  на  несколько  секунд
появляется приглашение: "Press _что-то_to enter system_maintence.
Нажать требуемую клавишу



     BIOS  загружает блок начальной загрузки активного раздела.

     Он  грузит  загрузчик  LILO (LInux LOader). Lilo загружает
файл /vmlinuz

     Параметры   начальной   загрузки   записываются   в  файле
/etc/lilo.conf После любых изменений в  этом  файле  необходимо
выполнить команду

  lilo

     Перехват в Lilo-prompt:

Left_ALT сразу после появления сообщения "Lilo ..."

     Загрузка в single user:

  Lilo: linux root=/dev/hda2 single

     Загрузка в еще более single user:

  Lilo: linux init=/bin/sh
  mount -n -o remount /dev/hda2 /
  insmod de4x5
  ifconfig eth0  195.232.171.30
  route add -net 195.232.171.0 gw 195.232.171.30
  insmod nfs



     В ПЗУ HP 9000 проживает "PDC" - "Processor Dependent Code"
- чтоб поговорить с  ним, надо  нажать  клавишу  ESC  в  первые
секунды загрузки.

     На   загрузочном   диске   есть  Boot-раздел  формата  LIF
(линейная файловая система) В LIF-томе 4 "файла"

ISL       - "операционная" программа
HPUX      - собственно загрузчик ядра
AUTOBOOT  - текстовый  файл,  в  котором  написано имя ядра по
            умолчанию

Итак: PDS вызывает ISL командой

  bo scsi.6.0 isl

ISL загружает ядро командой

  hpux /stand/vmunix

     Перехват в PDC-prompt:

Нажать ESC в первые 10 секунд

     Загрузка в single user:

PDC> bo pri isl
ISL> hpux -is /stand/vmunix


Плата для внешнего управления аппаратурой и доступа к консолю:
GSP - Guardian Service Processor - в старых (до 2003) серверах
MP - Management Processor - в Itanium-серверах

предопределенный администраторский логин:
Admin/Admin

предопределенный IP:
GSP - 192.0.0.192/0.0.0.0
MP  - 192.168.1.1/0.0.0.0

############ как подключиться к MP с unix-хоста:
route add 192.0.0.192 {my.own.ip.addres}
ping 192.0.0.192
arp -a | grep 192.0.0.192
arp -s 192.0.0.192  {GSP:ether:net:addres}
telnet 192.0.0.192

MP-команды

^E CF - перехват управления на себя (из RO в RW)
co  - COnsole (переход из console в MP-prompt - ^B)
vfp - Virtual Front Panel (^Q,ma - возврат в главное меню)
cm  - Command Menu
cl  - Console Log viewer
sl  - Show chassis Log
he  - HElp menu
x   - eXit







Ядро инициализирует себя и после этого  запускает процесс init.
А init - все остальные процессы,  программы, которые необходимы
для нормального функционирования операционной системы.

Все дальнейшие  действия в системе определяются этим процессом.
Все, что нужно делать init-у, определяет специальная таблица.

Процесс init всегда находится на каком-либо "УРОВНЕ ВЫПОЛНЕНИЯ".
Уровень выполнения определяет состояние и поведение всей систе-
мы. Уровень обозначается цифрой (или буквой) 0,1,2,3,4,5,6,s,S

   0        - prom монитор - Полный останов системы;
1, s, S     - single user mode. Однопользовательский режим;
   2        - многопользовательский режим без NFS-сервера;
   3        - многопользовательский режим с NFS-сервером;
   6        - перезагрузка;




bchk::sysinit:/etc/bcheckrc/dev/console 2>&1
brc::sysinit:/etc/brc   > /dev/console 2>&1
is:3:initdefault:
rc:12345:wait:/etc/rc    > /dev/console 2>&1
r0:0:wait:/etc/rc0       > /dev/console 2>&1
r2:23:wait:/etc/rc2      > /dev/console 2>&1
r3:3:wait:/etc/rc3       > /dev/console 2>&1
pf:12345:powerfail:/etc/powerfail > /dev/console 2>&1
co:12345:respawn:/etc/sysmonitor  console console
t1:23:respawn:/etc/sysmonitor     tty01   9600
t2:23:off:/etc/sysmonitor         tty02   9600

        Формат таблицы:

ИМЯ:Уровни_выполнения:вид_действия:запускаемая команда

ИМЯ: - просто имя строчки - они все должны быть разными
вид_действия:

  sysinit   запустить один раз после начальной загрузки;

            на соответствующем уровне выполнения:
  wait    - запустить один раз и дожидаться, пока не окончится;
  respawn - запустить параллельно, а если окончится, перезапус-
            кать снова;
  off     - ничего не делать (просто игнорировать эту строку).


Если  посмотреть  внимательно на таблицу, то можно разобраться,
что же в действительности происходит при загрузке  и откуда бе-
рутся все эти загадочные сообщения.


        Сперва init запускает процессы, которые "sysinit"

        Отработав все строки "sysinit" уровня,  init  идет  все
дальше  по  /etc/inittab  и обнаруживает строку initdefault 3 -
она заставляет его "перейти" на уровень 3.



       Перейдя  на  уровень  выполнения  3, init и отрабатывает
первую  встретившуюся  строчку  с  уровнем  "3"  -  запускается
командный  файл  /etc/rc2  -  загляните в него. Там все просто:
/etc/rc2  берет  и  выполняет  командные  файлы  /etc/rc2.d/S*,
лежащие  в  каталоге  /etc/rc2.d.  Каждый  файл  выполняется  с
параметром "start"

       Отработав /etc/rc2, init точно таким же образом запускает
файл /etc/rc3. Вслед за этим он запускает  несколько  процессов
sysmonitor  -  по  одному  на каждый имеющийся терминал. Это те
самые  процессы,  которые  говорят  на  терминал:   "Login:   "
Пользователь, войдя  на  терминал, некоторое время работает, но
как только он  "уходит"  из  системы,  на  указанном  терминале
ничего  не остается. init тут же выполняет действие "respawn" -
перезапускает на терминал sysmonitor - и  опять  жизнерадостное
"Login: " появляется на терминале.



        По умолчанию init устанавливает уровень выполнения 5.
При начальной загрузке отрабатывается файл
/etc/rc.d/rc.S

        Затем для перехода в многопользовательский режим
/etc/rc.d/rc.M
        из которого запускаются файлы
/etc/rc.d/rc.inet1  устанавливающий сетевые интерфейсы
/etc/rc.d/rc.inet2  запускающий сетевые сервисы
/etc/rc.d/rc.local  запускающий  несколько  полезных  программ и
                    демонов - например, поддержка мыши,   httpd,
                    русификация  консоля и т.п.



Используется стандартная технология rc-файлов System V

RC-каталоги:
/etc/rc.d/rc[0123456].d/
/etc/rc.d/init.d/

Конфигурационные параметры для RC-команд:
/etc/sysconfig/



Не  смотря  на  BSD-евое происхождение, используется стандартная
технология rc-файлов System V

RC-каталоги:
/sbin/rc[0123].d/
/sbin/init.d/

Конфигурационные параметры для RC-команд:
/etc/rc.defaults.d/



Используется стандартная технология rc-файлов System V

RC-каталоги:
/etc/rc[0123456].d/
/etc/init.d/

Популярность: 34, Last-modified: Sun, 14 Mar 2004 03:44:48 GMT