Guia de tecnologias

Preparando o GRUB e /dev/sda para RAID1 em sistema LVM

6 min read Sistemas Atualizado 28 Sep 2025
RAID1 em LVM: Preparar GRUB e /dev/sda
RAID1 em LVM: Preparar GRUB e /dev/sda

Objetivo e público-alvo

Guia prático para administradores Linux que precisam instalar o bootloader GRUB em discos usados por software RAID1 (mdadm) com volumes LVM em execução. Assume conhecimento básico de comandos shell, LVM e mdadm.

Sumário rápido

  • Instalar GRUB no(s) disco(s) correto(s) usando o shell do GRUB.
  • Verificar arrays md0/md1 e volumes LVM com df, /proc/mdstat, pvdisplay, vgdisplay e lvdisplay.
  • Alterar o tipo de partição para “fd” (Linux raid autodetect) com fdisk.
  • Adicionar /dev/sda1 ao array md0 e atualizar /etc/mdadm.conf.
  • Reiniciar e confirmar que o sistema arranca do RAID.

Importante: faça backup dos dados críticos antes de alterar partições, adicionar dispositivos a um array ou instalar um bootloader. Em ambientes de produção, teste em um ambiente controlado primeiro.


Preparando o GRUB

A seguir devemos instalar o carregador de boot GRUB no segundo disco /dev/sdb.

Execute:

grub

No shell do GRUB, digite estes comandos exatamente:

root (hd0,0)

Saída esperada no shell GRUB (exemplo):

grub> root (hd0,0)  
root (hd0,0)  
Filesystem type is ext2fs, partition type 0x83  
grub>

Em seguida execute:

setup (hd0)

Exemplo de diálogo do GRUB durante o setup (não modifique):

grub> setup (hd0)  
setup (hd0)  
Checking if "/boot/grub/stage1" exists... no  
Checking if "/grub/stage1" exists... yes  
Checking if "/grub/stage2" exists... yes  
Checking if "/grub/e2fs_stage1_5" exists... yes  
Running "embed /grub/e2fs_stage1_5 (hd0)"...  15 sectors are embedded.  
succeeded  
Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded  
Done.  
grub>

Depois, a título de redundância (instalar também no outro disco), repita para o outro disco/partição do RAID:

root (hd1,0)

Exemplo:

grub> root (hd1,0)  
root (hd1,0)  
Filesystem type is ext2fs, partition type 0xfd  
grub>

E então:

setup (hd1)

Exemplo de saída:

grub> setup (hd1)  
setup (hd1)  
Checking if "/boot/grub/stage1" exists... no  
Checking if "/grub/stage1" exists... yes  
Checking if "/grub/stage2" exists... yes  
Checking if "/grub/e2fs_stage1_5" exists... yes  
Running "embed /grub/e2fs_stage1_5 (hd1)"...  15 sectors are embedded.  
succeeded  
Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/grub.conf"... succeeded  
Done.  
grub>

Para sair do shell do GRUB:

quit

Agora, de volta ao shell normal, reinicie a máquina e verifique se arranca a partir dos arrays RAID:

reboot

Verificação inicial após reinício

Se tudo correu bem, verifique que /dev/md0 está montado (ex.: /boot):

df -h

Exemplo de saída esperada:

[root@server1 ~]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/mapper/VolGroup00-LogVol00  
8.6G  1.4G  6.8G  18% /  
/dev/md0               99M   16M   79M  17% /boot  
tmpfs                 250M     0  250M   0% /dev/shm  
[root@server1 ~]#

Verifique o estado dos arrays:

cat /proc/mdstat

Exemplo:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1]  
md0 : active raid1 sdb1[1]  
104320 blocks [2/1] [_U]    
   
md1 : active raid1 sdb2[1] sda2[0]  
10377920 blocks [2/2] [UU]    
   
unused devices:   
[root@server1 ~]#

Confira também os volumes LVM:

pvdisplay
vgdisplay
lvdisplay

Exemplos (saída real pode variar):

[root@server1 ~]# pvdisplay  
--- Physical volume ---  
PV Name               /dev/md1  
VG Name               VolGroup00  
PV Size               9.90 GB / not usable 22.69 MB  
Allocatable           yes (but full)  
PE Size (KByte)       32768  
Total PE              316  
Free PE               0  
Allocated PE          316  
PV UUID               u6IZfM-5Zj8-kFaG-YN8K-kjAd-3Kfv-0oYk7J  
  
