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.