Installare mdadm:
apt-get install initramfs-tools mdadm
Se non si vuole riavviare bisogna caricare questi moduli kernel:
modprobe md modprobe linear modprobe multipath modprobe raid0 modprobe raid1 modprobe raid5 modprobe raid6 modprobe raid10
Copiare le partizioni dal disco origine al nuovo disco ad esempio:
sfdisk -d /dev/sda | sfdisk /dev/sdb
Dopo aver controllato che entrambi i dischi hanno lo stesso layout bisogna cambiare il tipo di partizione sul disco nuovo mettendole a linux raid autodetect:
fdisk /dev/sdb Command (m for help): <-- t Partition number (1-4): <-- 1 Hex code (type L to list codes): <-- fd eseguire questi comandi per tutte le partizioni del disco nuovo (cambiando numero di partizione ovviamente!!)
Se devo eliminare precedenti installazioni RAID dal disco:
mdadm --zero-superblock /dev/sdb1 per tutte le partizioni su sdb
Creiamo quindi gli array RAID uno per ogni partizione:
mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
Creiamo il filesystem sul RAID ad esempio un ext3 ed una swap:
mkfs.ext3 /dev/md0 mkswap /dev/md1
Ricreiamo la configurazione del RAID:
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Montiamo gli array con:
mkdir /mnt/md0 mkdir /mnt/md2 mount /dev/md0 /mnt/md0 mount /dev/md2 /mnt/md2
Modifichiamo fstab per inserire il raid sostituendo le varie partizioni sda:
vi /etc/fstab
Esempio di file fstab modificato: # /etc/fstab: static file system information. # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/md2 / ext3 defaults,errors=remount-ro 0 1 /dev/md0 /boot ext3 defaults 0 2 /dev/md1 none swap sw 0 0 /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
facciamo la stessa cosa sul file /etc/mtab
A questo punto modifichiamo le entry in GRUB:
vi /boot/grub/menu.lst
E aggiungiamo fallback 1 dopo default 0. Copiamo una entry del kernel e mettiamola come prima istanza sostituendo root=/dev/sdaN with root=/dev/mdN e root (hd0,0) con root (hd1,0).
Per aggiornare il nostro ramdisk alla situazione attuale lanciamo:
update-initramfs -u
Copiamo tutti i file dal disco sorgente al disco nuovo ad esempio:
cp -dpRx / /mnt/md2
Installiamo GRUB sul disco nuovo:
grub root (hd0,0) setup (hd0) root (hd1,0) setup (hd1) quit
A questo punto è possibile effettuare un reboot.
Quando la macchina torna su bisogna effettuare ancora alcuni passaggi per aggiungere il disco origine all'array. Cambiare il tipo di partizione in tutte le partizioni del disco origine.
fdisk /dev/sda Command (m for help): <-- t Partition number (1-4): <-- 1 Hex code (type L to list codes): <-- fd
quindi aggiungere le partizioni al raid:
mdadm --add /dev/md0 /dev/sda1 mdadm --add /dev/md1 /dev/sda2 mdadm --add /dev/md2 /dev/sda3
A questo punto il software RAID ricostruirà l'array che tornerà nello stato optimal. Come ultimo passaggio bisogna rendere avviabile anche il secondo disco da GRUB questo è molto semplice basta aggiungere un kernel con hd0. Quindi bisogna aggiornare la configurazione di mdadm:
cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf mdadm --examine --scan >> /etc/mdadm/mdadm.conf
Il sistema è ora funzionante con un raid software RAID-1.
Le informazioni sono state prese da: How To Set Up Software RAID1 On A Running System (Incl. GRUB Configuration)
Start demone controllo stato raid
cat /proc/mdstat
Personalities : [raid1] [raid0] [raid6] [raid5] [raid4]
md1 : active raid1 sdb2[2] sda2[0]
3212988 blocks super 1.0 [2/2] [UU]
bitmap: 0/7 pages [0KB], 256KB chunk
md0 : active raid1 sdb1[2] sda1[0]
140158988 blocks super 1.0 [2/2] [UU]
bitmap: 3/134 pages [12KB], 512KB chunk
unused devices: <none>
Restituisce stato del raid sulle varie partizioni. Devono essere entrabmi nello stato UU
Per far partire il demone per il controllo automatico delllo stato del raid e aggiugerlo nei servizi in autostart
mdadmd start sysv-rc-config