|
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ă |
# mkdir /boot/etc
# cp /etc/arcboot.conf.sample /boot/etc/arcboot.conf
# ln -s /boot/etc/arcboot.conf /etc/arcboot.conf
# (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 |
label=working
image=/vmlinux
append="root=/dev/sda3"
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 |
# dvhtool --unix-to-vh /usr/lib/arcload/sashARCS sashARCS
# 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 |
append "root=/dev/sda3";
append "ro";
append "console=ttyS0,9600";
ip28 {
working {
description "SGI Indigo2 Impact R10000\n\r";
image system "/working";
}
new {
description "SGI Indigo2 Impact R10000 - Testing Kernel\n\r";
image system "/new";
}
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 |
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 |
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 |
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
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 |
c0:12345:respawn:/sbin/agetty 115200 ttyS0 vt102
|
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ă |
# echo 'ttyS0' >> /etc/securetty
# 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 |
# exit
# umount /gentoo/boot
# umount /gentoo
# 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.
>> setenv SystemPartition scsi(0)disk(1)rdisk(0)partition(8)
>> setenv AutoLoad Yes
>> setenv TimeZone EST5EDT
>> setenv console d1
>> 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 |
>> setenv OSLoadPartition <root device>
>> setenv OSLoader <kernel name>
>> setenv OSLoadFilename <kernel name>
>> 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 -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 |
>> setenv OSLoader sash64
>> 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 |
>> setenv OSLoadPartition scsi(0)disk(1)rdisk(0)partition(0)
>> setenv OSLoader arcload
>> 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).
|