SRM Firmware Howto
Version originale : David Mosberger <mailto:davidm@azstar-
net.com> (Traduction francaise : Nicolas Jadot
(
[email protected]))
v0.5, 17 August 1996
Ce document decrit la maniere de demarrer une station Linux/Alpha
utilisant le _f_i_r_m_w_a_r_e SRM, lequel est normalement utilise pour demar-
rer Digital Unix. (NDT : le _f_i_r_m_w_a_r_e est un micro-code embarque sur
une puce, en quelque sorte l'equivalent du BIOS des PC) En general, il
est preferable d'utiliser MILO a la place du programme aboot sachant
que MILO est parfaitement adapte aux besoins de Linux. Cependant, MILO
n'existe pas sur tous les systemes et ne permet pas encore de demarrer
sur un reseau. Dans ces cas la, utiliser la console SRM est peut-etre
la bonne solution.
A moins que vous soyiez interesses par les details techniques, vous
pouvez passer directement a la section ``''
11.. CCoommmmeenntt SSRRMM ddeemmaarrrree--tt--iill uunn ssyysstteemmee dd''eexxppllooiittaattiioonn ??
Toutes les versions de SRM peuvent demarrer a partir d'un disque SCSI
et les versions destinees aux plates-formes recentes, comme les Noname
et AlphaStations, peuvent de plus demarrer depuis une disquette. Le
demarrage reseau via bootp est egalement supporte. Notez que les
anciennes versions de SRM (notamment celles pour Jensen) _n_e _p_o_u_v_a_i_e_n_t
_p_a_s demarrer depuis une disquette. Le demarrage depuis un disque IDE
n'est pas supporte.
Le demarrage de Linux avec SRM s'effectue en deux etapes : d'abord,
SRM charge et transfere le controle a un chargeur secondaire. Ensuite,
ce chargeur secondaire met en place l'environnement de Linux, lit
l'image du noyau depuis un systeme de fichiers sur disque et donne la
main a Linux.
A l'heure actuelle il existe deux chargeurs secondaires pour Linux :
le chargeur _b_r_u_t fourni avec le noyau Linux et aboot, distribue
separement. Ces deux chargeurs sont decrits en details ci-dessous.
11..11.. CChhaarrggeerr llee cchhaarrggeeuurr sseeccoonnddaaiirree
SRM est ignorant des systemes de fichiers et des partitions des
disques. Il s'attend simplement a ce que le chargeur secondaire occupe
un certain nombre de secteurs physiques consecutifs, commencant a une
adresse donnee. L'information concernant la taille du chargeur
secondaire et l'adresse de son premier secteur est stockee dans les
512 premiers octets. Plus precisement , l'entier long occupant
l'adresse 480 contient la _t_a_i_l_l_e du chargeur secondaire et celui
occupant l'adresse 488 donne le _n_o_m_b_r_e _d_e _s_e_c_t_e_u_r_s de decalage
jusqu'au debut du chargeur. Le premier secteur contient egalement un
drapeau a l'adresse 496 qui vaut toujours 0 et une somme de controle a
l'adresse 504. Cette somme de controle est simplement la somme des 63
premiers entiers longs du premier secteur.
Si cette somme est correcte, SRM continue et lit le nombre de secteurs
indique par la _t_a_i_l_l_e en commencant par celui indique dans le champ
_n_u_m_e_r_o _d_e _s_e_c_t_e_u_r et les place en memoire _v_i_r_t_u_e_l_l_e a l'adresse
0x20000000. Si la lecture se termine avec succes, SRM effectue un saut
a l'adresse 0x20000000.
22.. LLee cchhaarrggeeuurr bbrruutt
Les sources de ce chargeur peuvent etre trouves dans le repertoire
linux/arch/alpha/boot
des sources du noyau Linux. Ce programme charge le noyau Linux en
lisant START_SIZE octets en commencant a l'adresse BOOT_SIZE+512
(egalement en octets). Les constantes START_SIZE et BOOT_SIZE sont
definies dans le fichier d'en-tete linux/include/asm-alpha/system.h.
START_SIZE doit etre au moins aussi eleve que la taille de l'image du
noyau (i.e, la somme des tailles des segments .text, .data, et .bss ).
De meme, BOOT_SIZE doit etre au moins aussi eleve que l'image du
chargeur. Ces deux constantes doivent avoir comme valeur un multiple
entier de la taille d'un secteur, soit 512 octets. Les valeurs par
defaut sont 2Mo pour START_SIZE et 16Ko pour BOOT_SIZE. Notez que si
vous voulez demarrer depuis une disquette de 1.44Mo, vous devez
reduire START_SIZE a 1400Ko et vous assurer que la taille du noyau que
vous voulez demarrer ne depasse pas cette valeur.
Pour construire un chargeur brut, tapez simplement make rawboot dans
/usr/src/linux. Ceci devrait produire dans arch/alpha/boot les
fichiers suivants :
ttoooollss//llxxbboooott:
Le premier secteur du disque. Il contient l'adresse et la taille
du prochain fichier au format decrit ci-dessus.
ttoooollss//bboooottllxx:
Le lanceur brut qui chargera le fichier ci-dessous
vvmmlliinnuuxx..nnhh:
L'image brute du noyau constituee des segments .text, .data et
.bss du fichier objet /usr/src/linux/vmlinux. L'extension .nh
indique que ce fichier n'a pas l'entete d'un fichier objet.
La concatenation de ces trois fichiers devrait etre ecrite sur le
disque a partir duquel vous voulez demarrer. Par exemple, pour
demarrer depuis une disquette, inserez une disquette vierge dans le
lecteur, soit /dev/fd0 et ensuite tapez :
cat tools/lxboot tools/bootlx vmlinux >/dev/fd0
Vous pouvez maintenant arreter le systeme et demarrer depuis une
disquette en utilisant la commande boot dva0.
33.. LLee cchhaarrggeeuurr aabboooott
Si vous utilisez le _f_i_r_m_w_a_r_e SRM, aboot est la meilleure facon de
demarrer Linux. Il supporte :
+o demarrage direct depuis divers systemes de fichiers (ext2, ISO9660,
et UFS, le systeme de fichiers de Digital Unix),
+o lancement de fichiers objets executables (ELF et ECOFF),
+o lancement de noyaux compresses,
+o demarrage par reseau (en utilisant le protocole bootp),
+o table de partitions au format Digital Unix (compatible avec les
tables de partitions de BSD),
+o demarrage interactif et configurations par defaut des consoles SRM
qui n'acceptent pas les longues chaines d'option.
33..11.. SSee pprrooccuurreerr eett iinnssttaalllleerr aabboooott
Les codes sources les plus recents d'aboot sont disponibles a
l'adresse
ftp://ftp.azstarnet.com/pub/linux/axp/aboot
<
ftp://ftp.azstarnet.com/pub/linux/axp/aboot>. La description de ce
manuel s'applique a aboot pour les versions 0.5 et suivantes.
Une fois que vous avez telecharge et extrait l'archive tar, jetez un
oeil aux fichiers README et INSTALL pour lire les directives
d'installation. En particulier, assurez vous que les variables, dans
les fichiers Makefile et include/config.h sont correctes vis-a-vis de
votre environnement . Normalement, vous ne devriez pas avoir a
changer quoi que ce soit pour compiler sous Linux, mais c'est toujours
une bonne chose de verifier. Si la configuration vous convient, tapez
simplement make pour lancer la compilation (si vous n'effectuez pas
cette operation sous Linux, sachez que aboot requiert GNU make).
Apres l'execution de make, le repertoire aboot devrait contenir les
fichiers suivants :
aabboooott
L'executable reel (fichier objet ECOFF ou ELF),
bboooottllxx
Comme ci-dessus, mais ce fichier ne contient que les segments
text, data et bss (ce fichier n'est pas un fichier objet),
ssddiisskkllaabbeell//wwrriitteebboooott
Un utilitaire pour installer aboot sur un disque dur,
ttoooollss//ee22wwrriitteebboooott
Un utilitaire pour installer aboot sur un systeme de fichiers
ext2 (n'est en general utilise que pour les disquettes),
ttoooollss//iissoommaarrkkbboooott
Un utilitaire pour installer aboot sur un systeme de fichiers
iso9660 (utilise par les distributeurs de CD-ROM),
ttoooollss//aabboooottccoonnff
Un utilitaire pour configurer aboot s'il est installe.
33..22.. IInnssttaallllaattiioonn ssuurr ddiissqquueettttee
Le lanceur peut etre installe sur une disquette en utilisant la
commande e2writeboot (note : ceci ne peut se faire sur un Jensen car
son _f_i_r_m_w_a_r_e n'implante pas le demarrage depuis une disquette). Cette
commande necessite que le disque ne soit pas trop fragmente car elle a
besoin de trouver suffisament de secteurs contigus pour stocker
l'image entiere de aboot (actuellement, environ 90Ko). Si e2writeboot
echoue a cause de ca, reformatez la disquette et reessayez (par ex.,
avec fdformat(1)). Par exemple, la procedure suivante installe aboot
sur une disquette en supposant que la disquette est dans le lecteur
correspondant a /dev/fd0 :
fdformat /dev/fd0
mke2fs /dev/fd0
e2writeboot /dev/fd0 bootlx
33..33.. IInnssttaallllaattiioonn ssuurr ddiissqquuee dduurr
Sachant que la commande e2writeboot peut echouer sur un disque
hautement fragmente et comme le reformattage d'un disque dur ne se
fait pas sans peine, il est generalement plus sur d'installer aboot
sur un disque dur en utilisant la commande swriteboot. swriteboot
necessite que les premiers secteurs soient reserves aux procedures de
demarrage. Nous suggerons que le disque soit partitionne de maniere a
ce que la premiere partition commence a une adresse correspondant a
2048 secteurs. Cela laisse 1Mo d'espace ibre pour stocker aboot. Sur
un disque partitionne de cette facon , il est alors possible
d'installer aboot comme decrit ci-dessous (en supposant que le disque
correspond a /dev/sda.) :
swriteboot /dev/sda bootlx
Sur un Jensen, vous devrez laisser un peu plus d'espace, sachant que
vous devrez egalement stocker le noyau a cet endroit - 2Mo devraient
suffire en utilisant une image compressee. Utilisez swriteboot comme
decrit a la section ``'' pour ecrire bootlx avec le noyau Linux.
33..44.. IInnssttaallllaattiioonn ssuurr CCDD--RROOMM
Pour construire un CD-ROM amorcable avec SRM, construisez simplement
aboot comme decrit ci-dessus. Assurez-vous ensuite que le fichier
bootlx est present sur le systeme de fichiers iso9660 (e.g., copiez
bootlx dans le repertoire ou est monte le systeme de fichiers) , et
lancez mkisofs sur ce repertoire). Apres cela, la seule chose restant
a faire est de marquer le systeme de fichiers comme amorcable avec
SRM. Cela est realise grace a une commande de la forme :
isomarkboot filesystem bootlx
La commande ci-dessus necessite que filesystem est un fichier
contenant le systeme de fichiers iso9660 et que bootlx a ete copie
dans la racine de ce systeme de fichiers. C'est tout !
33..55.. CCoonnssttrruuiirree uunn nnooyyaauu LLiinnuuxx
Un noyau Linux amorcable peut etre construit par les etapes suivantes.
Durant le make config, assurez-vous de repondre "oui" (_"_y_e_s_") a la
question concernant le lancement du noyau par SRM.
cd /usr/src/linux
make config
make dep
make boot
La derniere commande construira le fichier arch/alpha/boot/vmlinux.gz
qui peut alors etre copie sur le disque a partir duquel vous desirez
demarrer. Dans notre exemple precedent concernant la disquette, cela
donnerai :
mount /dev/fd0 /mnt
cp arch/alpha/boot/vmlinux.gz /mnt
umount /mnt
33..66.. DDeemmaarrrreerr LLiinnuuxx
Avec le _f_i_r_m_w_a_r_e SRM et aboot installe, le demarrage de Linux
s'effectue generalement avec une commande de la forme :
boot _d_e_v_i_c_e_n_a_m_e -fi _f_i_l_e_n_a_m_e -fl _f_l_a_g_s
Les arguments _f_i_l_e_n_a_m_e et _f_l_a_g_s sont optionels. S'ils ne sont pas
specifies, SRM utilise les valeurs par defaut contenues dans les
variables d'environnement BOOT_OSFILE et BOOT_OSFLAGS. La syntaxe et
la signification de ces deux arguments est decrite plus en detail ci-
dessous.
33..66..11.. NNoomm dduu ffiicchhiieerr bboooott
L'argument _f_i_l_e_n_a_m_e est de la forme :
[_n/]_f_i_l_e_n_a_m_e
_n est un simple nombre dans l'intervalle 1..8 qui donne le numero de
la partition de demarrage. _f_i_l_e_n_a_m_e est le chemin d'acces au fichier a
lancer. Par exemple, pour demarrer depuis la deuxieme partition du
sixieme disque SCSI, vous entreriez :
boot dka600 -file 2/vmlinux.gz
Ou, pour demarrer depuis le premier lecteur de disquette :
boot dva0 -file vmlinux.gz
Si un disque n'a pas de table des partitions, aboot considere que le
disque contient une partition ext2 commencant au premier bloc du
disque. Cela permet de demarrer depuis une disquette.
Le numero de partition 0 est utilise pour demander le demarrage depuis
un disque qui ne contient pas (encore) de systeme de fichiers. Si l'on
specifie le numero de "partition" 0, aboot considere que le noyau
Linux suit directement l'image de aboot. Une telle chose peut etre
realisee avec la commande swriteboot. Par exemple, pour configurer un
demarrage sans systeme de fichiers depuis /dev/sda, on pourrait
utiliser la commande :
swriteboot /dev/sda bootlx vmlinux.gz
Demarrer un systeme de cette facon n'est pas obligatoirement
necessaire. La raison d'etre de cette fonctionnalite est de permettre
l'installation de Linux sur un systeme qui ne peut demarrer depuis une
disquette (e.g., le Jensen).
33..66..22.. DDrraappeeaauuxx ddee ddeemmaarrrraaggee
Plusieurs drapeaux de demarrage peuvent etre specifies. La syntaxe en
est :
-flags "options..."
Ou "options..." est une combinaison des options suivantes (separees
par des espace). Il y a encore plus d'options, en fonction des pilotes
que le noyau a installe. Les options listees ci-apres ne sont la que
pour illustrer l'idee generale :
llooaadd__rraammddiisskk==11
Copie le systeme de fichiers racine depuis une disquette vers un
disque virtuel en memoire avant de lancer le systeme. Ce disque
virtuel sera utilise en lieu et place du peripherique racine.
Ceci est utile pour demarrer Linux sur une machine qui ne
possede qu'un lecteur de disquettes.
ffllooppppyy==_s_t_r
rroooott==_d_e_v
Selectionne le peripherique _d_e_v comme systeme de fichiers
racine. Le peripherique peut etre specifie comme la combinaison
des numeros _m_a_j_o_r_/_m_i_n_o_r du fichier de peripherique en
hexadecimal (e.g., 0x802 pour /dev/sda2) ou un nom de fichier de
peripherique (e.g.,/dev/fd0, /dev/sda2).
ssiinnggllee
Lance le systeme en mode mono-utilisateur.
kkggddbb
Autorise _k_e_r_n_e_l_-_g_d_b (ne fonctionne que si CONFIG_KGDB est active
; un deuxieme systeme Alpha doit etre connecte par voie serie
pour que cela fonctionne).
Quelques implementations de SRM (e.g., celle du Jensen) sont limitees
et n'autorisent que les chaines d'options de courte longueur (e.g., au
plus 8 caracteres). Dans ce cas la, aboot peut etre demarre avec le
drapeau de demarrage "i". Avec ce drapeau, aboot demandera a
l'utilisateur d'entrer une chaine d'options pouvant atteindre 256
caracteres. Par exemple :
boot dka0 -fl i
aboot> 3/vmlinux.gz root=/dev/sda3 single
Comme demarrer de cette facon devient rapidement penible , aboot
autorise l'utilisateur a definir des raccourcis pour les lignes de
commande frequemment utilisees. En particulier, une option donnee par
un chiffre -- option --> (0-9) demande a aboot d'utiliser l'option
correspondante dans le fichier /etc/aboot.conf. Un exemple de fichier
aboot.conf est donne ci-dessous :
#
# aboot default configurations
#
0:3/vmlinux.gz root=/dev/sda3
1:3/vmlinux.gz root=/dev/sda3 single
2:3/vmlinux.new.gz root=/dev/sda3
3:3/vmlinux root=/dev/sda3
8:- root=/dev/sda3 # fs-less boot of raw kernel
9:0/vmlinux.gz root=/dev/sda3 # fs-less boot of (compressed) ECOFF kernel
-
Avec ce fichier, la commande
boot dka0 -fl 1
correspond exactement a la commande de demarrage donnee ci-dessus. Il
est cependant facile d'oublier la correspondance entre les numeros et
les chaines d'options. Pour eviter ce probleme, demarrez avec l'option
"h" et aboot affichera le contenu de /etc/aboot.conf avant d'afficher
l'invite demandant la chaine d'option entiere.
En conclusion, meme si aboot demande l'entree d'une chaine d'options,
il est possible d'entrer un simple caractere ("i", "h", ou "0"-"9")
pour obtenir le meme resultat que si le drapeau avait ete specifie sur
la ligne de commande de demarrage. Par exemple, vous pouvez demarrer
avec le drapeau "i", taper ensuite "h" (suivi par entree) pour vous
rappeler le contenu de /etc/aboot.conf
33..66..22..11.. SSeelleeccttiioonnnneerr llaa ppaarrttiittiioonn ddee //eettcc//aabboooott..ccoonnff
Quand aboot est installe sur un disque dur, il a besoin de savoir sur
quel partition il lui faut chercher le fichier /etc/aboot.conf.
Nouvellement compile, aboot cherchera sur la deuxieme partition
(/dev/sda2). Comme il serait contraignant d'avoir a recompiler aboot
uniquement pour changer le numero de la partition, abootconf autorise
a directement modifier aboot deja installe. Par exemple, si vous
desiriez changer aboot afin qu'il utilise la _t_r_o_i_s_i_e_m_e partition du
disque /dev/sda, vous utiliseriez la commande :
abootconf /dev/sda 3
Vous pouvez verifier le reglage courant simplement en omettant le
numero de partition. Alors, abootconf /dev/sda affichera la partition
actuellement selectionnee. Notez que aboot etre deja installe pour que
cette commande reussisse. Aussi, lors de l'installation d'un nouvel
aboot, le numero de partition redeviendra celui par defaut (i.e., il
sera necessaire de relancer abootconf).
Depuis la version 0.5 de aboot, il est egalement possible de
selectionner la partition contenant le fichier aboot.conf depuis la
ligne de commande de demarrage. Cela peut etre fait avec une ligne de
commande de la forme _a:_b ou _a est le numero de la partition contenant
/etc/aboot.conf et _b est une option d'une lettre comme decrit plus
haut (0-9, i, ou h). Par exemple, si vous tapez boot -fl "3:h" dka100
le systeme demarre depuis SCSI ID 1, charge /etc/aboot.conf depuis la
troisieme partition, affiche son contenu a l'ecran et attend que vous
entriez les options de demarrage.
33..77.. DDeemmaarrrraaggee rreesseeaauu
Deux etapes preliminaires sont necessaires avant que Linux puisse
demarrer par un reseau. Premierement, vous devrez positionner les
variables d'environnement de SRM pour permettre le demarrage _v_i_a le
protocole bootp et deuxiemement vous devrez configurer une autre
machine comme serveur de demarrage. Reportez-vous a la documentation
de SRM fournie avec votre machine pour toute information sur la mise
en place de bootp. Configurer le serveur de demarrage depend
etroitement du systeme d'exploitation de cette machine, mais
typiquement cela necessite de lancer le programme bootpd en tache de
fond apres avoir configure le fichier /etc/bootptab. Le fichier
bootptab possede une entree par machine cliente autorisee a demarrer
depuis le serveur. Par exemple, si vous voulez demarrer la machine
myhost.cs.arizona.edu, une entree de la forme suivante serait
necessaire :
myhost.cs.arizona.edu:\
:hd=/remote/:bf=vmlinux.bootp:\
:ht=ethernet:ha=08012B1C51F8:hn:vm=rfc1048:\
:ip=192.12.69.254:bs=auto:
Cette entree considere que l'adresse Ethernet de la machine est
08012B1C51F8 et que son adresse IP est 192.12.69.254. L'adresse
Ethernet peut etre trouvee grace a la commande show device de la
console SRM ou, si Linux est lance, avec la commande ifconfig.
L'entree precise egalement que si le client ne declare pas le
contraire, le fichier qui sera lance sera le fichier vmlinux.bootp du
repertoire /remote. Pour plus d'informations sur la configuration de
bootpd, reportez-vous a sa page de manuel.
Ensuite, construiser aboot grace a la commande make netboot. Assurez-
vous que le noyau que vous desirez lancer a deja ete construit. Par
defaut, le Makefile du programme aboot utilise le noyau
/usr/src/linux/arch/alpha/boot/vmlinux.gz (editez le Makefile si vous
desirez utiliser un autre chemin d'acces). Le resultat de make netboot
est un fichier nomme vmlinux.bootp contenant aboot _e_t le noyau Linux,
pret pour le demarrage par reseau.
Enfin, copiez vmlinux.bootp dans le repertoire du serveur de
demarrage. Dans l'exemple plus haut, vous l'auriez copie dans le
repertoire /remote/. Ensuite, allumez la machine client et demarrez
la, en specifiant l'adaptateur Ethernet comme peripherique de
demarrage. SRM nomme typiquement le premier adaptateur Ethernet ewa0,
donc, pour demarrer depuis ce peripherique, vous utiliserez la
commande :
boot ewa0
Les options -fi et -fl sont utilisable comme d'habitude. En
particulier, vous pouvez demander a aboot d'attendre l'entree
d'arguments pour le noyau Linux en specifiant l'option -fl i.
44.. PPaarrttaaggeerr uunn ddiissqquuee aavveecc DDiiggiittaall UUnniixx
Malheureusement, Digital Unix ne sait rien de Linux, aussi, partager
un disque unique entre les deux systemes n'est pas totalement simple.
Cependant, ce n'est pas une tache difficile si vous suivez les
conseils prodigues dans cette section. Nous considererons que vous
utilisez la version 0.5 ou posterieure de aboot.
44..11.. PPaarrttiittiioonnnneerr llee ddiissqquuee
Premierement et avant tout : n'utilisez _j_a_m_a_i_s les programmes de
partitionnement de Linux (minlabel ou fdisk) sur un disque egalement
utilise par Digital Unix. Le programme Linux minlabel utilise le meme
format de table de partitions que le programmme disklabel de Digital
Unix, mais il existe des incompatibilites avec les donnees ecrites par
minlabel, alors Digital Unix refusera tout simplement la table de
partitions engendree par minlabel. Pour configurer une partition
Linux ext2 sous Digital Unix, vous allez devoir changer l'entree
_d_i_s_k_t_a_b de votre disque. Pour illustrer notre propos, supposons que
vous avez un disque rz26 (un disque de 1Go) sur lequel vous voulez
installer Linux. L'entree _d_i_s_k_t_a_b sous Digital Unix v3.2 ressemble a
(voyez le fichier /etc/disktab) :
rz26|RZ26|DEC RZ26 Winchester:\
:ty=winchester:dt=SCSI:ns#57:nt#14:nc#2570:\
:oa#0:pa#131072:ba#8192:fa#1024:\
:ob#131072:pb#262144:bb#8192:fb#1024:\
:oc#0:pc#2050860:bc#8192:fc#1024:\
:od#393216:pd#552548:bd#8192:fd#1024:\
:oe#945764:pe#552548:be#8192:fe#1024:\
:of#1498312:pf#552548:bf#8192:ff#1024:\
:og#393216:pg#819200:bg#8192:fg#1024:\
:oh#1212416:ph#838444:bh#8192:fh#1024:
Les champs interessants ici sont oit/?/; et p_?, ou _? designe une
lettre de l'intervalle a-h (les huit premieres partitions). La valeur
o indique l'adresse du debut de la partition (en nombre de secteurs)
et la valeur p donne la taille de la partition (egalement en nombre de
secteurs). Reportez-vous a disktab(4) pour plus d'informations. Notez
que Digital Unix _a_i_m_e definir des partitions qui se chevauchent. Pour
les entrees ci-dessus, l'organisation des partitions ressemble a cela
(vous pouvez verifier en ajoutant les diverses valeurs o et p) :
a b d e f
|---|-------|-----------|-----------|-----------|
c
|-----------------------------------------------|
g h
|-----------------|-----------------|
Digital Unix insiste pour que la partition a commence a l'adresse 0 et
que la partition c couvre l'etendue du disque. A part cela, vous
pouvez organiser la table des partitions comme bon vous semble.
Supposons que vous avez Digital Unix utilisant la partition g et que
vous voulez installer Linux sur la partition h avec la partition b
comme partition de swap. Pour obtenir cette organisation sans detruire
la partition Digital Unix existante, vous devez configurer
explicitement les types des partitions. Vous pouvez realiser ceci en
ajoutant un champ t pour chaque partition. Dans notre cas, nous
ajoutons la ligne suivante a l'entree _d_i_s_k_t_a_b.
:ta=unused:tb=swap:tg=4.2BSD:th=reservd8:
Pourquoi avons-nous marque la partition h comme "reservd8" plutot que
comme "ext2" ? Bon, Digital Unix ne connait rien de Linux. Une
partition de type "ext2" correspond a une valeur numerique de 8, et
Digital Unix utilise la chane "reservd8" pour cette valeur. Donc, dans
le langage de Digital Unix, "reservd8" signifie "ext2". Ceci etait la
partie hardue. Maintenant, il ne nous reste plus qu'a installer la
nouvelle entree _d_i_s_k_t_a_b sur le disque. Considerons que le disque a
l'ID SCSI 5. Dans ce cas, nous faisons :
disklabel -rw /dev/rrz5c rz26
Vous pouvez verifier que tout va bien en lisant le _d_i_s_k_l_a_b_e_l grace a
la commande disklabel -r /dev/rrz5c. A ce point, vous pouvez vouloir
redemarrer Digital Unix et vous assurer que la partition Digital Unix
est encore presente et en bon etat. Si c'est le cas, vous pouvez
arreter la machine et commencer l'installation de LInux. Prenez soin
de sauter l'etape de partitionnement du disque lors de la procedure
d'installation. Sachant que nous avons deja installe une table de
partitions correcte, vous devriez etre capable de proceder a cette
operation et de selectionner la huitieme partition comme partition
racine de Linux et la deuxieme comme partition de swap. Si le disque
est le deuxieme disque SCSI de la machine, les noms de peripheriques
pour ces deux partitions seront /dev/sdb8 et /dev/sdb2, respectivement
(notez que Linux utilise des lettre pour designer les disques et des
numeros pour designer les partitions, exactement a l'inverse de
Digital Unix ; le schema de Linux a plus de sens bien sur ;-).
44..22.. IInnssttaalllleerr aabboooott
_P_r_e_m_i_e_r _o_b_s_t_a_c_l_e : avec le _f_i_r_m_w_a_r_e --> -- SRM, vous ne pouvez
demarrer qu'un et un seul systeme d'exploitation par disque. Pour
cette raison, il est generalement preferable de disposer d'au moins
deux disques SCSI dans une machine sur laquelle vous desirez utiliser
aussi bien Linux que Digital Unix. Bien sur vous pouvez aussi demarrer
Linux depuis une disquette si la vitesse importe peu, ou par un
reseau, si vous disposez d'un serveur bootp. Mais dans cette partie,
nous considererons que vous souhaitez demarrer Linux depuis un disque
contenant une ou plusieurs partitions Digital Unix.
_D_e_u_x_i_e_m_e _o_b_s_t_a_c_l_e : installer aboot sur un disque partage avec Digital
Unix rend les premiere et troisieme partitions inutilisables (sachant
qu'elles doivent commencer a l'adresse 0). Pour cette raison, nous
vous recommandons de changer la taille de la partition a a une valeur
juste suffisament elevee pour contenir aboot (1Mo devrait convenir).
Une fois que ces deux obstacles sont surmontes, installer aboot est
aussi simple que d'habitude : comme les partitions a et c vont
recouvrir aboot , nous devons specifier a swriteboot que ceci est
intentionnel . Nous pouvons le faire sous Linux avec une ligne de
commande de la forme suivante (de nouveau, nous supposerons que l'on
veut installer aboot sur le deuxieme disque SCSI) :
swriteboot -f1 -f3 /dev/sdb bootlx
Le parametre -f1 signifie que nous voulons forcer l'ecriture de bootlx
meme s'il recouvre la premiere partition. La meme chose s'applique a
la troisieme partition.
C'est tout. Vous devriez desormais pouvoir arreter le systeme et
lancer Linux depuis le disque dur. Dans notre exemple, la ligne de
commande SRM pour le faire serait :
boot dka5 -fi 8/vmlinux.gz -fl root=/dev/sdb8