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