Guia de tecnologias

Preparando /dev/hda e GRUB para RAID1

3 min read Administração Atualizado 17 Oct 2025
Preparar /dev/hda e GRUB para RAID1
Preparar /dev/hda e GRUB para RAID1

7 Preparando /dev/hda

Se tudo correu bem, você deverá ver /dev/md0 e /dev/md2 na saída de:

df -h

Exemplo esperado (tradução do output mostrado):

[root@server1 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md2              4.4G  757M  3.4G  18% /
/dev/md0              167M  9.0M  150M   6% /boot
[root@server1 ~]#

A saída de:

cat /proc/mdstat

deverá indicar os dispositivos RAID ativos, por exemplo:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hdb5[1]
      417536 blocks [2/1] [_U]

md0 : active raid1 hdb1[1]
      176576 blocks [2/1] [_U]

md2 : active raid1 hdb6[1]
      4642688 blocks [2/1] [_U]

unused devices: 
[root@server1 ~]#

Agora altere o tipo das três partições em /dev/hda para “Linux raid autodetect”:

fdisk /dev/hda

Sequência esperada (interativa):

Command (m for help):  t
Partition number (1-6):  1
Hex code (type L to list codes):  fd
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help):  t
Partition number (1-6):  5
Hex code (type L to list codes):  fd
Changed system type of partition 5 to fd (Linux raid autodetect)

Command (m for help):  t
Partition number (1-6):  6
Hex code (type L to list codes):  fd
Changed system type of partition 6 to fd (Linux raid autodetect)

Command (m for help):  w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@server1 ~]#

Em seguida, adicione as partições ao arrays correspondentes:

mdadm --add /dev/md0 /dev/hda1
mdadm --add /dev/md1 /dev/hda5
mdadm --add /dev/md2 /dev/hda6

Verifique o progresso com:

cat /proc/mdstat

Você verá que os arrays estão em sincronização. Exemplo de saída em andamento:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hda5[2] hdb5[1]
      417536 blocks [2/1] [_U]
        resync=DELAYED

md0 : active raid1 hda1[0] hdb1[1]
      176576 blocks [2/2] [UU]

md2 : active raid1 hda6[2] hdb6[1]
      4642688 blocks [2/1] [_U]
      [======>..............]  recovery = 34.4% (1597504/4642688) finish=1.0min speed=50349K/sec

unused devices: 
[root@server1 ~]#

Dica: rode watch cat /proc/mdstat para acompanhar em tempo real. Para sair do watch, pressione CTRL+C.

Aguarde até a sincronização terminar. Quando concluída, a saída deverá mostrar todos os arrays com [UU]:

[root@server1 ~]# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 hda5[0] hdb5[1]
      417536 blocks [2/2] [UU]

md0 : active raid1 hda1[0] hdb1[1]
      176576 blocks [2/2] [UU]

md2 : active raid1 hda6[0] hdb6[1]
      4642688 blocks [2/2] [UU]

unused devices: 
[root@server1 ~]#

Depois, atualize /etc/mdadm.conf para refletir a nova configuração:

cp -f /etc/mdadm.conf_orig /etc/mdadm.conf
mdadm --examine --scan >> /etc/mdadm.conf

O arquivo /etc/mdadm.conf deverá conter entradas ARRAY semelhantes a estas (exemplo):

# mdadm configuration file
#
# mdadm will function properly without the use of a configuration file,
# but this file is useful for keeping track of arrays and member disks.
# ...
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=6b4f013f:6fe18719:5904a9bd:70e9cee6
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=63194e2e:c656857a:3237a906:0616f49e
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=edec7105:62700dc0:643e9917:176563a7

8 Preparando o GRUB

Estamos quase concluindo. Edite o menu do GRUB em /boot/grub/menu.lst. Atualmente ele referencia hd1 (ou /dev/hdb). Para permitir que o sistema dê boot caso /dev/hdb falhe, copie a primeira seção de kernel, cole abaixo e substitua hd1 por hd0. Comente as demais entradas para deixar apenas as duas entradas principais (hd1 e hd0).

Edite com:

vi /boot/grub/menu.lst

Exemplo do menu resultante:

timeout 10
color black/cyan yellow/cyan
default 0
fallback 1

