Gentoo Logo

1.  Maşinile Silicon Graphics -- Setarea arcboot/arcload

Care?

Pe maşinile SGI, există două opţiuni de aplicaţii bootloader. arcboot şi arcload. Tabelul de mai jos afişează motivele pro şi contra pentru fiecare aplicaţie bootloader.

arcboot
+ Poate încărca de pe partiţii EXT2 şi EXT3, deci nu mai este nevoie să le stocaţi în antetul de volum
- Nu funcţionează pe Octane/Octane2, Origin 200/2000 sau Indigo2 Impact (R10000)
arcload
+ Boot-ează pe TOATE maşinile compatibile cu sistemele SGI
- Momentan, nu poate citi partiţiile EXT2/EXT3 şi, de aceea, are nevoie ca imaginile de kernel şi fişierul de configurare să fie stocate în antetul de volum

Notă: Numele de fişiere din antetul de volum SGI sunt limitate la 8 caractere şi nu pot exista mai mult de 16 fişiere într-un singur antet de volum.

Instalarea arcboot

Anterior în acest ghid, v-am explicat modul în care puteţi crea o imagine de kernel, apoi să o copiaţi în antetul de volum utilizând dvhtool. Există două mari nereguli cu acest sistem:

  • Nu este suportat de toate sistemele SGI
  • Necesită un antet de volum semnificant mai mare

Pentru a boot-a maşina, o aplicaţie bootloader, arcboot, a fost dezvoltată în acest scop. În locul plasării imaginii de kernel direct în antetul de volum, îl vom păstra în /boot (ce se află pe o partiţie EXT2/3), unde îl putem regăsi ulterior. Aşadar, primul nostru pas este să instalăm unele utilitare pe care le vom folosi ulterior...

Cod 1.1: Instalarea utilitarelor necesare

# emerge dvhtool arcboot

Comanda anterioară ar trebui să vă instaleze două utilitare, arcboot ce este stocat în antetul de volum şi ne încarcă imagini de kernel şi dvhtool ce ne ajută să plasăm arcboot în antetul de volum.

Binarul arcboot se află în /usr/lib/arcboot. Numele acestuia depinde de maşina pentru care este compilat.

  • arcboot.ip22: Binarul pentru sistemele Indy, Indigo2 (R4k) şi Challenge S
  • arcboot.ip32: Binarul pentru sistemele O2

Cod 1.1: Instalarea arcboot în antetul de volum

# dvhtool --unix-to-vh /usr/lib/arcboot/arcboot.ip?? arcboot

Apoi, verificăm prezenţa fişierului în antetul de volum.

Cod 1.1: Verificarea dacă arcboot a funcţionat corect

# dvhtool --print-volume-directory
----- directory entries -----
Entry #0, name "linux", start 4, bytes 3262570
Entry #1, name "newlinux", start 6377, bytes 7619627
Entry #3, name "arcboot", start 21260, bytes 51448
#

Notă: Veţi putea nota faptul că, în exemplul de mai sus, avem două imagini de kernel stocate, linux şi newlinux. Acesta sunt doar rămăşiţe de pe vremea în care abia începusem să utilizăm arcboot. Prezenţa acestora nu contează -- atât timp cât arcboot este prezent, totul este bine.

Dacă aţi configurat vreodată Linux Loader (lilo), veţi observa că arcboot are o sintaxă similară în fişierul de configurare. Reţineţi totuşi; arcboot se aşteaptă ca fişierul propriu de configurare să se afle pe o partiţie EXT2/3 ca /etc/arcboot.conf. Cea mai uşoară soluţie este să vă asiguraţi că /boot este o partiţie EXT2/3 şi că există un fişier denumit arcboot.conf în directorul /boot/etc. Un exemplu de fişier de configurare poate fi regăsit în /etc/arcboot.conf.sample.

Notă: Ajustaţi căile corespunzător, dacă aveţi o partiţie separată pentru /boot.

