Inicialize o Linux do RAID1 degradado com / boot instalado no md0

0

Antes de tudo, gostaria de dizer que sou muito novo no gerenciamento de matrizes RAID no Linux, então minhas perguntas provavelmente são muito básicas, mas não consigo encontrar meu cenário exato na Internet.

Eu tenho um sistema RAID1 com 2 HDDs e todas as partições são instaladas no topo da matriz RAID, incluindo a partição / boot. Hoje mdadm me avisou que o array estava degradado (provavelmente um dos HDDs estava falhando) e o array foi automaticamente transformado em um estado degradado quando eu verifiquei, como segue:

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[0]
      204736 blocks super 1.0 [2/1] [U_]

md2 : active raid1 sdb2[0]
      151858048 blocks super 1.1 [2/1] [U_]
      bitmap: 2/2 pages [8KB], 65536KB chunk

md1 : active raid1 sdb3[0]
      4092864 blocks super 1.1 [2/1] [U_]

Então eu continuei para desligar o servidor, substituí a unidade com falha e tentei inicializar a partir da unidade restante, mas agora sou recebido com a seguinte mensagem após o GRUB tentar inicializar o kernel:

Error 17: Cannot mount selected partition.

Alguém sabe onde eu vou daqui para inicializar o sistema da minha unidade de trabalho? Eu basicamente não tenho conhecimento do GRUB e já tentei ler a documentação algumas vezes, mas ainda é muito complexo para mim e estou com pressa, pois agora tenho um servidor desligado em minhas mãos. Qualquer ajuda seria apreciada.

    
por Railander 22.08.2016 / 23:43

2 respostas

0

Respondendo a minha pergunta alguns bons 2 anos depois ...

Acabei de exportar tudo deste servidor e formatá-lo, mas enfrentei o problema novamente recentemente e resolvi enfrentá-lo de frente.

Tudo o que estou mencionando aqui é feito com:

  • CentOS 7 com ml kernel de ELRepo .
  • Os dois dispositivos foram adicionados a um raid1 durante a instalação do SO ( como assim ) e todos partições foram montadas no topo do raid1 ( /boot , / e swap ). O LVM ou não parece não fazer diferença em relação a este tópico.
  • Como nas instalações padrão do CentOS 7, ele vem com GRUB2 em vez do legado GRUB , uma grande distinção, já que a maior parte da documentação encontrada on-line pertence à v1.
  • Minha configuração NÃO contém uma partição EFI . Pelo que eu descobri, a EFI não funciona em cima do RAID, então a grande atenção aqui, como o procedimento abaixo, não funcionará corretamente se você tiver EFI.

Ficou claro para mim que o problema era que o CentOS estava apenas instalando o gerenciador de inicialização (GRUB2) no primeiro dispositivo físico. Aparentemente, ele usa uma minúscula partição MSDOS (a partição é a terminologia correta? Talvez uma 'sinalização'?) Que não pode ser executada em cima do RAID. Por causa disso, mesmo simplesmente trocar os discos faz com que o sistema não consiga inicializar, mesmo que o disco secundário tenha uma cópia completa do sistema, ele não possui o gerenciador de inicialização.

Agora, explore a solução, que esperamos que seja simples: copie o gerenciador de inicialização do disco principal para o disco secundário.

Não sabia ao certo como não sabia exatamente como o bootloader chama os dispositivos. Talvez simplesmente espelhar o bootloader do primeiro causaria conflitos, então era possível que eu tivesse que inverter as entradas para saber qual dispositivo é realmente qual.

Ao explorar isso, encontrei uma solução para usar dd para copiar o gerenciador de inicialização no segundo disco. Eu encontrei um post de um usuário dizendo que eles sempre faziam isso e sempre funcionavam, mas para mim por qualquer razão isso não aconteceu.

Tentando entender melhor como funciona o GRUB2, descobri que ele inclui uma ferramenta de 'instalação' que adiciona facilmente o gerenciador de inicialização ao dispositivo desejado, e voila foi exatamente o que eu precisava! Tudo o que eu tive que fazer foi:

grub2-install /dev/sdb

Depois de trocar os discos, o sistema ainda é inicializado como esperado! Metade da missão cumprida.

Em seguida, depois de confirmar que ambos os dispositivos podem ser inicializados, tive de remover o disco com falha (agora 'sdb') da matriz (a documentação pode ser encontrada on-line, envolve a marcação do dispositivo como falho e, em seguida, removê-lo do array) e trocando-o pelo novo disco e, finalmente, adicionando-o de volta ao array mdadm e esperamos que ele comece a sincronizar automaticamente (você pode observar o progresso com watch cat /proc/mdstat ).

Além disso, não se esqueça de executar grub2-install novamente no novo dispositivo depois de terminar.

Espero que isso possa ajudar alguém a enfrentar o mesmo problema.

Se você tiver uma partição EFI, provavelmente precisará encontrar uma maneira de copiá-la para o início do dispositivo secundário ( dd deve fazer o trabalho, embora não tenha ideia de quais parâmetros você teria para dar).

    
por 26.06.2018 / 00:58
0

Se bem entendi, sua primeira unidade ( /dev/sda ) é aquela que você substituiu. Além disso, possivelmente ao instalar o grub, você esqueceu de instalá-lo em ambos os discos, conforme necessário, com uma configuração RAID1.

O problema é que o grub está procurando pelo primeiro disco rígido que não tem o grub instalado. Uma rápida pesquisa na Internet sobre o problema é exibida: link . Veja as etapas e páginas relacionadas e corrija-as conforme necessário. Para /dev/sdb , você precisará usar hd1 no grub.

    
por 23.08.2016 / 07:24