Grub2 no LVM: Como posso alternar entre LVs raiz alternativos?

2

Eu tenho uma instalação funcional do Ubuntu Server 12.04 LTS (precisa) instalada em um volume LVM (/ dev / vg0 / root). / boot está no mesmo LV, e o Grub2 inicia bem usando seus próprios módulos raid / lvm / xfs. Ótima coisa!

Agora eu gostaria de testar o Ubuntu Server 14.04 LTS (trusty) para avaliar se os pacotes mais recentes melhoram as coisas na minha configuração. Então, o que eu faço é simplesmente criar outro LV, digamos / dev / vg0 / root-trusty, e prepará-lo da maneira que normalmente faço quando faço setups bare metal usando debootstrap e chroot, instalando kernel, grub-pc, etc. / p>

Agora eu tenho dois sistemas de arquivos raiz completos em meu LVM, incluindo dois diretórios / boot e dois arquivos /boot/grub/grub.cfg diferentes. Por favor me ajude a pensar: Como o Grub sabe agora qual grub.cfg usar?

A única maneira que faria sentido para mim é que grub-install economiza informações sobre o que o sistema a partir do qual o grub-install é executado é o root-fs correto. Portanto, a alternância entre os dois LVs raiz para inicialização pode ser feita emitindo grub-install do respectivo sistema de arquivos (chrooted) e, em seguida, reinicializar.

É assim? Se não, o que mais o Grub2 faz quando "encontra" múltiplos sistemas de arquivos que ele pode usar para inicializar o stage-2? Eu não conseguia encontrar nenhuma informação difícil sobre isso até agora. Então, eu pensei em perguntar antes de investir as últimas horas da noite em tentativa e erro.

Obrigado por qualquer luz derramada sobre isso!

PS: para maior clareza - NÃO quero dizer a inicialização dupla típica usando várias entradas do sistema operacional em um único grub.cfg em uma partição / boot separada. Eu sei disso, mas aqui eu meio que quero usar as instalações simultâneas do Grub2 em partições separadas.

    
por memartin 17.07.2014 / 13:27

3 respostas

1

Se você está olhando para a sua configuração do grub2 (use bootinfoscript para um breve resumo), você notará que a primeira etapa no processo de inicialização é olhar para o MBR e encontrar um ponto de entrada de onde carregue o código necessário para acessar todos os sistemas de arquivos misteriosos que um PC BIOS nunca sonhou em ouvir.

Se você não tiver bootinfoscript , provavelmente desejará buscá-lo ...

sudo apt-get install boot-info-script cl-awk 

Exemplo de saída:

============================= Boot Info Summary: ===============================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    for (tetrad-12.04)/boot/grub on this drive.
 [detailled per-partition output omitted]

Há um bom artigo no wiki alemão descrevendo como analisar uma configuração do grub .

Para os primeiros testes de sua segunda partição de inicialização recém-instalada, eu sugiro deixar seu MBR inalterado (você fez um backup, caso a instalação estrague, não é?), inicialize no antigo 12.04 partição após a instalação, execute update-grub para incluir a instalação nova e brilhante na partição 14.04 no menu, verifique /boot/grub/grub.cfg (a entrada para 14.04 deve apontar para a partição correta, não a 12.04, e provavelmente use nomdmonddf nomdmonisw enquanto você ainda estiver usando o 12.04 em paralelo.

Se você conseguir reinicializar no 14.04 usando essa configuração, você pode executar grub-install da sua partição 14.04 para que ele seja inicializado em 14.04 sem o desvio até 12.04.

Ambas as partições raiz detectarão a outra partição raiz durante o update-grub, e ambas poderão inicializar a outra partição através do menu gerado, mas é a instalação do grub que determina qual partição atende o / boot / grub / grub .cnf.

PS: Acontece que eu apenas configurei um ambiente como esse para experimentar com segurança a atualização de lançamento de 12.04 para 14.04. (Um lv cada para 10,04, 12,04 e 14,04)

    
por Tatjana Heuser 15.11.2014 / 18:48
0

Eu não sei se você pode, porque mesmo se você instalar o GRUB em diferentes HDs, eu acho que ele ainda precisa ser apontado com o MBR. Embora você possa tentar instalar o grub A em sda e grub B em sdb e, em seguida, apenas escolher qual inicializar na bios todas as vezes.

    
por Michael Thees 16.09.2014 / 02:45
0

Existe apenas um MBR por disco. O MBR inicializará no grub que escreveu mais recentemente esse MBR.

O MBR encontra o sistema de arquivos que está procurando pelo UUID. Grubs recentes são totalmente capazes de LVM. E sim, você pode mudar rodando o grub-install a partir do outro sistema operacional, mesmo que seja chrooted.

Eu acredito que responde plenamente a sua pergunta. Como você observou, você poderia simplesmente usar as entradas extras adicionadas ao boot / grub / grub.cfg para inicializar em outros sistemas operacionais que você tem, no entanto, você claramente escreveu isso fora de sua pergunta.

    
por gregrwm 13.04.2016 / 21:49