Cod 1.1: Plasarea arcboot.conf în locaţia normală

(Creaţi directorul /boot/etc)
# mkdir /boot/etc

(Plasaţi fişierul nostru de configurare în directorul destinaţie)
# cp /etc/arcboot.conf.sample /boot/etc/arcboot.conf

(Creaţi un link simbolic înapoi în /etc)
# ln -s /boot/etc/arcboot.conf /etc/arcboot.conf

(... şi un link simbolic în /boot indicând spre el)
# (cd /boot; ln -s . boot)

Puteţi edita /etc/arcboot.conf în concordanţă cu preferinţele proprii. O posibilitate este crearea a două imagini de kernel: new, o imagine de kernel proaspăt compilată ce poate sau nu să funcţioneze; şi working, o imagine de kernel încercată, de încredere. Fişierul nostru arcboot.conf pentru această soluţie, arată ca în următorul exemplu.

Cod 1.1: Examplu de arcboot.conf

# arcboot.conf
#
# copyright 2002 Guido Guenther <agx@sigxcpu.org>
# versiune cunoscută ca funcţională
#
label=working
        image=/vmlinux
        append="root=/dev/sda3"

# versiune nouă, "netestată"
label=new
        image=/vmlinux-new
        append="root=/dev/sda3"

Odată ce aţi terminat de configurat, mai există doar câteva ajustări pe care trebuie să le efectuaţi în SGI PROM pentru a determina funcţionarea acestei configuraţii. Acestea sunt explicate, nu în secţiunea următoare (aceasta este pentru utilizatorii Cobalt), ci în secţiunea ce îi urmează acesteia, Repornirea Sistemului.

Instalarea arcload

arcload a fost scris pentru maşinile ce necesită kernel-uri pe 64 de biţi şi, din acest motiv, nu pot utiliza arcboot (ce nu poate fi compilat uşor ca un binar pe 64 de biţi). Rezolvă, de asemenea, particularităţile ce apar când încarcă kernel-urile direct din antetul de volum. Deci, acum ştiind despre ce este vorba, putem continua cu instalarea:

Cod 1.1: Instalarea arcload şi dvhtool

# emerge arcload dvhtool

Odată terminată instalarea, ar trebui să găsiţi binarul arcload în /usr/lib/arcload. Acum, există două fişiere:

  • sashARCS: Binarul pe 32 de biţi pentru sistemele Indy, Indigo2 (R4k), Challenge S şi O2
  • sash64: Binarul pe 64 de biţi pentru sistemele Octane/Octane2, Origin 200/2000 şi Indigo2 Impact

Utilizaţi dvhtool pentru a instala binarul corespunzător sistemului dvs. în antetul de volum:

Cod 1.1: Plasarea arcload în antetul de volum

(Utilizatorii Indy/Indigo2/Challenge S/O2)
# dvhtool --unix-to-vh /usr/lib/arcload/sashARCS sashARCS

(Utilizatorii Indigo2 Impact/Octane/Octane2/Origin 200/Origin 2000)
# dvhtool --unix-to-vh /usr/lib/arcload/sash64 sash64

Notă: Nu trebuie să utilizaţi numele de sashARCS sau sash64, decât dacă instalaţi în antetul de volum al unui mediu CD boot-abil. Pentru a boot-a normal de pe disc, le puteţi denumi cum doriţi.

Acum, utilizaţi dvhtool doar pentru a verifica dacă se află în antetul de volum.

Cod 1.1: Verificarea prezenţei arcload în antetul de volum

# dvhtool --print-volume-directory
----- directory entries -----
Entry #0, name "sash64", start 4, bytes 55859
#

Acum, fişierul arc.cf are o sintaxă similară cu C. Pentru mai multe detalii despre cum se configurează, consultaţi pagina arcload de pe site-ul wiki Linux/MIPS. Pe scurt, veţi defini un număr de opţiuni pe care le veţi activa sau dezactiva la boot, utilizând variabila OSLoadFilename.