title linux
kernel (hd1,0)/vmlinuz BOOT_IMAGE=linux root=/dev/md2  resume=/dev/md1
initrd (hd1,0)/initrd.img

title linux
kernel (hd0,0)/vmlinuz BOOT_IMAGE=linux root=/dev/md2  resume=/dev/md1
initrd (hd0,0)/initrd.img

#title linux
#kernel (hd0,0)/vmlinuz BOOT_IMAGE=linux root=/dev/hda6  resume=/dev/hda5
#initrd (hd0,0)/initrd.img

#title failsafe
#kernel (hd0,0)/vmlinuz BOOT_IMAGE=failsafe root=/dev/hda6  failsafe
#initrd (hd0,0)/initrd.img

Depois atualize o ramdisk do kernel atual e reinicie:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig2
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

reboot

O sistema deverá iniciar normalmente. Parabéns — você sincronizou /dev/hda com os arrays RAID1 e atualizou o GRUB.


Checklist rápido

  • Verificar /proc/mdstat e df -h antes de começar.
  • Alterar tipos de partição para fd em /dev/hda com fdisk.
  • Adicionar partições com mdadm –add.
  • Aguardar sincronização completa ([UU] em /proc/mdstat).
  • Atualizar /etc/mdadm.conf com mdadm –examine –scan.
  • Ajustar /boot/grub/menu.lst para boot em hd0 e hd1.
  • Regenerar initrd e reiniciar.

Quando algo der errado (solução rápida)

  • Se a sincronização não iniciar: verifique logs com dmesg e /var/log/messages.
  • Se um array não monta: rode mdadm --detail /dev/mdX para diagnosticar falhas e estados.
  • Se o sistema não bootar: reinicie em modo de recuperação e verifique /boot/grub/menu.lst e se os initrds existem. Reinstale o GRUB no MBR de ambos os discos se necessário.

Importante: faça backup antes de manipular tabelas de partição. Alterações em partições podem causar perda de dados se executadas incorretamente.

Mini-cheat sheet (comandos úteis)

  • Verificar espaço: df -h
  • Verificar RAID: cat /proc/mdstat
  • Adicionar disco: mdadm --add /dev/md0 /dev/hda1
  • Examinar array: mdadm --detail /dev/md0
  • Gerar mdadm.conf: mdadm --examine --scan
  • Atualizar initrd: mkinitrd /boot/initrd-$(uname -r).img $(uname -r)

Critérios de aceitação

  • Todos os arrays mostram estado [UU] em /proc/mdstat.
  • /etc/mdadm.conf contém entradas ARRAY correspondentes.
  • GRUB possui entradas para hd0 e hd1 e o sistema inicializa com sucesso após reboot.

Glossário (1 linha cada)

  • RAID1: espelhamento de blocos entre dois discos para redundância.
  • mdadm: utilitário Linux para gerenciar dispositivos RAID por software.
  • initrd: imagem de disco inicial usada pelo kernel para montar o root temporário.

Resumo final

Você sincronizou as partições de /dev/hda com os arrays RAID existentes, atualizou mdadm.conf, ajustou o GRUB para suportar boot a partir de ambos os discos e regenerou o initrd. Após reiniciar, o sistema deve arrancar normalmente e estar protegido contra falha de um dos discos.

Notas: sempre mantenha backups e, se possível, teste o processo em um sistema de staging antes de aplicar em produção.

Autor
Edição

Materiais semelhantes

Aprenda inglês com IA: 10 apps essenciais
Educação

Aprenda inglês com IA: 10 apps essenciais

Legendas no Final Cut Pro: guia prático
[Edição de Vídeo]

Legendas no Final Cut Pro: guia prático

Instalar BIKA LIMS Inkosi no Ubuntu Server
Instalação

Instalar BIKA LIMS Inkosi no Ubuntu Server

Guia prático: aumentar a bateria do iPhone
Smartphones

Guia prático: aumentar a bateria do iPhone

Corrigir erro 0x800F0909 no Windows 11
Windows

Corrigir erro 0x800F0909 no Windows 11

Usar launcher-list-indicator no Unity
Guias

Usar launcher-list-indicator no Unity