Recentemente ho installato una Debian su dischi con partizionamento GPT e con boot gestito dal Grub della Slackware. Non so quale versione usi della Debian, comunque ti metto il codice del template impostato su /etc/grub.d/12-debian
Codice: Seleziona tutto
#! /bin/sh
set -e
echo "Configuro Debian kernel generic (/dev/sdb2)" >&2
cat << EOF
menuentry 'Linux Debian 11.2 (su /dev/sdb2 kernel generic-5.10.xx)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-758c9d7a-4ac7-4d32-a2b6-fb2f72b52ef9' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
set root='hd1,gpt2'
if [ x$feature_platform_search_int = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2 758c9d7a-4ac7-4d32-a2b6-fb2f72b52ef9
else
search --no-floppy --fs-uuid --set=root 758c9d7a-4ac7-4d32-a2b6-fb2f72b52ef9
fi
echo 'Caricamento del kernel Linux ...'
linux /boot/vmlinuz root=UUID=758c9d7a-4ac7-4d32-a2b6-fb2f72b52ef9 ro quiet
echo 'Caricamento del ramdisk iniziale ...'
initrd /boot/initrd.img
}
EOF
Se vuoi riciclare questo codice devi ovviamente impostare l'UUID della partizione contenente la directory /boot della Debian. Sono del parere che con Grub è opportuno utilizzare gli UUID piuttosto che i canonici /dev/sdx o /dev/hdx . Se non lo conosci puoi ricavarlo con il comando
blkid (da eseguirsi come root o con sudo, nella Slackware o nella Debian)
Fatto questo e impostato il template, ricordati di generare i link simbolici al kernel e al initrd predefiniti. Nella configurazione che ho impostato, questi link simbolici sono posizionati nella directory /boot
Dalla Slackware o dalla Debian vai nella directory /boot della Debian e genera i seguenti symlink:
Codice: Seleziona tutto
# ln -s kernel-nome-file vmlinuz
# ln -s initrd-nome-file initrd.img
Questa operazione dovrai naturalmente farla ogni volta che hai un aggiornamento del kernel nella Debian
Presumendo che abbia fatto dei template anche per la entry (o le entry) della Slackware, fatto questo, *nella Slackware* genera il menu di grub:
Se hai già installato il Grub della Slackware non devi fare altro, altrimenti devi anche installarlo nella partizione UEFI del disco che usi per il boot. Se non ricordo male devi lanciare questo comando:
se non ricordo male (l'ho fatto un paio d'anni fa), DIR dovrebbe essere il percorso in cui è montata la partizione UEFI (nel mio sistema è /boot/efi, in cui viene montata la partizione EFI del primo disco, quello che fa il boot predefinito)
/dev/sdX è naturalmente il disco di cui si fa il boot (nel mio è /dev/sd1)
Se non mi è sfuggito nulla dovrebbe funzionare, eventualmente sia grub-mkconfig sia grub-install restituiscono nell'output gli eventuali errori.
Non conosco elilo o lilo perché non li ho mai usati, ma ti assicuro che una volta prese le misure e risolti gli eventuali problemini iniziali, Grub è un ottimo bootloader per un sistema multiboot personalizzato