[root@server1 ~]#
[root@server1 ~]# vgdisplay  
--- Volume group ---  
VG Name               VolGroup00  
System ID  
Format                lvm2  
Metadata Areas        1  
Metadata Sequence No  9  
VG Access             read/write  
VG Status             resizable  
MAX LV                0  
Cur LV                2  
Open LV               2  
Max PV                0  
Cur PV                1  
Act PV                1  
VG Size               9.88 GB  
PE Size               32.00 MB  
Total PE              316  
Alloc PE / Size       316 / 9.88 GB  
Free  PE / Size       0 / 0  
VG UUID               ZPvC10-cN09-fI0S-Vc8l-vOuZ-wM6F-tlz0Mj  
  
[root@server1 ~]#
[root@server1 ~]# lvdisplay  
--- Logical volume ---  
LV Name                /dev/VolGroup00/LogVol00  
VG Name                VolGroup00  
LV UUID                vYlky0-Ymx4-PNeK-FTpk-qxvm-PmoZ-3vcNTd  
LV Write Access        read/write  
LV Status              available  
# open                 1  
LV Size                8.88 GB  
Current LE             284  
Segments               1  
Allocation             inherit  
Read ahead sectors     auto  
- currently set to     256  
Block device           253:0  
  
--- Logical volume ---  
LV Name                /dev/VolGroup00/LogVol01  
VG Name                VolGroup00  
LV UUID                Ml9MMN-DcOA-Lb6V-kWPU-h6IK-P0ww-Gp9vd2  
LV Write Access        read/write  
LV Status              available  
# open                 1  
LV Size                1.00 GB  
Current LE             32  
Segments               1  
Allocation             inherit  
Read ahead sectors     auto  
- currently set to     256  
Block device           253:1  
  
[root@server1 ~]#

Preparando /dev/sda (alterar tipo de partição)

Devemos alterar o tipo da partição /dev/sda1 para “Linux raid autodetect” (hex code fd). Use fdisk:

fdisk /dev/sda

Exemplo de sessão (interativas):

[root@server1 ~]# fdisk /dev/sda  
  
The number of cylinders for this disk is set to 1305.  
There is nothing wrong with that, but this is larger than 1024,  
and could in certain setups cause problems with:  
1) software that runs at boot time (e.g., old versions of LILO)  
2) booting and partitioning software from other OSs  
(e.g., DOS FDISK, OS/2 FDISK)  
  
Command (m for help): <-- t  
Partition number (1-4): <-- 1  
Hex code (type L to list codes): <-- fd  
Changed system type of partition 1 to fd (Linux raid autodetect)  
  
Command (m for help): <-- w  
The partition table has been altered!  
  
Calling ioctl() to re-read partition table.  
  
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.  
The kernel still uses the old table.  
The new table will be used at the next reboot.  
Syncing disks.  
[root@server1 ~]#

Nota: a mensagem de aviso é comum se o disco está em uso; um reboot pode ser necessário para que o kernel leia a nova tabela.


Adicionando /dev/sda1 ao array md0

Depois de alterar o tipo, adicione a partição ao array md0:

mdadm --add /dev/md0 /dev/sda1

Verifique o status do array novamente:

cat /proc/mdstat

Exemplo após adicionar:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1]  
md0 : active raid1 sda1[0] sdb1[1]  
104320 blocks [2/2] [UU]    
   
md1 : active raid1 sdb2[1] sda2[0]  
10377920 blocks [2/2] [UU]    
   
unused devices:   
[root@server1 ~]#

Atualizando /etc/mdadm.conf

Registre a configuração atual do mdadm para /etc/mdadm.conf:

mdadm --examine --scan > /etc/mdadm.conf

Verifique o conteúdo:

cat /etc/mdadm.conf

Deve conter linhas do tipo:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=0a96be0f:bf0f4631:a910285b:0f337164
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=f9e691e2:8d25d314:40f42444:7dbe1da1

Guardar este ficheiro assegura que o mdadm recriará os arrays automaticamente no boot.


Reiniciar e validar arranque

Após todas as alterações, reinicie o sistema:

reboot

Valide que o sistema arranca normalmente e que /boot está montado a partir de /dev/md0. Se o arranque falhar, revisite a seção de resolução de problemas abaixo.


Lista de verificação por função

Administrador (antes de começar):

  • Backup completo dos dados críticos e configuração de /etc/mdadm.conf e /etc/fstab
  • Acesso físico/console remoto (KVM/IPMI) para recuperação caso o servidor não inicie
  • Planeamento de janela de manutenção

Técnico de campo/Operador (durante a execução):

  • Verificar estado dos discos com smartctl
  • Confirmar número de dispositivo (sda/sdb) correspondente ao hardware
  • Executar comandos conforme guia e registar saídas