Cod 1.1: Un exemplu de arc.cf

# Configurarea ARCLoad

# Unele opţiuni implicite...
append  "root=/dev/sda3";
append  "ro";
append  "console=ttyS0,9600";

# Definiţiile noastre principale. ip28 poate fi modificat, dacă doriţi.
ip28 {
        # Definirea unui kernel "funcţional"
        # Selectaţi setând OSLoadFilename="ip28(working)"
        working {
                description     "SGI Indigo2 Impact R10000\n\r";
                image system    "/working";
        }

        # Definirea unui kernel "nou"
        # Selectaţi setând OSLoadFilename="ip28(new)"
        new {
                description     "SGI Indigo2 Impact R10000 - Testing Kernel\n\r";
                image system    "/new";
        }

        # Pentru un kernel de depanare
        # Selectaţi setând OSLoadFilename="ip28(working,debug)"
        # sau OSLoadFilename="ip28(new,debug)"
        debug {
                description     "Debug console";
                append          "init=/bin/bash";
        }
}

Aceste informaţii sunt stocate în antetul de volum ca sash64 (sau sashARCS) ca în exemplul de mai jos. Kernel-urile ar trebui, de asemenea, plasate în antetul de volum.

Cod 1.1: Copierea arc.cf şi a kernel-ului în antetul de volum

# dvhtool --unix-to-vh arc.cf arc.cf
# dvhtool --unix-to-vh /usr/src/linux/vmlinux new

Când terminaţi, tot ce rămâne este să setaţi unele opţiuni în PROM. Consultaţi secţiunea despre Repornirea Sistemului.

1.  MicroServer-ele Cobalt -- Setarea CoLo

Instalarea CoLo

Pe server-ele Cobalt, aceste maşini deţin o componentă firmware mai puţin capabilă, instalată pe cip. Componenta BOOTROM a Cobalt este primitivă, în comparaţie cu SGI PROM şi are unele limitări serioase.

  • Există o limită de (aproximativ) 675 kOcteţi pentru imaginile de kernel. Mărimea curentă a versiunii de kernel 2.4 face aproape imposibilă crearea unei imagini de kernel de această mărime. Linux 2.6 iese din discuţie în totalitate.
  • Imaginile de kernel pe 64 de biţi nu sunt suportate de componenta firmware (deşi acestea sunt la un nivel foarte experimental pe maşinile Cobalt, momentan)
  • Aplicaţia shell este cel mult primitivă

Pentru a trece peste aceste limitări, o aplicaţie firmware alternativă, denumită CoLo (Cobalt Loader), a fost dezvoltată. Aceasta este o imagine BOOTROM ce poate fi, fie înscrisă în cipul flash din server-ul Cobalt, sau încărcată din aplicaţia firmware existentă.

Notă: Acest document vă va ghida în configurarea CoLo pentru a fi încărcat de aplicaţia firmware originală. Acesta este singura modalitate cu adevărat sigură şi recomandată pentru a seta CoLo.

Atenţie: Dacă doriţi, o puteţi înscrie în server şi să înlocuiţi în totalitate aplicaţia firmware originală -- oricum, sunteţi pe cont propriu în acest efort. Dacă ceva nu funcţionează, va trebui să îndepărtaţi fizic componenta BOOTROM şi să o reprogramaţi singuri cu aplicaţia firmware originală. Dacă nu sunteţi siguri cum să faceţi acest lucru, atunci NU rescrieţi memoria flash a maşinii. Nu ne asumăm nici o responsabilitate pentru orice se întâmplă dacă ignoraţi acest sfat.

Bun, am terminat cu avertismentele, să continuăm cu instalarea CoLo. Mai întâi începeţi cu instalarea pachetului.

Cod 1.1: Instalarea colo

# emerge colo

