Se ti stai chiedendo se puoi semplicemente installare o aggiornare un kernel "su" un sistema esistente senza installare un mucchio di altri programmi?
Il kernel di Linux è un file binario solitamente chiamato vmlinuz-x.x.x-x-name
nella boot
directory (che di solito è una piccola partizione separata all'inizio del disco rigido) dove le x sono un numero di versione. "name" è solo un nome scelto per il kernel che può essere impostato in fase di compilazione, puoi usarlo per identificare per quale tipo di macchina o architettura è il kernel o per qualsiasi altra ragione.
Viene caricato all'avvio da un bootloader, GRUB
che in genere viene invocato dal codice di avvio nell'MBR che viene richiamato dalla ROM del BIOS. Una volta caricato non viene "tenuto aperto" o protetto in modo speciale. Quindi puoi sostituire quel file con un altro kernel funzionante. Ma GRUB
ha una bella funzionalità che ti consente di selezionare più kernel da cui avviare. Quindi è abbastanza intelligente aggiungere il tuo kernel aggiuntivo a quell'elenco, ma mantieni l'originale kernel funzionante noto nel caso in cui le cose vadano male.
Credo che quasi tutte le distribuzioni creino un kernel "modulare" in cui i driver di dispositivo si trovano in file separati. Quindi la maggior parte dei kernel ha bisogno di un filesystem contenente i driver disponibili al momento dell'avvio ed è a questo che serve un "initrd" (disco RAM iniziale) o "initramfs". GRUB
caricherà il kernel in una posizione nella memoria e initrd in una posizione diversa, e salterà al kernel dicendogli dove si trova initrd, avviando Linux.
I driver possono anche essere "integrati" nel kernel e sono quindi caricati e disponibili automaticamente quando il bootloader carica l' vmlinuz
immagine. I kernel che dovrebbero funzionare su diversi sistemi (come quelli della maggior parte delle distribuzioni) di solito minimizzano ciò che è incorporato nel kernel perché l'hardware disponibile verrà scansionato più avanti nel processo di avvio e verranno caricati solo i moduli che rappresentano l'hardware attuale.
Esistono strumenti per modificare e creare initrd. Debian ha degli strumenti carini e immagino lo facciano anche altre distribuzioni.
Quindi, se scarichi un kernel più recente da kernel.org e lo compili per creare una nuova immagine binaria del kernel, devi creare o aggiornare un initrd con i driver che funzionano con quel kernel. Il vecchio initrd non funzionerà perché i driver devono corrispondere alla versione del kernel in esecuzione.
Il file initrd è chiamato in initrd.img-x.x.x.x-name
modo simile al kernel e può essere sostituito dopo l'avvio proprio come il kernel, e le migliori pratiche indicherebbero che non si cancella un initrd funzionante noto fino a quando non si sa che è possibile avviare correttamente il nuovo kernel + initrd.
Spero che fornisca un certo contesto.
Se stai cercando un'installazione Linux "barebone" con poco o nessun programma aggiuntivo installato con essa, la mia scelta preferita è sempre stata l'installazione netinst
dell'immagine Debian . Praticamente hai solo gli strumenti di base necessari per eseguire una console di testo da riga di comando e nano
come editor di testo.