Hypothese:
Vous disposez de:
- Un systeme fonctionnel
- Un live-CD linux (Knoppix, GRML…)
- Suffisemment de disques durs pour faire ce que vous voulez faire.
- Un kernel supportant le raid
Comme d’habitude, faites des sauvegardes, si ça pétait c’est pas de ma faute
Commençons par le commencement:
Vous faites une sauvegarde de votre systeme sur un autre HD, un autre systeme…
Comment faire?
Monter un autre disque dur (ici sur /newdisk)
cp -avux / /newdisk
ou encore en root toujours:
rsync -avP –numeric-ids / autremachine:/backupmamachine
Passons aux choses sérieuses.
On va maintenant rebooter sur le live-CD
Création de l’array raid 1 (miroir)
- Supposition (raid 1 sur hda et hdb)
fdisk /dev/hda
on crée ses partitions avec comme type ‘fd’
mdadm -Cv /dev/md0 -l1 -n2 /dev/hda1 missing
mdadm -Cv /dev/md1 -l1 -n2 /dev/hda2 missing
autant de fois que vous avez créé de partitions
Créer le systeme de fichiers:
mkfs.ext3 /dev/md0
mkswap /dev/md1
On aurait aussi pu utiliser du XFS, ReiserFS….
on monte le disque de sauvegarde
mkdir /olddisk
mount /dev/hdb1 /olddisk
on monte le raid array
mkdir /newdisk
mount /dev/md0 /newdisk
on copie le systeme
cp -avux /olddisk /newdisk
on edite le fstab dans /newdisk/etc/fstab pour remplacer les /dev/hdx par des /dev/mdx
on oublie pas d’éditer /newdisk/etc/lilo.conf
boot=/dev/mdx
root=/dev/mdx
raid-extra-boot=mbr
on relance lilo dans un chroot
lilo -r /newdisk -v
on reboote la machine, youpi ça marche
il faut maintenant répliquer le miroir
on crée le meme partitionnement sur le 2eme disque que le 1er:meme tailles de partitions, meme type(fd)
Il est possible de le faire via sfdisk automatiquement (sfdisk -d /dev/hda | sfdisk /dev/hdb)
puis on fait
mdadm -a /dev/md0 /dev/hdb1
mdadm -a /dev/md1 /dev/hdb2
cat /proc/mdstat vous donnera l’avancement de la synchronisation du miroir
on oublie pas de lancer lilo pour que les 2 MBR soient mis à jour.
Pour convertir un système en RAID 5, il faut au minimum 3 disques et penser à créer une partition séparée qui servira de /boot (en raid 1 impérativement).