GRUB instalado em todos os sistemas operacionais. Qual deles está realmente em uso?

3

Quando você tem vários sistemas operacionais Linux no mesmo computador, cada instalação tem sua própria instalação do GRUB, e a instalação mais recente é geralmente aquela que é usada durante a inicialização. O problema surge quando não consigo mais lembrar qual é a instalação mais recente e quero fazer modificações no menu GRUB. Como faço para descobrir qual deles está em uso antes de verificar cada instalação individualmente? Existe uma configuração de limpeza que evita o problema em primeiro lugar, tendo apenas uma instalação do GRUB?

    
por howardh 29.01.2013 / 07:37

4 respostas

2

Parece que você está instalando o GRUB no registro mestre de inicialização do disco rígido principal. Como os discos rígidos têm apenas um MBR, apenas um gerenciador de inicialização pode residir nele por vez. Você também parece ter dito a todos os seus sistemas operacionais para instalar um gerenciador de inicialização.

A maneira correta de lidar com isso (supondo que você queira usar o MBR) é impedir que o GRUB se instale no MBR em qualquer sistema operacional do qual você não queira instalar o GRUB. A maneira mais trivial de fazer isso é provavelmente remover o pacote do grub.

Outra maneira seria ter o seu gerenciador de inicialização instalado em uma partição e inicializar a partir daí, mas isso não é tão comum.

    
por 29.01.2013 / 08:20
2

O ideal é que você instale somente grub uma vez e adicione entradas manualmente para cada nova distro que você instalar.

Uma maneira de descobrir seria ver o monitor quando o computador é inicializado, geralmente há uma mensagem específica de distribuição.

Mesmo que esse não seja o caso, você pode fazer as alterações em qualquer distro que estiver usando no momento e depois atualizar o grub. Isso atualizará o menu do grub, após o qual você poderá fazer um grub-install para o mbr .

Também esta resposta diz como você pode encontrar onde estão os diferentes estágios de grub.

    
por 29.01.2013 / 08:24
2

Idealmente, como diz o nikhil, "você deve instalar o grub apenas uma vez" e "adicionar manualmente entradas para cada nova distro que você instalar", ou melhor ainda, ter novas instalações solicitando a localização dos seus arquivos grub e adicionar seus arquivos. entrada própria; Eu acho que algumas distros podem fazer isso.

Infelizmente, nem sempre é assim tão simples, particularmente se você está tentando experimentar novas distros com as quais não está familiarizado, etc., etc., e uma vez que seu MBR é sobrescrito, você deve lidar com a tediosa tarefa de reinstalar seu antigo grub. O MBR é o primeiro meio físico de kilobyte do disco (também conhecido como o setor de inicialização ), carregado e executado pelo BIOS do PC ( leia mais ), e é aí que o grub é iniciado, mas depois carrega mais coisas de uma partição (por exemplo, as coisas que você pode encontrar em /boot/grub2/i386-pc ).

Então, aqui está um rápido corte / atalho para lidar com todo o problema: antes de instalar uma distro, copie seu MBR. Deixe o instalador fazer o que quiser, sem qualquer problema, depois, 1) coloque sua cópia do MBR de volta no setor de inicialização, 2) adicione uma entrada no menu apropriado do grub.

O passo # 1 é bastante simples, e é de fato uma boa ideia sempre que você fizer uma instalação caso algo se atrapalhe e você só queira voltar ao ponto de partida. Cuidado, isso não se aplica a novos discos UEFI / GPT formatados pelo Windows. O setor de inicialização que contém o MBR é exatamente 512 bytes:

dd if=/dev/sda of=mbr.copy bs=512 count=1

"/ dev / sda" deve ser o disco físico em que o MBR está. Observe que isso é não "/ dev / sda1", que se refere à primeira partição em / dev / sda.

Faça sua instalação e inicialize no novo sistema. Você pode então montar onde quer que você coloque o seu backup MBR, e:

dd if=mbr.copy of=/dev/sda bs=512 count=1

Presto! Reinicie, e é assim que a nova instalação nunca aconteceu. Ele ainda está lá em sua partição, e tudo o que você precisa fazer é passo # 2 adicionar uma entrada do menu grub para ele no seu menu antigo do grub.

O passo 2 é o mais difícil, porque requer que você examine o /boot/grub2/grub.cfg em ambas as partições e decida como adicionar a nova entrada. Primeiro, faça uma cópia de backup do grub.cfg como está . Você deve ser capaz de simplesmente cortar e colar as entradas diretamente, mas tenha cuidado se elas fizerem referência a alguma função definida no arquivo, por exemplo:

    load_video
    insmod part_msdos

Olhando para o restante de grub.cfg , é implícito que a segunda linha é uma função integrada do grub, mas a primeira, load_video é definida mais acima:

function load_video {
    [...]

Então lembre-se de incluir essa definição se você incluir uma referência a ela. Não tenha medo de experimentar aqui, se isso não funcionar, você ainda pode inicializar seu sistema antigo e começar a fazer perguntas mais específicas;). O pior vem e você estraga completamente o grub.cfg, inicializa um CD ao vivo e o substitui pela cópia de backup que você fez.

    
por 29.01.2013 / 12:22
1

Eu recomendo instalar uma única versão do Grub no seu setor de inicialização, aquele da sua distribuição mais estável. Se você tiver outros sistemas operacionais, instale seu gerenciador de inicialização no primeiro setor de sua própria partição e carregue-o a partir do Grub de inicialização. Dessa forma, você sempre terá um sistema inicializável e todos os mecanismos de upgrade funcionarão conforme planejado.

Os scripts de configuração do Grub também são capazes de detectar kernels de outras instalações do Linux. Isso é um bom extra, mas é propenso a quebrar, por exemplo, depois de atualizar um kernel, mas não inicializou o sistema operacional principal. Portanto, use essa facilidade somente além do carregamento em cadeia.

(Mas, na verdade, quem carrega o dual hoje em dia? Com máquinas virtuais, você pode rodar todos os seus sistemas ao mesmo tempo!)

    
por 30.01.2013 / 02:12

Tags