Nel caso in cui nel sistema siano installati più kernel, è possibile eseguire l'avvio da un kernel specifico in caso di downgrade o qualsiasi altro requisito. Vediamo ai fini di questo post del blog, come ripristinare un kernel precedente in CentOS/RHEL 8. Prima di andare avanti, capiamo come visualizzare l'attuale sistema del kernel predefinito da cui è stato avviato.
Visualizza il kernel predefinito corrente
1. Puoi visualizzare il livello di kernel predefinito attualmente impostato nel tuo sistema usando grubby . grubby è uno strumento da riga di comando per l'aggiornamento e la visualizzazione di informazioni sui file di configurazione per vari bootloader specifici dell'architettura. È progettato principalmente per essere utilizzato da script che installano nuovi kernel e necessitano di trovare informazioni sull'ambiente di avvio corrente.
# grubby --default-kernel /boot/vmlinuz-4.18.0-147.0.3.el8_1.x86_64
2. Ogni kernel installato nel sistema ha un indice ad esso associato. Per visualizzare l'indice del kernel utilizzare:
# grubby --default-index 0
3. Elenca i kernel disponibili usando:
# ls -l /boot/vmlinuz-* -rwxr-xr-x. 1 root root 7872864 Apr 26 2019 /boot/vmlinuz-0-rescue-d026443091424a74948f9f62d2adb9b5 -rwxr-xr-x. 1 root root 7868768 Jun 19 2019 /boot/vmlinuz-0-rescue-ec2b9a54dc859388d7bc348e87df5332 -rwxr-xr-x. 1 root root 8106848 Nov 11 13:07 /boot/vmlinuz-4.18.0-147.0.3.el8_1.x86_64 -rwxr-xr-x. 1 root root 7876960 Sep 15 2019 /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64 -rwxr-xr-x. 1 root root 7881056 Jul 26 2019 /boot/vmlinuz-4.18.0-80.7.2.el8_0.x86_64
4. Per ottenere informazioni dettagliate su una determinata versione del kernel, puoi usare di nuovo grubby:
# grubby --info /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64 index=1 kernel="/boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64" args="ro console=ttyS0,115200n8 console=tty0 net.ifnames=0 rd.blacklist=nouveau crashkernel=auto $tuned_params" root="UUID=58013e4a-11c0-4195-8fd8-e4b33e5b17d6" initrd="/boot/initramfs-4.18.0-80.11.2.el8_0.x86_64.img $tuned_initrd" title="Red Hat Enterprise Linux (4.18.0-80.11.2.el8_0.x86_64) 8.0 (Ootpa)" id="ec2b9a54dc859388d7bc348e87df5332-4.18.0-80.11.2.el8_0.x86_64"
Come puoi vedere dall'output sopra, puoi facilmente trovare l'indice del kernel di qualsiasi kernel disponibile nel tuo sistema. L'ultimo kernel avrà sempre un indice di 0.
Ora che sai da quale kernel hai eseguito l'avvio e l'elenco dei kernel disponibili da cui puoi eseguire l'avvio, possiamo procedere e avviare da un kernel più vecchio. Esistono 2 modi per eseguire l'avvio da un kernel precedente:
- usando il nome del file del kernel
- usando l'indice del kernel
Metodo 1 – Avvia dal vecchio kernel usando il nome del file del kernel
1. Elenca i nomi di file del kernel disponibili nel tuo sistema:
# ls -l /boot/vmlinuz-* -rwxr-xr-x. 1 root root 7872864 Apr 26 2019 /boot/vmlinuz-0-rescue-d026443091424a74948f9f62d2adb9b5 -rwxr-xr-x. 1 root root 7868768 Jun 19 2019 /boot/vmlinuz-0-rescue-ec2b9a54dc859388d7bc348e87df5332 -rwxr-xr-x. 1 root root 8106848 Nov 11 13:07 /boot/vmlinuz-4.18.0-147.0.3.el8_1.x86_64 -rwxr-xr-x. 1 root root 7876960 Sep 15 2019 /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64 -rwxr-xr-x. 1 root root 7881056 Jul 26 2019 /boot/vmlinuz-4.18.0-80.7.2.el8_0.x86_64
2. Usa il comando grubby dopo aver deciso da quale kernel avviare:
# grubby --set-default [kernel-filename]
Ad esempio:
# grubby --set-default boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64
Metodo 2 – Avvia dal vecchio kernel usando l'indice del kernel
1. Elenca i nomi di file del kernel disponibili nel tuo sistema:
# ls -l /boot/vmlinuz-* -rwxr-xr-x. 1 root root 7872864 Apr 26 2019 /boot/vmlinuz-0-rescue-d026443091424a74948f9f62d2adb9b5 -rwxr-xr-x. 1 root root 7868768 Jun 19 2019 /boot/vmlinuz-0-rescue-ec2b9a54dc859388d7bc348e87df5332 -rwxr-xr-x. 1 root root 8106848 Nov 11 13:07 /boot/vmlinuz-4.18.0-147.0.3.el8_1.x86_64 -rwxr-xr-x. 1 root root 7876960 Sep 15 2019 /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64 -rwxr-xr-x. 1 root root 7881056 Jul 26 2019 /boot/vmlinuz-4.18.0-80.7.2.el8_0.x86_64
2. Per visualizzare l'indice di uno qualsiasi dei kernel sopra elencati:
# grubby --info [kernel-filename] | grep index
Ad esempio:
# grubby --info /boot/vmlinuz-4.18.0-80.11.2.el8_0.x86_64 | grep index index=1
3. Ora che conosci l'indice del kernel da cui vuoi avviare, usa il comando:
# grubby --set-default-index=[kernel-entry-index]
Ad esempio:
# grubby --set-default-index=1