Product SiteDocumentation Site

8.11. Installare un kernel

8.11.1. Funzionalità di pacchetto kernel Debian

Un pacchetto kernel Debian installa l'immagine del kernel (vmlinuz-versione), la sua configurazione (config-versione) e la sua tabella dei simboli (System.map-versione) in /boot/. La tabella dei simboli aiuta gli sviluppatori a comprendere il significato di un messaggio d'errore del kernel: senza di essa il kernel restituirebbe solo un «oops» (un «oops» del kernel è equivalente ad un segmentation fault nei programmi in spazio utente, in altre parole messaggi generati a seguito della dereferenziazione di un puntatore non valido) che contiene unicamente un indirizzo numerico di memoria, che è un'informazione inutile senza una tabella che relazioni questi indirizzi ai simboli ed ai nomi delle funzioni. Questi moduli sono installati nella directory /lib/modules/versione/.
Gli script di configurazione del pacchetto generano automaticamente un'immagine initrd che è un mini-sistema pensato per essere caricato in memoria (da qui il nome, che sta per «init ramdisk») dal bootloader e utilizzato dal kernel Linux unicamente per caricare i moduli necessari ad accedere ai dispositivi che contengono il sistema Debian completo (per esempio, i driver per i dischi IDE). Alla fine gli script di post-installazione aggiornano i collegamenti simbolici /vmlinuz, /vmlinuz.old, /initrd.img e /initrd.img.old così che possano puntare rispettivamente agli ultimi due kernel installati, così come alle corrispondenti immagini initrd.
lilo può lavorare con questi collegamenti simbolici automaticamente usando l'ultimo kernel installato consentendo comunque alla macchina di avviarsi dal kernel precedente se l'ultimo installato non funziona. Questo tuttavia richiede che il comando lilo sia eseguito dopo ogni installazione del kernel. Questo può essere automatizzato impostando do_bootloader = yes in /etc/kernel-img.conf.
Nella maggior parte dei casi il bootloader sarà grub e la configurazione predefinita eseguirà update-grub dopo ogni installazione o rimozione di un kernel affinché il file /boot/grub/grub.cfg (o /boot/grub/menu.lst con GRUB Legacy) sia aggiornato. Questo consente a tutti i kernel installati di essere visualizzati (e disponibili) nel menu di GRUB all'avvio.

Esempio 8.7. File di configurazione del pacchetto Kernel

do_symlinks = yes
relative_links = yes
do_bootloader = no
do_bootfloppy = no
do_initrd = yes
link_in_boot = no
postinst_hook = update-grub
postrm_hook = update-grub

8.11.2. Installare con dpkg

Usare apt-get è così comodo che rende facile dimenticarsi degli strumenti di basso livello, ma la via più facile per installare un kernel compilato è usare un comando come dpkg -i pacchetto.deb dove pacchetto.deb è il nome di un pacchetto linux-image come linux-image-2.6.32-falcot_1_i386.deb.
I passi di configurazione descritti in questo capitolo sono base ma funzionano sia per un sistema server sia per una postazione di lavoro e possono essere duplicati massivamente con modalità semi-automatiche. Tuttavia non sono sufficienti per fornire da soli un sistema completamente configurato. Alcune parti necessitano ancora di configurazione, cominciando con i programmi di basso livello conosciuti come «servizi Unix».