Założenia
Załóżmy że dysk w macierzy RAID już mamy wymieniony na nowy, chociaż przed wymianą wypadałoby odpiąć stary – ale o tym innym razem.
Dysk nowy / pusty -> /dev/sdb,
Dysk istniejący -> /dev/sda
Kopiowanie partycji
Na początku trzeba skopiować partycje. Jeśli nie wiemy jaką tablicę partycji posiadamy możemy użyć sfdisk -l. Jeśli rzuci błędem:
WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util sfdisk doesn't support GPT. Use GNU Parted.
to znaczy że używamy GPT.
Tablica GPT
Dla tablicy GPT (czyli wszystko powyżej 2TB) należy użyć:
sgdisk -R=/dev/sdb /dev/sda
Spowoduje to skopiowanie partycji, następnie:
sgdisk -G /dev/sdb
aby zmienić identyfikatory GUID partycji, ponieważ powinny być jednoznaczne, a poprzednie polecenie skopiowało nam kompletną tablicę z wszystkimi identyfikatorami.
Tablica MBR
Dla MBR potrzebny jest następujący zestaw:
sfdisk -d /dev/sda | sfdisk /dev/sdb
oraz opcjonalnie:
sfdisk -R /dev/sdb
jeśli system nie wczytał automatycznie tablicy partycji na nowym dysku.
GRUB
Następnie wypada zainstalować gruba na nowym dysku:
grub-install /dev/sdb
Podpinanie partycji do macierzy
Najpierw sprawdzimy listę partycji, wywołując:
cat /proc/mdstat
Powinniśmy zobaczyć coś podobnego:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sda2[2] 523968 blocks super 1.2 [2/1] [U_] md0 : active raid1 sda1[2] 16768896 blocks super 1.2 [2/1] [U_] ....
Następnie dla każdej z partycji wykonujemy:
mdadm /dev/md1 -a /dev/sdb2
podmieniając nr partycji / urządzeń wyczytane z wyników cat /proc/mdstat.
Po wykonaniu powyższego cat /proc/mdstat powinien dać podobny wynik:
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md1 : active raid1 sda2[2] sdb2[1] 523968 blocks super 1.2 [2/2] [UU] md0 : active raid1 sda1[2] sdb1[1] 16768896 blocks super 1.2 [2/2] [UU] md3 : active raid1 sda4[2] sdb4[1] 2879277312 blocks super 1.2 [2/1] [_U] [>....................] recovery = 4.2% (121450880/2879277312) finish=413.1min speed=111251K/sec md2 : active raid1 sda3[2] sdb3[1] 33537920 blocks super 1.2 [2/1] [_U] resync=DELAYED unused devices: <none>
Oznacza to że poszczególne partycje są synchronizowane. Polecenie pokazuje też szacowany czas potrzebny na synchronizację poszczególnych partycji. Jest on oczywiście ściśle uzależniony od wielkości partycji i aktualnego obciążenia systemu.