Cu acesta instalat (sperăm ca aţi citit mesajele ;-) ar trebui să puteţi să regăsiţi în directorul /usr/lib/colo două fişiere, colo-chain.elf: "imaginea de kernel" care va fi încărcată de aplicaţia firmware şi colo-rom-image.bin: o imagine ROM pentru a o înscrie în BOOTROM. Începem prin a mount-a /boot şi a stoca copia compresată a colo-chain.elf în /boot unde sistemul se aşteaptă să o găsească.

Cod 1.1: Plasarea CoLo în locaţia normală

# gzip -9vc /usr/lib/colo/colo-chain.elf > /boot/vmlinux.gz

Configurarea CoLo

Acum, când sistemul boot-ează pentru prima dată, vom încărca CoLo ce va afişa un meniu pe terminalul LCD posterior. Prima opţiune (cea considerată, de asemenea, implicită, după 5 secunde) este să boot-eze pe disc. Sistemul va încerca, apoi, să mount-eze prima partiţie de Linux găsită, şi să ruleze script-ul default.colo. Sintaxa este documentată în totalitate în documentaţia (puteţi arunca o privire în /usr/share/doc/colo-X.YY/README.shell.gz -- unde X.YY este versiunea instalată), şi este foarte simplă.

Notă: Doar un sfat: la instalarea kernel-ului, eu creez, de obicei, două imagini de kernel, kernel.gz.working -- o imagine de kernel cunoscută ca fiind funcţională, şi kernel.gz.new -- o imagine de kernel ce abia a fost compilată. Puteţi, fie să utilizaţi link-uri simbolice care să indice către imaginile de kernel "new" şi "working", sau pur şi simplu să redenumiţi imaginile de kernel.

Cod 1.1: Un exemplu simplu de default.colo

#:CoLo:#
mount hda1
load /kernel.gz.working
execute root=/dev/hda3 ro console=ttyS0,115200

Notă: CoLo va refuza să încarce un script ce nu începe cu linia #:CoLo:#. Gândiţi-vă la aceasta ca un echivalent a utilizării #!/bin/sh în aplicaţii script pentru shell.

Este, de asemenea, posibil să vi se pună o întrebare, cum ar fi care imagine de kernel şi configuraţie doriţi să încărcaţi, cu un timp de expirare implicit. Această configuraţie întreabă utilizatorul care kernel să fie utilizat şi execută imaginea aleasă. vmlinux.gz.new şi vmlinux.gz.working pot fi imaginile de kernel efectiv sau legături simbolice ce indică spre imaginile de kernel de pe acel disc. Argumentul 50 pentru select specifică faptul că ar trebui să ar trebui să înceapă cu prima opţiune ("Working") după 50/10 secunde.

Cod 1.1: Configuraţie bazată pe meniuri

#:CoLo:#

lcd "Mounting hda1"
mount hda1
select "Which Kernel?" 50 Working New

goto {menu-option}
var image-name vmlinux.gz.working
goto 3f
@var image-name vmlinux.gz.working
goto 2f
@var image-name vmlinux.gz.new

@lcd "Loading Linux" {image-name}
load /{image-name}
lcd "Booting..."
execute root=/dev/hda5 ro console=ttyS0,115200
boot

Consultaţi documentaţia din /usr/share/doc/colo-VERSIUNE pentru mai multe informaţii.

1.  Pregătirea Consolei Seriale

Bun, instalarea Linux, în stadiul actual, va boot-a fără probleme, dar presupune că veţi fi log-aţi pe un terminal fizic. Pe maşinile Cobalt, această presupunere nu este una bună -- nu există terminal fizic.

Notă: Aceia ce nu deţin luxul unui cip grafic suportat, pot omite această secţiune, dacă doresc.

Mai întâi, rulaţi un editor şi modificaţi fişierul /etc/inittab. În partea de jos a fişierului, veţi regăsi ceva asemănător cu:

Cod 1.1: Configuraţia inittab

# CONSOLA SERIALA
#c0:12345:respawn:/sbin/agetty 9600 ttyS0 vt102

# TERMINALE
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux

