Runlevel e Diagnostica al Boot

8 / 100

101.6 RUNLEVEL E DIAGNOSTICA AL BOOT

Dmesg, Init, systemd, boot.log

Osservando la figura 5 possiamo dire che ci troviamo di fronte alla schermata di GRUB, quindi il BIOS ha eseguito il POST e ha caricato il bootloader dai primi 512 byte del disco. GRUB fornisce la possibilita’ di scegliere tra piu’ voci di avvio, la differenza tra le prime due e’ i kernel fondamentalmente.Nella prima si ha una versione di kernel piu’ recente mentre nella seconda e’ meno recente, che e’ stata spostata dopo un aggiornamento di sistema spostata in seconda posizione. Nella terza voce c’e’ scritto RESCUE, probabilmente fara’ il boot in single user.

Da qui posso specificare, tramite un parametro in quale RUN LEVEL fare il boot. Se vado alla prima voce e digito “e” (edit) si entra nell’editor del kernel e cisi sposta con le freccie fino alla riga del kernel. Alla fine della riga posso specificare 1- questo dira’ all’INIT fai il boot in single user mode. CTRL + X per fare il boot, Siamo quindi in single user mode e digitiamo la password di root e una volta avuto l’accesso posso provare a riparare il sistema.

Per vedere quale e’ il RUNLEVEL di DEFAULT posso eseguire un grep da inittab cosi:

[[email protected] – ] grep initdefault/etc/inittab

e per vedere il contenuto di inittab nella sua interezza

[[email protected] – ] cat /etc/inittab

E’ stato pero’ sostituito da SYSTEMD che ci dice attenzione systemd utilizza i target anziche’ i runlevel e di default ci sono due principèali target

multiuser.target: analogous to run level 3
graphical. target: analogous to run level 5

Per vedere quello predefiito basta digitare

systemctl get-default

Per cambiare il default target

systemctl set-default multi-user.target

Al prossimo riavvio si accedera’ in multiuser ma SOLO TESTUALE.

Si era accennato che se il sistema di init fallisce, possiamo avviare ill sistema su una shell, cambiando il parametro INIT. Questo si fa tramite GRUB

specificando nel menu di avvio alla voce desiderata andando a digitare

init = /bin/sh

Si sta dicendo: dopo che hai finito di caricare il kernel, anziche’ caricare systemd ( che e’ l’INIT di default ) mi avvi una shell di sh con privilegi di root

Durante il boot vengono registrati gli eventi e gli eventuali errori di boot. Queste sono tutte registrate in:

cat /var/log/boot.log

Qua potremo usare tail, head, n-10,20,30…per leggere le righe che sii desiderano Tuttavia una volta che il Sistema e’ avviato e’ sempre possibile leggere messaggi del kernel tramite il comendo : $ dmesg Un’altro log interessante e’ /var/log/messages. E’ una sorta di log globale, dove vengono registrati eventi a livello globale.