L'ideale sarebbe avere in '/boot/ una cosa del genere:
Codice: Seleziona tutto
vmlinux-generic
vmlinux-huge
Codice: Seleziona tutto
initrd-generic.img
Questa è la soluzione adottata su Archlinux.
Oppure, per rimanere in linea con la tradizione, basterebbe mettere al 'centro' la versione del kernel anziché alla fine - chi ha il numero di Pat? - e non creare link simbolici.
Ad esempio:
Codice: Seleziona tutto
vmlinuz-5.4.8-generic
initrd-5.4.8-generic.img
# ed eventualmente:
vmlinuz-5.4.8-huge
La prima soluzione sarebbe l'ideale, in quanto non richiede l'aggiornamento di grub.cfg ma solo dell'initramfs. D'altronde, è questa una delle ragioni per cui si dovrebbe preferire grub rispetto a lilo.
L'alternativa in stile Debian è più indicata se ad esempio vuoi mantenere nel sistema le vecchie versioni del kernel - esempio: 5.4.6, 5.4.7, etc. - ma richiede sempre la rigenerazione di grub.cfg ad ogni aggiornamento del kernel(perché di fatto l'aggiornamento ne aggiunge di nuovi) e infatti in Debian viene fatta in automatico.
Slackware invece è ancora 'LiloCentrica'.
L'approccio da questo punto di vista è impeccabile: nel mio 'lilo.conf' punto direttamente ai collegamenti simbolici - vmlinux e/o vmlinux-generic - e in caso di aggiornamento dei kernel devo solo rigenerare l'initrd del kernel generic. Dopo, probabilmente, devo dare anche 'lilo -v', ma sicuramente non devo più mettere mano alla configurazione.
Fatte queste premesse, con grub2 su Slackware l'unico modo per non sbattersi troppo secondo me è questo:
- disinstallare il 'kernel-huge' e reinstallare il 'kernel-generic'(giusto per rimettere in ordine i symlink in /boot);
- creare un initrd, dandogli un nome che serva allo scopo. Esempio:
Codice: Seleziona tutto
mkinitrd -c -k 5.4.8 -m ext4 -o /boot/initrd.gz
Codice: Seleziona tutto
~# grub-mkconfig -o /boot/grub/grub.cfg
Found linux image: /boot/vmlinuz-generic-5.4.8
Found initrd image: /boot/initrd.gz
Found linux image: /boot/vmlinuz-generic
Found initrd image: /boot/initrd.gz
Sì, però meglio uno che "ottantacinque".
Ma posso fare di più se ciò non mi piace: modifico /boot/grub/grub.cfg e tolgo le 2 voci che puntano a 'vmlinuz-generic-5.4.8
Codice: Seleziona tutto
menuentry 'Slackware-14.2+ GNU/Linux, with Linux 5.4.8' [***]
[....]
menuentry 'Slackware-14.2+ GNU/Linux, with Linux 5.4.8 (recovery mode)'
Codice: Seleziona tutto
menuentry 'Slackware-14.2+ GNU/Linux, with Linux generic[***]
[****]
menuentry 'Slackware-14.2+ GNU/Linux, with Linux generic (recovery mode)'[***]
[***]
A questo punto, su grub.cfg non ci torno più e in caso di upgrade del kernel della distro devo aggiornare solo
Codice: Seleziona tutto
/boot/initrd.gz
Domanda:
e se voglio gestire i kernel compilati da me, come devo procedere?
La risposta è già in ciò che è scritto sopra, magari se ne riparla.
Scusate la lungaggine.