# Acţiunea în cazul "salutului cu trei degete".
ca:12345:ctrlaltdel:/sbin/shutdown -r now

Mai întâi, decomentaţi linia c0. Implicit, este setat să utilizeze un terminal cu o viteză de transmisie de 9600 bps. Pe server-ele Cobalt ar trebui să schimbaţi această rată la 115200 pentru a fi egală cu rata decisă de BOOT ROM. Aşa arată această secţiune pe maşina mea. Pe o maşină mai primitivă (spre ex. server-ele Cobalt), recomandăm, de asemenea, comentarea liniilor în legătură cu terminalele locale (de la c1 la c6), deoarece acestea obişnuiesc să aibă comportamente ciudate în momentul în care nu pot accesa /dev/ttyX.

Cod 1.1: Exemplu de parte din inittab

# CONSOLA SERIALA
c0:12345:respawn:/sbin/agetty 115200 ttyS0 vt102

# TERMINALE -- Acestea sunt nefolositoare pe o maşina qube
#c1:12345:respawn:/sbin/agetty 38400 tty1 linux
#c2:12345:respawn:/sbin/agetty 38400 tty2 linux
#c3:12345:respawn:/sbin/agetty 38400 tty3 linux
#c4:12345:respawn:/sbin/agetty 38400 tty4 linux
#c5:12345:respawn:/sbin/agetty 38400 tty5 linux
#c6:12345:respawn:/sbin/agetty 38400 tty6 linux

Acum, în cele din urmă... va trebui să-i specificăm sistemului că portul serial local poate fi considerat cu încredere un terminal securizat. Fişierul ce va trebui modificat este /etc/securetty. Acesta conţine o listă de terminale pe care sistemul de consideră de încredere. Pur şi simplu, adăugăm încă două linii, permiţând liniei seriale să fie utilizată pentru login pentru utilizatorul root.

Cod 1.1: Activarea posibilităţii de login pentru root pe consola serială

(/dev/ttyS0 -- numele tradiţional pentru primul port serial)
# echo 'ttyS0' >> /etc/securetty

(În ultimul timp, Linux îl denumeşte, de asemenea, /dev/tts/0 -- deci îl vom
adăuga şi pe acesta)
# echo 'tts/0' >> /etc/securetty

1.  Repornirea Sistemului

Ieşiţi din mediul chroot şi demount-aţi toate partiţiile mount-ate. Apoi tastaţi comanda magică pe care aţi aşteptat-o: reboot.

Cod 1.1: Ieşirea din chroot, demount-area tuturor partiţiilor şi repornirea

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

Notă: Utilizatorii Cobalt: Restul acestei secţiuni acoperă modul de configurare a SGI PROM pentru a boot-a arcboot/arcload şi a încărca Linux. Această operaţiune nu este valabilă pentru configurarea dispozitivelor server Cobalt. De fapt, aţi terminat -- nu mai este necesară nici o configurare pentru a efectua boot pentru prima dată, puteţi trece la secţiunea următoare: (Finalizarea Instalării Gentoo)

1.  Optimizarea SGI PROM

Acum, că aţi instalat aplicaţia bootloader, sunteţi gata să reporniţi maşina.

Cod 1.1: Repornirea

(Ieşirea din mediul chroot)
# exit

(Demount-area discurilor)
# umount /gentoo/boot
# umount /gentoo

(Repornirea)
# reboot

După ce aţi repornit, navigaţi în System Maintenance Menu şi selectaţi Enter Command Monitor (5) ca atunci când aţi efectuat boot din reţea.

Cod 1.1: Configurarea PROM pentru boot-area Gentoo

1) Start System
2) Install System Software
3) Run Diagnostics
4) Recover System
5) Enter Command Monitor

Option? 5
Command Monitor.  Type "exit" to return to the menu.

(Setaţi unele opţiuni ce sunt comune, atât pentru arcload cât şi pentru arcboot)

(Scrieţi locaţia Antetului de Volum)
>> setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8)

