Como posso definir manualmente a variável do prefixo grub?

2

Meu grub quebrou, eu não sei o que causou isso, aconteceu depois que eu inicializei uma imagem live de uma distribuição Linux que eu ia tentar instalar, mas eu estava apenas no menu de configuração do anaconda, a instalação em si não havia começado ainda. O instalador congelou do nada antes que eu pudesse iniciar a instalação, e tive que reiniciar o sistema. Depois que eu fiz de alguma forma minha instalação do grub em / dev / sdb quebrou e não consigo inicializar em meus sistemas operacionais existentes.

Minha configuração é a seguinte: / dev / sdb1 (Inicialização), / dev / sdb3 (raiz do Arch Linux) / dev / sdb2 (inicialização do Windows) / dev / sdb4 (partição vazia, reservada para ser usada como um LVM para outras distribuições linux que pretendo instalar).

O prefixo grub deve ser (hd1, msdos1) / grub , mas quando eu tento reinstalar o grub e consertá-lo, por alguma razão sempre quer colocar (hd1, msdos3) / boot / grub como prefixo e root.

Quando eu tento inicializar, ele me dá o típico erro : file '/grub/i386-pc/normal.mod' não encontrado , e estou um pouco confuso, já que o grub- O comando install é executado corretamente em arch reportando sem erros, mas ainda não instala o grub corretamente.

Isto é o que eu faço para inicializar a partir do grub rescue:

set prefix=(hd1,msdos1)/grub
insmod normal
normal

Quando faço isso, carrego corretamente, agora só preciso de uma maneira de definir isso manualmente quando o grub é instalado. Além disso, só para ficar claro, executar o grub-install novamente não corrige o problema, apenas o repete. Grub parece esperar que eu o tenha instalado em / boot / grub em / dev / sdb3 quando está de fato instalado em / grub em / dev / sdb1

    
por Cestarian 25.02.2016 / 23:08

4 respostas

1

E.G .: grub-install --boot-directory = / media / NOME DO USUÁRIO / Mounted_BootVolume / --force / dev / sda3

onde / dev / sda3 é o "Patch-Core-Onto-Partition" e pode ser (mas não precisa ser) o mesmo que Mounted_BootVolume.

"... / grub" como o diretório de destino final obviamente não pode ser alterado

tirado da manpage: --boot-directory = ... instale imagens do GRUB sob o diretório DIR / grub em vez do diretório boot / grub

P.S .: o novo diretório personalizado é implicitamente refletido por qualquer inicialização do shell do grub (ou seja, o grub.cfg não precisa de prefixo = linhas adicionadas) AFAIK

    
por 09.06.2016 / 21:02
0

Você já tentou Reparo de inicialização ? É um USB ativo que tenta corrigir automaticamente a instalação do Grub.

    
por 26.02.2016 / 01:34
0

Seu sistema de arquivos /boot foi montado quando você executou grub-install ?

(A menos que você especifique explicitamente todos os parâmetros, grub-install tentará detectar automaticamente a partição que contém o diretório /boot/grub e definirá o número da partição e o prefixo padrão de acordo. Se /boot for separado sistema de arquivos e não montado enquanto você está rodando grub-install , a detecção automática pode ficar confusa.)

Como solução parcial (para a parte do diretório do prefixo), você pode fazer isso enquanto o sistema de arquivos /boot está montado:

cd /boot
ln -s . boot

Agora há um link simbólico /boot/boot que aponta de volta para /boot , que parece sem sentido. (Não se preocupe, ferramentas como find e locate são inteligentes o suficiente para não ficarem presas em um ciclo infinito a partir disso.)

Mas quando o GRUB está tentando acessar (partition)/boot/grub , ele atinge o link simbólico: quando substituído pelo destino do link, o caminho se torna (partition)/./grub , que é igual a apenas (partition)/grub ... que é o que você deseja.

    
por 11.09.2018 / 11:51
0

Eu passei algumas horas aqui batendo minha cabeça contra a parede, a peça que faltava no quebra-cabeça é que grup-install não regenera seu arquivo grub.cfg , você precisa executar update-grub ou o comando equivalente grub-mkconfig -o /boot/grub/grub.cfg .

    
por 23.11.2018 / 22:56

Tags