Voilà un petit script qui me facilite la vie quand je doit - par exemple - accéder à mon système à partir d'un LiveCD.

Le matériel:

  • Carte mère: Asus P5B Deluxe (Chipset Intel P965 + ICH8R + puce JMicron JMB363)
  • Disques durs du RAID-software: 2x 80Go Maxtor SATA-II
  • Autres disques:
    • 120 Go Seagate ATA133 sur port IDE
    • 80 Go Seagate ATA133 sur USB

La puce JMicron sert notamment pour le port IDE et 2 ports SATA. Les fonctionnalités RAID de la carte mère ne sont pas utilisées. Sur les gammes de cartes non-professionnelles, il ne s'agit pas de vrai RAID-hardware, mais d'un RAID-soft géré par le BIOS et nécessitant un driver pour l'OS. Donc, l'intérêt par rapport au RAID-sofware complet est nul:

  • En terme de performance, c'est équivalent;
  • En terme de facilité de mise en œuvre, le RAID-software pose moins de problèmes, toute la chaîne logicielle est Libre et maîtrisée.

Les partitions:

Les deux disques SATA (sda et sdb) de 80Go sont partitionnés comme suit:

  • sdx1: /boot
  • sdx2: / (racine)
  • sdx3: swap
  • sdx4: LVM2

Les partitions de /boot et racine sont en RAID 1 (mirroir), ce qui permet de démarrer un système suffisant à un dépannage si un disque tombe en panne. Les partitions de swap n'a pas non pas besoin de RAID. Elles fonctionne dans un mode proche du RAID 1. Les partitions avec le LVM2 sont en RAID 0 (stripping) pour améliorer les performance. Les volumes logiques contiennent les systèmes de fichiers suivants: /usr, /home, /var, /tmp, /var/tmp/portage et /opt.

Le Script:

#!/bin/sh
echo "1- Création des fichiers nodes..."
#Création des fichiers nodes (pseudo-fichiers qui vont représenter
# les périphériques RAID pour le système)
mknod /dev/md1 b 9 1
mknod /dev/md2 b 9 2
mknod /dev/md4 b 9 4
echo "2- Assemblage des RAIDs..."
#On utilise l outils mdadm pour réassembler les partitions en périphérique RAID
mdadm --assemble /dev/md1 /dev/sda1 /dev/sdb1
mdadm --assemble /dev/md2 /dev/sda2 /dev/sdb2
mdadm --assemble /dev/md4 /dev/sda4 /dev/sdb4
#Le script écrit mets aussi à jour le fichier de config de mdadm et affiche
# son contenu.
mdadm --detail --scan > /etc/mdadm.conf
cat /etc/mdadm.conf
echo "3- Mise en place du LVM2..."#Maintenant que les
# périphérique RAID existent et sont assemblés, on passe à la restauration
# des volume logique.
#Les disques (y compris les périphériques RAID) sont d abord scanné pour
# y découvrir les groupes de volumes, créer les fichiers nodes
# ki-vont-bien et mettre le tout prêt à utiliser.
vgscan --mknodes
vgchange -a n
vgexport -a
vgimport -a
vgchange -a y
echo "4- Montage des partitions RAID et LVM2..."
#Maintenant  que toutes les partitions et volumes logiques sont bien
#reconnu par le système, on va lui dire quoi en faire.
#Ce script est adapté au LiveCD Gentoo. Tout le système sera ainsi
# monter dans /mnt/gentoo. Le point de montage peut-bien sûr être
# modifié. Le répertoire destiné à la racine doit exister (sinon ce script ne
# le crée pas et s arrête sur une erreur de répertoire inexistant).
#Montage de la racine
mount /dev/md2 /mnt/gentoo/
cd /mnt/gentoo
#Création des répertoires s il n existe pas
mkdir boot home opt tmp usr var var/tmp var/tmp/portage proc
#Montage des partitions et des volumes logiques (que j ai nommé d après
# leur utilisation)
mount /dev/md1 /mnt/gentoo/boot/
mount /dev/vg/home /mnt/gentoo/home/
mount /dev/vg/opt /mnt/gentoo/opt/
mount /dev/vg/tmp /mnt/gentoo/tmp/
mount /dev/vg/usr /mnt/gentoo/usr/
mount /dev/vg/var /mnt/gentoo/var/
mount /dev/vg/var_tmp_portage /mnt/gentoo/var/tmp/portage/
echo "5- Montage du SWAP..."
#Mise en route des 2 partitions de swap
swapon /dev/sda3
swapon /dev/sdb3
echo "6- Montage de /mnt/gentoo/proc..."
#Montage du système de fichier spécial /proc pour pouvoir se chrooter dans
# le systèmes dès la fin du script
mount -t proc none /mnt/gentoo/proc