Page suivantePage précédenteTable des matières

3. Raid amorçable

Je ne vais pas traiter les bases de l'installation d'un raid 0, 1 ou 5 sous Linux, ceci a déjà été traité ailleurs. Le problème traité ici est la mise en place sur une racine amorçable avec un LILO standard. La documentation fournie avec les sources LILO (pas les pages de manuel) et avec les outils raidtools-0.90, couvrent respectivement les détails du boot et des paramètres généraux de boot sur un raid.

Deux scénarios sont envisagés ici. La mise en place d'un raid amorçable et la conversion d'un système de fichier non RAID en raid amorçable sans perte de données

3.1 Démarrage d'un RAID 1 avec un LILO standard

Pour rendre les informations de démarrage redondantes et faciles à maintenir, préparez un petit raid 1 et montez-le sous le répertoire /boot de votre disque système. LILO ne connaît pas les périphériques 0x9?? et ne peut pas trouver les informations au démarrage car le sous-système raid n'est pas encore actif. L'astuce est que l'on peut donner à LILO les informations sur la géométrie des disques, et, grâce à cela, LILO peut déterminer la position des informations dont il a besoin pour charger le noyau, même si celles-ci sont sur la partition raid 1. Cela vient du fait que la partition raid 1 a pour seule différence avec une partition standard le super-bloc raid situé en fin de partition. Le raid amorçable doit se situer sur les 1024 premiers mega-octets du disque. En théorie, le début d'une partition raid peut se situer n'importe où dans les 1024 Mo, mais, en pratique, je n'ai pas pu le vérifier dans la mesure où cela fonctionnait seulement lorsque le raid commençait sur le premier bloc du disque. Ceci étant probablement dû à une erreur de ma part, mais il n'était pas opportun d'aller plus loin sur le moment. J'ai ensuite simplement configuré mon système avec le raid amorçable comme première partition. Je dispose d'un raid à la racine avec le raid 1 amorçable monté sous /boot avec des systèmes configurés comme suit : RAID 1, RAID 5, RAID 10 & RAID 1-10 ( 1 miroir + 1 raid0). Les disques n'ayant pas la même géométrie, la configuration de lilo n'est pas évidente. Le dernier se voit attribuer une paire de fichiers lilo très spécifique car tous les disques ont des géométries différentes, cependant, les principes sont identiques pour le processus de lancement initial. Les montages des racines RAID S 10 et RAID S 1-10 exigent l'utilisation d'initrd pour monter la racine après le chargement du noyau. Voyez les annexes pour le détail des fichiers de configuration pour tous ces exemples de systèmes.

Un ficher de configuration de LILO peut ressembler à ce qui suit :

//# lilo.conf - suppose un disque inférieur à 1024 Mo
boot = /dev/hda
delay = 40               # pas nécessaire, mais bien utile
vga = normal             # pas obligatoire
image = /bzImage
root = /dev/hda1
read-only
label = Linux

Un fichier de configuration de LILO pour un raid peut ressembler à ce qui suit :

# lilo.conf.hda - disque maître sur le contrôleur primaire
disk=/dev/md0
bios=0x80
sectors=63
heads=16
cylinders=39770
partition=/dev/md1
start=63
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
image=/boot/bzImage
root=/dev/md0
read-only
label=LinuxRaid
# ---------------------
# lilo.conf.hdc - disque maître sur le contrôleur secondaire
disk=/dev/md0
bios=0x80                # voir la note plus bas
sectors=63
heads=16
cylinders=39770
partition=/dev/md1
start=63
boot=/dev/hdc            # ceci est l'autre disque
map=/boot/map
install=/boot/boot.b
image=/boot/bzImage
root=/dev/md0
read-only
label=LinuxRaid

# BIOS=line -- si votre BIOS est assez bien pensé (la plupart ne le sont pas) pour détecter que le premier disque est absent ou n'a pas démarré et démarre sur le second disque, ensuite, bios=81 est l'entrée appropriée ici. Ceci est plus courant avec les BIOS SCSI qu'avec les BIOS IDE. J'envisage simplement de replacer le disque de manière à ce qu'il remplace le défunt lecteur C: au cas où il viendrait à tomber en panne au démarrage.

Vous pouvez obtenir les information sur le disque grâce à fdisk avec la commande :

fdisk -ul (petit L)
fdisk -ul /dev/hda
Disk /dev/hda: 16 heads, 63 sectors, 39770 cylinders
Units = sectors of 1 * 512 bytes
Device Boot    Start       End    Blocks   Id  System
/dev/hda1            63     33263     16600+  fd  Linux raid autodetect
/dev/hda2         33264    443519    205128   82  Linux swap
/dev/hda3        443520  40088159  19822320   fd  Linux raid autodetect
* notez l'indication du DÉBUT de chaque partition

3.2 Explications détaillées de lilo.conf pour le démarrage sur un raid

Le fichier lilo.conf pour raid ci-dessous, est commenté en détails pour chaque entrée.

# lilo.conf.hda - disque maître sur le contrôleur primaire
#       La localisation du point de montage /boot qui va être
#       décrit ci-dessous comme contenant le noyau, la carte, et cætera.
#       notez que CE N'EST PAS la partition actuelle contenant l'image et
#       les informations de démarrage, mais le disque qui contient ce répertoire
#       Dans cet exemple, /dev/md1 est monté sous /dev/md0/boot
disk=/dev/md0
#       Indique à LILO quel périphérique du BIOS utiliser pour amorcer le système, par ex. le disque C:
bios=0x80
#       indique à LILO la géométrie du disque
#       c'est habituellement, mais pas toujours la géométrie
#       logique. Vérifiez le système de fichier /proc ou regardez
#       le message du noyau lors de la détection du disque
#
sectors=63
heads=16
cylinders=39770
#       Il existe une entrée permettant de duper LILO afin
#       qu'il reconnaisse l'ensemble raid 0x9?? et qu'il trouve
#       le DÉBUT du secteur d'amorçage. Pour voir ce à quoi
#       cette entrée sert réellement, lisez la documentation
#       incluse avec les sources de LILO.
#       Ce paramètre doit être différent de l'entrée disk=
#       ci-dessus. Il peut correspondre à un autre périphérique mdx,
#       utilisé ou non et il ne doit pas forcément être celui qui contient
#       le répertoire /boot
#
partition=/dev/md1
#       Le premier secteur de la partition contenant les informations de démarrage
#       Le disque sur lequel LILO va écrire les informations de démarrage
boot=/dev/hda
#       Logiquement là où LILO va mettre les informations de démarrage
map=/boot/map
install=/boot/boot.b
#       Logiquement là ou LILO va trouver l'image du noyau
image=/boot/bzImage
#       Après cela, indications standard
#       la racine peut être un raid 1/4/5
root=/dev/md0
read-only
label=LinuxRaid


Page suivantePage précédenteTable des matières