Testé avec une distro Debian 8 en raid5 puis raid1.
Migrer d'un système en ext3 (avec une ou plusieurs partitions) avec un seul disque vers un raid logiciel.
Installer mdadm avant la synchronisation pour que lorsque l'on bootera plus tard dans le système répliqué, autrement, il faudrait chrooter pour l'installer pour pouvoir booter avec le système sur raid logiciel.
apt-get install mdadm
#with ubuntu like
sudo apt-get remove dmraid
Etat des lieux des disques
fdisk -l
Créer les partitions sur les nouveaux disques avant de crée le raid logiciel.
Une partition de 1MB est normalement suffisante pour grub mais dans le futur cela pourrait augmenter.
parted /dev/sda
unit kb
p free
#si besoin avec des disques vierges : mklabel gpt
mkpart primary ext3 0 10M
mkpart primary ext3 10M 100%
#(vital pour grub)
set 1 bios_grub on
p free
q
partprobe /dev/sda
partprobe /dev/sdb
Et faire de même pour tous les disques du futur raid car nous installerons grub sur chacun des disques.
Autre méthode pour le flag grub_on
parted /dev/sda1 set 1 bios_grub on
parted /dev/sdb1 set 1 bios_grub on
Créer système de fichier sur lequel sera hébergé le raid sur tous les disques.
mkfs -t ext3 /dev/sda2
mkfs -t ext3 /dev/sdb2
Créer le raid (ici raid1).
mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
Voir la progression en temps réél, c'est long pour des disques 2TB.
watch -n 1 cat /proc/mdstat
Créer le système de fichiers sur le raid.
-m 2 for 2% of inodes
-m 2 pour 2% d'inodes
mkfs.ext3 /dev/md0 -m 2
Mettre le raid dans le fstab
blkid
nano /etc/fstab
UUID=87b54395-1737-435b-b2a8-b4120ee4060d / ext3 relatime 0 0
Mettre à jour mdadm.
cat /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose >> /etc/mdadm/mdadm.conf
cat /etc/mdadm/mdadm.conf
Monter le.
mkdir /media/raid1/ && mount /dev/md0 /media/raid1/ && df -h && cd /media/raid1/
Une fois le raid vierge en place, synchroniser le système actuel vers le raid.
rsync -aAXv --stats --progress /* /media/raid1/ --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/net*,/lost+found}
Chroot dans le future système live.
cd /media/raid1/
mount -t proc proc proc/
mount --rbind /sys sys/
mount --rbind /dev dev/
chroot /media/raid1 /bin/bash
Mettre à jour le fstab avec les bons uuid.
blkid
cp /etc/fstab /etc/fstab.bkp
nano /etc/fstab
Install grub on all drives of the array.
Installer grub sur tous les disques du raid.
grub-install /dev/sda
grub-install /dev/sdb
update-grub
#or
update-grub2
Mettre à jour le ram disk pour que le raid soit automatiquement monté durant le boot
update-initramfs -u
Sortir du chroot et redemarrer, dans mon cas, je débranche le vieux disque.
Tout devrait tourner sur le nouveau raid sans accroc avec grub opérationel.
fdisk -l
Attention : identifiant de table de partitions GPT (GUID) détecté sur « /dev/sdb » ! L'utilitaire sfdisk ne prend pas GPT en charge. Utilisez GNU Parted.
Disque /dev/sdb : 2000.4 Go, 2000398934016 octets
255 têtes, 63 secteurs/piste, 243201 cylindres, total 3907029168 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Identifiant de disque : 0x00000000
Périphérique Amorce Début Fin Blocs Id Système
/dev/sdb1 1 3907029167 1953514583+ ee GPT
La partition 1 ne commence pas sur une frontière de cylindre physique.
Attention : identifiant de table de partitions GPT (GUID) détecté sur « /dev/sda » ! L'utilitaire sfdisk ne prend pas GPT en charge. Utilisez GNU Parted.
Disque /dev/sda : 2000.4 Go, 2000398934016 octets
255 têtes, 63 secteurs/piste, 243201 cylindres, total 3907029168 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00000000
Périphérique Amorce Début Fin Blocs Id Système
/dev/sda1 1 3907029167 1953514583+ ee GPT
Disque /dev/md0 : 2000.3 Go, 2000262529024 octets
2 têtes, 4 secteurs/piste, 488345344 cylindres, total 3906762752 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 4096 octets
taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets
Identifiant de disque : 0x00000000
Le disque /dev/md0 ne contient pas une table de partitions valable
Les liens qui m'ont aidés:
http://velenux.wordpress.com/2012/07/12/grub-failing-to-install-on-debianubuntu-with-gpt-partitions/
http://forums.linuxmint.com/viewtopic.php?f=90&t=95928
http://forums.debian.net/viewtopic.php?f=5&t=92810
http://unix.stackexchange.com/questions/28443/does-grub2-support-putting-boot-on-a-raid5-partition
http://askubuntu.com/questions/252795/convert-running-system-to-raid-5
https://wiki.archlinux.org/index.php/Full_System_Backup_with_rsync
https://wiki.archlinux.org/index.php/Change_Root
https://wiki.archlinux.org/index.php/Convert_a_single_drive_system_to_RAID