RAID1 Software · 3 min read · Dec 25, 2025
Substituindo Um Disco Rígido Falhado Em Um Array RAID1 De Software
Substituindo Um Disco Rígido Falhado Em Um Array RAID1 De Software. Este guia mostra como remover um disco rígido falhado de um array RAID1 Linux (RAID de software) e como adicionar um novo disco rígido ao array RAID1 sem perder dados.
NOTA: Há uma nova versão deste tutorial disponível que usa gdisk em vez de sfdisk para suportar partições GPT.
1 Nota Preliminar
Neste exemplo, eu tenho dois discos rígidos, /dev/sda e /dev/sdb, com as partições /dev/sda1 e /dev/sda2, bem como /dev/sdb1 e /dev/sdb2.
/dev/sda1 e /dev/sdb1 compõem o array RAID1 /dev/md0.
/dev/sda2 e /dev/sdb2 compõem o array RAID1 /dev/md1.
/dev/sda1 + /dev/sdb1 = /dev/md0/dev/sda2 + /dev/sdb2 = /dev/md1/dev/sdb falhou, e queremos substituí-lo.
2 Como Saber Se Um Disco Rígido Falhou?
Se um disco falhou, você provavelmente encontrará muitas mensagens de erro nos arquivos de log, por exemplo, /var/log/messages ou /var/log/syslog.
Você também pode executar
cat /proc/mdstate em vez da string [UU] você verá [U_] se você tiver um array RAID1 degradado.
3 Removendo O Disco Falhado
Para remover /dev/sdb, marcaremos /dev/sdb1 e /dev/sdb2 como falhados e os removeremos de seus respectivos arrays RAID (/dev/md0 e /dev/md1).
Primeiro, marcamos /dev/sdb1 como falhado:
mdadm --manage /dev/md0 --fail /dev/sdb1A saída de
cat /proc/mdstatdeve parecer com isso:
server1:~# cat /proc/mdstat
Personalidades : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[2](F)
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: Então, removemos /dev/sdb1 de /dev/md0:
mdadm --manage /dev/md0 --remove /dev/sdb1A saída deve ser assim:
server1:~# mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1E
cat /proc/mdstatdeve mostrar isso:
server1:~# cat /proc/mdstat
Personalidades : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: Agora, fazemos os mesmos passos novamente para /dev/sdb2 (que é parte de /dev/md1):
mdadm --manage /dev/md1 --fail /dev/sdb2cat /proc/mdstatserver1:~# cat /proc/mdstat
Personalidades : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[2](F)
24418688 blocks [2/1] [U_]
unused devices: mdadm --manage /dev/md1 --remove /dev/sdb2server1:~# mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2cat /proc/mdstatserver1:~# cat /proc/mdstat
Personalidades : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
24418688 blocks [2/1] [U_]
unused devices: Então, desligue o sistema:
shutdown -h nowe substitua o antigo disco rígido /dev/sdb por um novo (ele deve ter pelo menos o mesmo tamanho que o antigo - se for apenas alguns MB menor que o antigo, a reconstrução dos arrays falhará).
4 Adicionando O Novo Disco Rígido
Depois de ter trocado o disco rígido /dev/sdb, inicie o sistema.
A primeira coisa que devemos fazer agora é criar a mesma partição exata que em /dev/sda. Podemos fazer isso com um simples comando:
sfdisk -d /dev/sda | sfdisk /dev/sdbVocê pode executar
fdisk -lpara verificar se ambos os discos rígidos têm a mesma partição agora.
Em seguida, adicionamos /dev/sdb1 a /dev/md0 e /dev/sdb2 a /dev/md1:
mdadm --manage /dev/md0 --add /dev/sdb1server1:~# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: re-added /dev/sdb1mdadm --manage /dev/md1 --add /dev/sdb2server1:~# mdadm --manage /dev/md1 --add /dev/sdb2
mdadm: re-added /dev/sdb2Agora ambos os arrays (/dev/md0 e /dev/md1) serão sincronizados. Execute
cat /proc/mdstatpara ver quando terminar.
Durante a sincronização, a saída parecerá com isso:
server1:~# cat /proc/mdstat
Personalidades : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
24418688 blocks [2/1] [U_]
[=>...................] recovery = 9.9% (2423168/24418688) finish=2.8min speed=127535K/sec
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/1] [U_]
[=>...................] recovery = 6.4% (1572096/24418688) finish=1.9min speed=196512K/sec
unused devices: Quando a sincronização estiver concluída, a saída parecerá com isso:
server1:~# cat /proc/mdstat
Personalidades : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
24418688 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: É isso, você substituiu com sucesso /dev/sdb!
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.