Sostituire un disco in un RAID1

Ci sono decine di validi tutorial in rete su come sostituire un disco in un RAID1 su Linux, attraverso mdadm (questo per esempio).

Il problema che ho riscontrato però non è stato di immediata soluzione.
Ho sostituito il disco WD Red da 4TByte rotto con uno della stessa marca e stesso modello e, ovviamente, stessa dimensione.

Ho proceduto alla creazione della partizione con parted e ho modificato il tipo di partizione con fdisk, ma al momento di aggiungere il disco con mdadm al raid esistente, ho ricevuto l’errore

mdadm: /dev/sdb1 not large enough to join array solution

Il problema è nella dimensione delle due partizioni

# blockdev --report /dev/sda1
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512   512       2048   4000785964544   /dev/sda1

# blockdev --report /dev/sdb1
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096       2048   4000785104896   /dev/sdb1

e ancora

# blockdev --getsz /dev/sda1
7814035087
# blockdev --getsz /dev/sdb1
7814033408

La soluzione è quella di rendere le due partizioni identiche, così ho utilizzato sgdisk che permette la replica di una partizione su un altro dispositivo.

When using larger than 2tb disks, you need to use gpt partitions.
sgdisk -R=/dev/dest /dev/src
To copy the partition data, use:
This will copy the src partition info to dest.
Then generate a new identifier for the new disk:
sgdisk -G /dev/dest

Ora posso aggiungere tranquillamente il nuovo disco al RAID1 .

# mdadm --manage /dev/md0 --add /dev/sdb1

Quindi morale della storia: è fondamentale copiare la partizione dal disco sano, perché una nuova creazione della partizione potrebbe portare a una differenza che, seppur minima, impedisce il corretto montaggio del disco.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.