Como agregar entradas do grub de outra partição?

0

Digamos que você tenha um GRUB "principal" em / dev / sda, com vários kernels linux, e você também tem uma distribuição secundária em / dev / sdb2.

O computador inicializa no / dev / sda GRUB. A partir daí, como inicializar os kernels em / dev / sdb2?

Quando você atualiza-grub na distribuição em / dev / sda, o prober do OS detectará aqueles em / dev / sdb2 e preencherá o menu do GRUB de acordo em (/dev/sda)/boot/grub/grub.cfg .

Mas isso é inconveniente, como quando você instala um novo kernel ou altera opções de inicialização na distribuição / dev / sdb2, isso atualizará (/dev/sdb2)/boot/grub/grub.cfg mas não o principal grub.cfg.

Como fazer com que o GRUB principal leia e incorpore as entradas do GRUB secundário?

    
por ysalmon 14.07.2018 / 11:01

1 resposta

0

Existe um comando do GRUB, não documentado no manual , que analisa precisamente um arquivo de configuração, extraindo as entradas e ignorando o restante da configuração: extract_entries_source . Com isso, qualquer alteração nas entradas do menu GRUB da distribuição secundária será automaticamente levada em conta no menu principal do GRUB.

Na distribuição principal ("host")

Adicione uma entrada personalizada em /etc/grub.d/40_custom :

# A dummy entry to mark the separation
menuentry "Extracted from /dev/sdb2" {
        true
}

# the following if for MBR disk, change to part_gpt if necessary
insmod part_msdos
# adapt with appropriate file system module
insmod ext2
# replace aaaa-bbbb-cccc with actual partition UUID
search --fs-uuid aaaa-bbbb-cccc --set slavegrub --no-floppy
extract_entries_source ($slavegrub)/boot/grub/grub.cfg

O UUID da partição (do sistema de arquivos) pode ser obtido com blkid .

Você também desejará impedir que o GRUB preencha automaticamente o menu com o prober do OS. Isso é configurado em /etc/default/grub e pode ser desabilitado globalmente com GRUB_DISABLE_OS_PROBER ou seletivamente para algumas partições com GRUB_OS_PROBER_SKIP_LIST (consulte manual do GRUB ).

Então você pode update-grub .

Na distribuição secundária

Não há nada a fazer, pois o arquivo /boot/grub/grub.cfg será lido apenas para suas entradas e nunca será realmente executado. Você provavelmente desejará desabilitar completamente o prober do OS, pois essas entradas seriam redundantes quando integradas no menu principal do GRUB.

    
por 14.07.2018 / 11:01