Linux è usato ovunque nel mondo IT. Probabilmente hai usato Linux oggi, anche se non te ne sei accorto. Se hai imparato qualcosa su Linux, allora sai che è davvero un kernel. Il kernel è l'unità principale del sistema operativo (OS) Linux ed è responsabile delle comunicazioni tra l'hardware di un computer e i suoi processi.
In questo articolo imparerai una situazione relativa al kernel Linux:il panico del kernel . Il termine stesso può renderti te panico, ma se hai la giusta conoscenza, allora puoi rimanere calmo. Ogni amministratore di sistema affronta questo problema almeno una volta nella sua carriera, ma reinstallare il sistema non è la prima soluzione a cui dovresti rivolgerti.
Cos'è un kernel panic?
Un panico del kernel è uno dei numerosi problemi di avvio di Linux. In termini di base, è una situazione in cui il kernel non può essere caricato correttamente e quindi il sistema non si avvia. Durante il processo di avvio, il kernel non viene caricato direttamente. Invece, initramfs
carica nella RAM, quindi punta al kernel (vmlinuz
), quindi il sistema operativo si avvia. Se initramfs
viene danneggiato o eliminato in questa fase a causa di patch, aggiornamenti o altre cause recenti del sistema operativo, quindi dobbiamo affrontare il panico del kernel.
Se approfondiamo ulteriormente il processo di avvio, incontriamo il "problema pollo/uovo" di Linux.
[ Ai lettori è piaciuto anche: terminali, shell, console e righe di comando ]
Quando viene avviato un processo di avvio del sistema Linux dopo il passaggio MBR (Master Boot Record), viene caricato GRUB. Il kernel deve essere caricato nella RAM per avviare il sistema operativo, ma il kernel si trova sul disco rigido (/boot/vmlinuz
), e il disco rigido non è ancora montato su /
. Senza il montaggio, non è possibile accedere a nessun file, nemmeno al kernel. Per ovviare a questo, prima initramfs
/initrd
carica direttamente nella RAM e monta /boot
partizione in modalità di sola lettura. Successivamente, monta l'hard disk su /
partizione e il processo continua.
# ls -lrth /boot/
Questo processo sottolinea l'importanza di initramfs
/initrd
nel processo di avvio di Linux.
Perché si verificano i kernel panic?
Si verificano panico del kernel:
- Se il
initramfs
il file viene danneggiato. - Se
initramfs
non è stato creato correttamente per il kernel specificato. Ogni versione del kernel ha il proprioinitramfs
corrispondente . - Se il kernel installato non è supportato o non è installato correttamente.
- Se le patch recenti presentano dei difetti.
- Se un modulo è stato installato da online o da un'altra fonte, ma
initrd
l'immagine non viene creata con l'ultimo modulo installato.
Come risolvere i problemi?
La prima cosa da fare dopo aver visto un errore di panico del kernel è non andare nel panico, perché ora sei a conoscenza del file immagine relativo all'errore.
Passaggio 1 :avvia normalmente il sistema con la versione del kernel fornita.
Quindi potresti visualizzare questo errore:
Premi Invio o qualsiasi chiave, quindi vedrai quanto segue:
Questa è la tua situazione di panico del kernel.
Passaggio 2 :riavvia nuovamente la macchina e seleziona il salvataggio richiesta.
In RHEL 6 o versioni precedenti non abbiamo questa opzione, ma in RHEL 7 e versioni successive abbiamo un'immagine di ripristino integrata.
Questa immagine avvia normalmente il tuo sistema operativo.
Passaggio 2.1 :Vai a /boot
ed elenca tutti i file. Qui vedrai che non c'è nessun initramfs
per il tuo kernel, ma c'è un initramfs
file per il salvataggio con cui hai avviato il tuo sistema e un altro è per kdump
.
Gli initramfs
per il kernel manca.
Passaggio 3 :Dovrai creare un nuovo initramfs
file che corrisponde alla versione del tuo kernel.
Passaggio 3.1 :Per prima cosa controlla la tua versione del kernel:
#uname -r
Passaggio 3.2 :Quindi, esegui dracut
comando:
#dracut -f <initrd-image> <kernal-version>
3.3) Elenca il /boot
contenuto della directory di nuovo. Gli initramfs
il file per il kernel è ora creato.
Passaggio 4 :Ora, quando avvii normalmente, la tua macchina si avvia senza un errore di panico del kernel.
Passaggio 5 :Potrebbe verificarsi una situazione quando avvii il tuo sistema con un'immagine di ripristino con la creazione di un nuovo initramfs
file in cui non è stato possibile creare un nuovo file perché era già presente.
A questo punto, dobbiamo creare un initramfs
immagine con mkinitrd
comando o dracut
comando.
Passaggio 5.1 :controlla prima la versione del tuo kernel usando uname -r
comando.
Passaggio 5.2 :Esegui mkinitrd
comando con il --force
opzione e le specifiche del tuo kernel:
#mkinitrd --force <initrd-Image> <Kernel-Version>
I tuoi initramfs
il file viene rigenerato con questi brevi passaggi e ora puoi avviare il tuo sistema operativo senza errori.
[ Ebook gratuito:gestisci il tuo ambiente Linux per il successo ]
Conclusione
Ora, ogni volta che vedi un errore di panico del kernel, sicuramente non panico perché sai perché si è verificato questo errore e come risolverlo. Questo articolo copre uno dei comuni problemi di avvio di Linux:il panico del kernel. Ci sono così tanti altri potenziali problemi di avvio che possono verificarsi in Linux, ma la risoluzione di questi problemi diventerà molto meno un panico quando acquisirai una conoscenza avanzata del tuo sistema.