Como instalo o GRUB em uma instalação do sistema RAID?

43

Estou tentando configurar e instalar o Ubuntu em uma instalação RAID 1. Eu tenho dois discos, sdb e sdc. Eu tenho seguido este guia

https://help.ubuntu.com/community/Installation/SoftwareRAID

que funciona mais ou menos para configurar tudo e instalar o Ubuntu. O problema está no final da instalação, ele tenta instalar o GRUB. Por padrão, ele tenta o meu "primeiro disco", que fornece um "erro fatal". Eu tentei instalá-lo em uma partição específica, por exemplo, sdb1, bem como dispositivos RAID, por exemplo, md0, md1, etc. Nada parece funcionar.

O erro real é

Não foi possível instalar o GRUB no / dev / sdb

A execução do 'grub-install' / dev / sdb 'falhou.

Este é um erro fatal.

Então, eu sou levado de volta ao menu principal de instalação. Se eu escolher a opção "Instalar o carregador de inicialização GRUB em um disco rígido", posso escolher a partição, mas inserir sdb2 ou md1 gera o mesmo erro.

Então fui em frente e simplesmente não instalei o GRUB, o que significa que agora tenho uma instalação do Ubuntu funcionando, mas não consigo inicializá-la. Tentei inicializar a partir do LiveCD para instalar o GRUB, mas não consigo executar o chroot no meu sistema porque não parece reconhecer que meu disco é um disco Linux. Há um erro sobre ser uma partição RAID.

Então, basicamente, eu realmente gostaria de saber como você sabe em qual dispositivo instalar o GRUB na instalação ou, no mínimo, como instalá-lo no meu sistema agora.

Suponho que devo mencionar também que o sda é uma instalação do Windows 7 que eu gostaria de manter por perto e poder acessar na inicialização.

Obrigado por qualquer ajuda.

Kris Harper
fonte
Sem dizer qual foi o erro, não podemos ajudar. Instalar no sda (e possivelmente sdb e sdc também) é a coisa correta a ser feita. Para acessar o ataque a partir do LiveCD você precisa instalar o pacote mdadm:sudo apt-get install --no-install-recommends mdadm
psusi
Desculpe, editei minha postagem para incluir a mensagem de erro. A razão pela qual eu estava tentando instalar algo diferente de sdb, sdc é que li este tópico que parecia dizer que eu deveria encontrar a partição correta em / dev / mapper. Mas quando eu passo para o shell no instalador, nada aparece no / dev / mapper além do controle.
Kris Harper #
Isso é para fakeraid, não para software raid.
Psusi
1
Você está usando uma tabela de partição MSDOS ou GPT? Se você estiver usando GPT, deverá criar uma partição bios_boot.
Psusi
1
Consegui fazê-lo funcionar, criando três partições em cada unidade, reunindo dois conjuntos para o sistema de arquivos e trocando e deixando os dois últimos semRAID. Então eu selecionei / boot como um ponto de montagem para um deles e o escolhi ao instalar o GRUB. Isso parece funcionar. Minha única preocupação é que o GRUB não esteja instalado na outra unidade; portanto, se houver uma falha na unidade, talvez não seja possível inicializar. Talvez eu possa consertar isso instalando o GRUB na outra unidade, apesar de essa partição não estar definida como um ponto de montagem / boot?
Kris Harper

Respostas:

16

Meu problema acabou sendo que eu tinha a tabela de partição GUID, pois minhas unidades tinham 2 TB cada. O método que eu originalmente tentei seguir não assumiu isso e, portanto, a instalação do GRUB não funcionou.

Em vez disso, você deve criar uma pequena partição (1 MB) em cada disco e agrupá-la em RAID e defini-la como uma partição de inicialização do GRUB (não tenho certeza do nome real). Configure suas outras partições RAID (por exemplo, swap e /) e, em seguida, o instalador do GRUB deve encontrar bem a área de inicialização.

(No Debian, isso é chamado de área reservada de inicialização do BIOS .)