(Boot-area Automată a Gentoo)
>> setenv AutoLoad Yes

(Setarea zonei de fus orar)
>> setenv TimeZone EST5EDT

(Utilizarea consolei seriale - utilizatorii de adaptoare grafice ar trebui să aibă "g" în loc de "d1" (unu))
>> setenv console d1

(Setarea ratei de transmitere pentru consola serială. Aceasta este opţională,         )
(setarea implicită este 9600, deşi se pot utiliza rate de până la 38400, dacă doriţi. )
>> setenv dbaud 9600

Acum, următoarele setări depind de cum boot-aţi sistemul.

Setările pentru boot-area direct de pe antetul de volum

Această secţiune este pentru completare. Este recomandat ca utilizatorii să instaleze arcboot sau arcload în loc.

Notă: Aceasta funcţionează doar pe Indy, Indigo2 (R4k) şi Challenge S.

Cod 1.1: Setări PROM pentru boot-area de pe antentul de volum

(<root device> = Partiţia root a Gentoo, ex. /dev/sda3)
>> setenv OSLoadPartition <root device>

(Pentru a afişa imaginile de kernel disponibile, tastaţi "ls")
>> setenv OSLoader <kernel name>
>> setenv OSLoadFilename <kernel name>

(Definiţi parametrii de kernel pe care doriţi să-i utilizaţi)
>> setenv OSLoadOptions <kernel parameters>

Dacă doriţi să încercaţi un kernel fără a modifica parametrii de kernel, puteţi face acest lucru utilizând comanda PROM boot -f:

Cod 1.1: Boot-area fără a modifica variabilele de mediu

(Boot-area unui kernel "nou", cu opţiuni adiţionale)
# boot -f new root=/dev/sda3 ro

Setări pentru arcload

arcload utilizează opţiunea OSLoadFilename pentru a specifica care opţiuni să seteze din arc.cf. Fişierul de configurare este în esenţă, un script cu blocuri ce definesc imaginile de boot pentru diversele sisteme. Astfel, setând OSLoadFilename=mysys(serial) activează setările pentru blocul mysys, apoi setează opţiunile suprascrise în serial.

În exemplul de mai sus, avem un bloc definit, ip28 cu opţiunile disponibile working, new şi debug. Vom defini variabilele PROM, în felul următor:

Cod 1.1: Setările PROM în cazul utilizării arcload

(Selectaţi arcload ca aplicaţie bootloader:- sash64 sau sashARCS)
>> setenv OSLoader sash64

(Utilizaţi imaginea de kernel "working" definită în secţiunea "ip28" a fişierului arc.cf)
>> setenv OSLoadFilename ip28(working)

Setări pentru arcboot

arcboot îşi încarcă fişierul de configurare şi imaginile de kernel din partiţia /boot, ce trebuie să fie formatată ca EXT2 sau EXT3. Astfel, OSLoadPartition trebuie să indice către acea partiţie. OSLoader ar trebui să indice către binarul arcboot din antetul de volum, iar OSLoadFilename este numele imaginii utilizate.

Cod 1.1: Setările PROM în cazul utilizării arcboot

(Citeşte configuraţia şi imaginile de kernel de pe discul SCSI ID# 1, partiţia 0 -- sda1)
>> setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0)

(Utilizarea arcboot ca bootloader)
>> setenv OSLoader arcload

(Care imagine din arcboot.conf să fie încărcată)
>> setenv OSLoadFilename working

Când testaţi imagini de kernel cu arcboot, puteţi specifica o imagine alternativă, în modul următor (unde new este imaginea alternativă):

Cod 1.1: Specificarea unei imagini alternative

# boot new

Gata

Acum sunteţi pregătiţi să utilizaţi Gentoo! Boot-aţi în instalarea dvs. Gentoo şi terminaţi cu (Finalizarea Instalării dvs. Gentoo).

Actualizat la 27 Februarie 2006

Versiunea originală a acestui document a fost actualizată ultima dată la 9 Mai 2011

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.