La scelta dipende molto da come effettui gli aggiornamenti, sia su Kubuntu sia su Slackware, e da quale sistema operativo gestisci il boot.
Parto dal presupposto che gli aggiornamenti su Kubuntu saranno in automatico e che il Grub sia quello installato con Kubuntu. In questo caso l'aggiornamento di Kubuntu comporterà una riscrittura di /boot/grub/grub.cfg e sistematicamente ti ritroverai le entry della Slackware taroccate. Per evitare questo ti conviene modificare i permessi sul file /etc/grub.d/30_os-prober (sudo chmod a-x /etc/grub.d/30_os-prober) per evitare che l'aggiornamento inserisca mille mila entry per la slackware che probabilmente saranno tutte taroccate. Le entry per la Slackware le prepari con appositi file inseriti in grub.d
Ad esempio, nella mia macchina (che al momento ha solo la slackware) ho due entry, una per il kernel generic e una per il kernel huge. Ho reso non eseguibili tutti gli script che ci sono in /etc/grub.d ad eccezione di 00_header e 30_uefi-firmware e ho aggiunto due script per i due kernel, denominati rispettivamente 11_generic e 12_huge
Questi sono i rispettivi codici:
Codice: Seleziona tutto
#! /bin/sh
set -e
echo "Configuro Slackware kernel generic (/dev/sda3)" >&2
cat << EOF
menuentry 'Linux Slackware Current (su /dev/sda3 kernel generic-5.13.xx)' --class slackware_14_2_ --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-generic-advanced-8535dacc-0131-466f-8b0e-4f662be0eda5' {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_int = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 8535dacc-0121-466f-8b0e-4f662be0eda5
else
search --no-floppy --fs-uuid --set=root 8535dacc-0131-466f-8b0e-4f662be0eda5
fi
echo 'Caricamento del kernel Linux generic ...'
linux /boot/vmlinuz-generic root=UUID=8535dacc-0131-466f-8b0e-4f662be0eda5 ro
echo 'Caricamento del ramdisk iniziale ...'
initrd /boot/initrd-generic
}
EOF
Codice: Seleziona tutto
#! /bin/sh
set -e
echo "Configuro Slackware kernel huge (/dev/sda3)" >&2
cat << EOF
menuentry 'Linux Slackware Current (su /dev/sda3 kernel huge-5.13.xx)' --class slackware_14_2_ --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-8535dacc-0131-466f-8b0e-4f662be0eda5' {
load_video
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 8535dacc-0131-466f-8b0e-4f662be0eda5
else
search --no-floppy --fs-uuid --set=root 8535dacc-0131-466f-8b0e-4f662be0eda5
fi
echo 'Caricamento del kernel huge ...'
linux /boot/vmlinuz root=/dev/sda3 ro
}
EOF
In questo modo, a prescindere da quale Grub si utilizzi, le entry per la Slackware vengono inserite correttamente in grub.cfg ogni volta che si avvia grub-mkconfig. Sconsiglio la modifica diretta di grub.cfg, a meno che non si debba solo modificare qualche settaggio di poco conto, altrimenti si finisce per combinare pasticci, soprattutto se devono essere rimosse, aggiunte o modificate intere entry
Tieni presente che io ho dischi SATA con partizionamento GPT, non so se alcuni settaggi con dischi SSD devono essere modificati, in ogni caso consiglio di usare l'UUID (predefinito in Grub). Per conoscere l'UUID della partizione contenente la Slackware digita sudo blkid
Sulla macchina di mia moglie preferisco usare il grub di Ubuntu perché ci sono una Mate, una vecchia Ubuntu, Windows e Slackware, però le entry della Slackware e di Windows sono impostate con lo stesso criterio, disabilitando lo script 30_os-prober
Spero di essere stato chiaro al di là dell'essere prolisso