Popis bootu Solarisu

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
  • Boot z CD-ROM
    • je stejny jako z FDD, jen je MBB nahrazeny podle specifikaci El-Torito
  • Boot z HDD
    • 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 ze site
    • boot z FDD
    • PXE
  • Secondary boot
    • 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
  • Jakmile jsem uz v prikazovem radku, tak muzu zadat prikaz ekvivalentni boot -as, příkaz b -as
  • Soubory
    • /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žim
    • boot -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 a initdefault), porvede sysinit a pak pokračuje runlevelem který je zaznamenán v initdefault. 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 daemona bootparamd, 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