Kris Harper
fonte
1
isso simplesmente funciona para raid1 - eu estava tentando fazer isso para raid6 e ele continua falhando sem uma mensagem de erro de ajuda :(
Mr.Gosh
como você criou o ataque de software? Atualmente, estou tentando fazer o mesmo. veja minha pergunta sobre serverfault: serverfault.com/q/749274/71452
c33s
13

Muitas das respostas aqui estão incorretas, dizendo para desativar o BIOS RAID! A solução correta está nesta entrada do blog . Vou resumir abaixo.

No estágio da instalação em que está tentando instalar o GRUB, ele detectará como

/dev/mapper

Isso está incompleto! É por isso que a instalação do GRUB falha.

Você precisa do nome real da matriz RAID para instalar . Portanto, durante essa etapa, pressione ctrl+ alt+ F2para ir para um terminal do busybox e digite

ls -l /dev/mapper

Escolha o nome do seu array na lista mostrada e pressione ctrl+ alt+ F1para voltar à instalação (você pode alternar o quanto quiser sem problemas) e digite-o no campo como

/dev/mapper/{your array name}  

o GRUB é instalado perfeitamente e você está pronto para começar, com uma matriz RAID BIOS intacta.

Jeff Atwood
fonte
7
E se ls -l / dev / mapper não mostrar nada além de "controle" como seu conteúdo?
Brian Bauman
Não tenho certeza. Eu suspeito que você não tem o RAID do BIOS, também conhecido como RAID "falso", nesse momento?
Jeff Atwood
Concluo o particionamento e a instalação como de costume, e a instalação falha na instalação do GRUB. Não sei por que o RAID não seria iniciado naquele momento, pois a instalação era especificamente para as três matrizes de ataque que eu construí - raid1 /, raid0 swap e raid1 / home.
Brian Bauman
Vale ressaltar que eu estava erroneamente usando o fakeRAID e o software RAID de forma intercambiável. Minha primeira tentativa foi baseada no uso do BIOS raid, mas os conselhos deste segmento recomendaram que eu usasse o RAID do software Linux, que é o que venho tentando fazer funcionar desde então. Tentará o seu conselho usando o BIOS fakeRAID novamente e apresentará um relatório.
27612 Brian Bauman
1
Isso ainda é válido para 14.04? Eu não posso ativar a flag boot em 14,04 - então eu estou querendo saber se esta solução só está disponível para 12,04
Mr.Gosh
2

Uma pequena variação na receita do @ root45 me levou a trabalhar (em um sistema somente Ubuntu). Eu não fiz a partição inicializável parte da matriz Raid.

Criei uma pequena partição inicializável do GRUB (escolhi a opção do editor de partições: "use is 'bootgrub'" ou algo semelhante) e não a fiz parte do dispositivo Raid junto com as partições swap e data (/).

Você pode reescrever os dados do Grub2 na partição 'bootgrub' a qualquer momento ... pois, de fato, o processo de instalação será, em seu nome, quando você tiver a opção após todos os pacotes selecionados terem sido instalados; ou a qualquer momento, se estiver corrompido ao grub-install /dev/sdaalterar o 'sda' para o dispositivo da partição que você usou na 'etapa um' acima para ser 'usado como "bootgrub"'.

Se você optar por causar a instalação de muitos pacotes em um servidor LAMP, por exemplo, pode demorar um pouco depois do particionamento antes de ser perguntado sobre a gravação dos dados do Grub2 no disco rígido ... e os padrões oferecidos nesse o tempo causou um erro até eu fornecer o dispositivo da minha partição "bootgrub" ... e tudo deu certo e agora tenho um sistema viável.

iainH
fonte
1

Não posso ajudar com a instalação do grub agora, mas o que fiz para executar meu RAID é que segui esta instrução:

Como instalar o Ubuntu 8.04 com software RAID1 | HowtoForge - Linux Howtos e Tutoriais e instale o grub em todas as partições raid (não swap).

Isso será útil quando um disco rígido falhar, ainda haverá um grub em funcionamento.

K. Hendrik
fonte
Quando crio minha primeira partição (para o sistema de arquivos), não consigo definir essa partição para ser inicializável. A opção está lá, mas se eu a selecionar, ela pisca e diz "sinalizador de inicialização: não". Fui em frente e instalei-o de qualquer maneira, mas ainda assim recebi o mesmo erro ao instalar o GRUB.
Kris Harper
Hmm, eu nunca ouvi falar desse tipo de comportamento antes. Qual é a configuração exata que você usou para configurar seu ataque.
K. Hendrik
Eu tenho três discos, sda é o Windows 7. Os outros, sdb e sdc estão em branco quando inicio. Quando chego ao gerenciador de partições, faço uma nova partição em cada unidade para o sistema de arquivos. O seu guia vinculado diz para definir isso como "volume físico para RAID", em vez de "sistema de arquivos Ext4", então eu fiz isso. Mas isso significa que não consigo definir o sinalizador inicializável. Eu fiz o resto da unidade trocar e fiz o mesmo nas outras unidades.
Kris Harper
Parece-me que você não segue as instruções até o fim. Depois de criar os volumes de incursão, você precisa mapeá-los para uma incursão e depois atribuir o sistema de arquivos, por exemplo, ext4, depois poderá atribuir o sinalizador inicializável. Você precisa criar 2 partições raid em cada unidade uma para trocar uma por /.
K. Hendrik
Bem, eu fiz isso eventualmente. Mas o seu guia diz "Tornar a partição inicializável" antes de criar o RAID do software, e o instalador não me permite fazer isso. Eu continuei com a instalação e criei o RAID, depois designei / e troquei pelos dois dispositivos RAID. Mas ainda há um erro ao tentar instalar o GRUB.
Kris Harper