Popis bootu počítače s operačním systémem Solaris na platformách x86 a SPARC.
Boot Solarisu na x86
- Primary boot
- Boot from FDD
- 0. sektor na FDD obsahuje Master Boot Block
- MBB nacte image boot loaderu strap.com
- strap.com nacte boot.bin
- boot.bin natahuje jadro
- je stejny jako z FDD, jen je MBB nahrazeny podle specifikaci El-Torito
- 0. sektor na HDD obsahuje MBB a FDISK tabulku (rozdeleni disku)
- MBB najde v FDISK tabulce prvni aktivni oddil
- nacte z nej prvni sektor a skoci na jeho prvni byt v pameti
- (az potud to je standardni PC-kompatinilni rezim boot)
- boot solarisu:
- slice s0
- 1 cylindr – slice boot
- 1. sektor – obsahuje partition boot program (pboot)
- 2. a 3. sektor – obsahuje VTOC (tabulka rozdeleni na slices)
- 4. a dalsi sektory – obsahuje bootblk
- Master boot program (mboot) nacte partition boot program (pboot) a spusti ho
- pboot nacte bootblk a spusti ho
- pokud disk obsahuje dalsi partisny, tak muze user nabootovat z jine
- bootblk nebo strap.com nacte boot.bin z UFS / a spusti ho
- boot z FDD
- PXE
- boot.bin
- prepne CPU do 32bit, paget, protectet rezimu
- provede omezenou inicializaci stroje
- Configuration Asistant
- pokud je auto-boot?=false, tak se zastavi boot
- Disky (i CDROM) zvladne v pripade, ze pouzivaji UFS
- network
- rarp
- dhcp
- root se mountuje pres NFS
- po namountovani / spusti nacte /etc/bootrc
boot -as
, příkaz b -as
/etc/bootrc
/platform/`uname -i`/boot/solaris/boot.bin
Boot Solarisu na platformě SPARC
OBP
+--------------+ | diag-switch? |-----true----+ +--------------+ | | +--------+ | | POST | false +--------+ | | |---------------------+ | +-------------+ +------------+ | auto-boot? |---false---| OK Prompt | +-------------+ +------------+ | true | +----------------------------------------+ | boot device boot-file | | boot-command + + | | diag-device diag-file | +----------------------------------------+
boot -s
– single user režim-
- z disku – chce heslo
- cdrom – nechce heslo
/usr
,/var
– jsou potřeba i v single režimu
boot -r
– rekonfigurační režimboot -a
– umožní zadávat různé parametry bootu (lze tím vyřešit problémy s/etc/system
a podobně)
z disku
- Načtení VTOC (= 1. sektor disku), rozdeleni slice. Příkazy, které vás můžou zajímat:
-
format
fmthard
prtvtoc
- načte se boot block (nahraje se do paměti program
bootblk
), 2.-16. sektor na slice, pozor, HW závislý! -
/usr/sbin/installboot
– nainstaluje bootblk, je to skript používajícídd
Pokud obnovujete systém ze zálohy, většinou musíte ručně obnovit boot block. Vlastní program bootblk je v adresáři/usr/platform/`uname -i`/lib/fs/ufs
.
- bootblk načte sekundární bootovací program ufsboot, program ufsboot je HW závislý a je umístěný v adresáři
/platform/`uname -i`/
- načte se
/etc/system
a pak 32b nebo 64b jádro a jeho moduly. -
32b
–/platform/`uname -m`/kernel/
64b
–/platform/`uname -m`/kernel/sparcv9
- moduly –
/kernel/
,/usr/kernel/
- Po inicializaci jádra se jako první proces spouští
/sbin/init
init
načte konfiguraci z/etc/inittab
(jako prvnísysinit
ainitdefault
), porvedesysinit
a pak pokračuje runlevelem který je zaznamenán vinitdefault
. Soubor/etc/inittab
se načítá a provádí od začátku do konce v tom pořadí jak jsou záznamy zapsány.
ze sítě
Pro boot ze sítě se používá protokolo RARP nebo jeho nastupce DHCP
- klient pošle broadcastem dotaz
- server odpoví klientovi jeho IP adresou
-
/etc/ethers
rarpd -a
- Na serveru musí být aktivní tftp server a v adresáři
/tftpboot
musí být soubor s nazvem IP v hexadecimálním tvaru, který si klient stáhne. Po stažení se spustí a přez RPC dotaz na server zjistí své jméno. Odpověď dostane od daemonabootparamd
, jeho nastavení je v/etc/bootparams
.
installboot
boot z CD-ROM: ok boot cdrom -s instalace bootblk na disk: # cd /usr/platform/`uname -i`/lib/fs/ufs # installboot bootblk /dev/rdsk/c0t0d0s0 reboot: # init 6