Após alteração:

  • Confirmar arrays com cat /proc/mdstat
  • Confirmar LVM com pvdisplay/vgdisplay/lvdisplay
  • Confirmar GRUB instalado em ambos discos (se aplicável)

Critérios de aceitação

  • /dev/md0 e /dev/md1 aparecem como ativos em /proc/mdstat.
  • /boot está montado a partir de /dev/md0 (df -h).
  • /etc/mdadm.conf contém as linhas ARRAY corretas.
  • O sistema reinicia e chega ao prompt/GUI sem erro de boot.

Solução de problemas comum (runbook curto)

  1. Problema: sistema não arranca após instalar GRUB.
    Ações:

    • Entre via console série ou KVM/IPMI.
    • Verifique se o MBR foi escrito em ambos discos (use dd para inspecionar os primeiros setores, com cuidado).
    • Reinstale GRUB usando grub-install (ou repetir passos do shell GRUB).
    • Verifique ordem de boot no BIOS/UEFI.
  2. Problema: md0 não entra em modo sincronizado após adicionar dispositivo.
    Ações:

    • Verifique dmesg e /var/log/messages para erros de I/O.
    • Use mdadm –detail /dev/md0 para obter mais informações.
    • Se a partição tiver tamanho diferente, recrie a partição para corresponder ao par.
  3. Problema: fdisk avisa que a tabela será recarregada no próximo reboot.
    Ações:

    • Planeje um reboot rápido.
    • Se não puder reiniciar, use partprobe /dev/sda para tentar notificar o kernel (nem sempre funciona se o disco está em uso).

Quando essa abordagem pode falhar (contraexemplos)

  • Sistemas com UEFI usando grub2/efibootmgr: o procedimento de GRUB clássico pode não ser suficiente — é necessário instalar em EFI System Partition (ESP).
  • Controladoras RAID de hardware: use utilitários do fabricante em vez de mdadm.
  • Discos com MBR/partições inconsistentes: sincronização pode falhar se as partições não tiverem o mesmo layout.

Abordagens alternativas

  • Usar grub-install (GRUB2) no sistema em execução: grub-install /dev/sda /dev/sdb pode ser mais direto em sistemas modernos.
  • Usar uma imagem de recuperação/LiveCD para instalar GRUB externamente, útil quando o sistema não está inicializável.
  • Hardware RAID para delegar espelhamento ao RAID controller, simplificando o arranque (dependendo do caso, pode ser menos portátil).

Mini-metodologia (passos essenciais)

  1. Fazer backup.
  2. Instalar GRUB em ambos discos.
  3. Verificar arrays e LVM.
  4. Alterar tipo de partição para fd.
  5. Adicionar partição ao array md0.
  6. Atualizar /etc/mdadm.conf.
  7. Reiniciar e validar.

Riscos e mitigação

  • Risco: perda de boot ao escrever incorretamente o MBR.
    Mitigação: garantir acesso KVM/IPMI e ter mídia de recuperação pronta.
  • Risco: arranque a partir de um disco sem espelhamento.
    Mitigação: instalar GRUB em todos os discos do array.

Glossário (1 linha cada)

  • mdadm: utilitário para gerenciar arrays RAID de software em Linux.
  • LVM: Logical Volume Manager, gerencia volumes lógicos sobre volumes físicos.
  • GRUB: GRand Unified Bootloader, carregador de boot usado por muitas distribuições Linux.

Resumo final

Seguindo estes passos você terá o GRUB instalado nos discos associados ao RAID1, a partição /dev/sda1 marcada corretamente para RAID autodetect e o dispositivo adicionado ao md0. Atualize /etc/mdadm.conf e reinicie para confirmar que o sistema arranca de forma redundante a partir do RAID.

Notas finais: adapte os comandos ao seu ambiente (nomes de dispositivos, BIOS/UEFI, versões de GRUB) e, se possível, realize toda a operação durante uma janela de manutenção com backups verificados.

Autor
Edição

Materiais semelhantes

Corrigir touchpad que não funciona no Windows 10
Tutoriais

Corrigir touchpad que não funciona no Windows 10

Instalar BoltWire no Ubuntu 18.04
Tutoriais Linux

Instalar BoltWire no Ubuntu 18.04

RAID1 em LVM: Preparar GRUB e /dev/sda
Sistemas

RAID1 em LVM: Preparar GRUB e /dev/sda

Desativar notificações do macOS High Sierra
macOS

Desativar notificações do macOS High Sierra

Como criar um pôster impactante em 6 passos
Design

Como criar um pôster impactante em 6 passos

Ver contagem de 'Não gostei' no YouTube
Tutoriais

Ver contagem de 'Não gostei' no YouTube