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/mdstat

e 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/sdb1

A saída de

cat /proc/mdstat

deve 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/sdb1

A saída deve ser assim:

server1:~# mdadm --manage /dev/md0 --remove /dev/sdb1  
mdadm: hot removed /dev/sdb1

E

cat /proc/mdstat

deve 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/sdb2
cat /proc/mdstat
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[2](F)  
      24418688 blocks [2/1] [U_]  
  
unused devices: 
mdadm --manage /dev/md1 --remove /dev/sdb2
server1:~# mdadm --manage /dev/md1 --remove /dev/sdb2  
mdadm: hot removed /dev/sdb2
cat /proc/mdstat
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]  
      24418688 blocks [2/1] [U_]  
  
unused devices: 

Então, desligue o sistema:

shutdown -h now

e 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/sdb

Você pode executar

fdisk -l

para 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/sdb1
server1:~# mdadm --manage /dev/md0 --add /dev/sdb1  
mdadm: re-added /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdb2
server1:~# mdadm --manage /dev/md1 --add /dev/sdb2  
mdadm: re-added /dev/sdb2

Agora ambos os arrays (/dev/md0 e /dev/md1) serão sincronizados. Execute

cat /proc/mdstat

para 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!

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.