GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:impostare il kernel predefinito in Grub?

Come posso scegliere quale kernel GRUB2 dovrebbe caricare per impostazione predefinita? Di recente ho installato un kernel in tempo reale di Linux e ora viene caricato per impostazione predefinita. Vorrei caricare quello normale per impostazione predefinita.

Finora sono riuscito a scegliere solo il sistema operativo predefinito.. e per qualche motivo il /boot/grub.cfg presuppone già che io voglia caricare rt-kernel e inserirlo nella voce generica del menu linux (nel mio caso Arch Linux).

Risposta accettata:

Penso che a questo punto la maggior parte delle distribuzioni abbia spostato kernel aggiuntivi nel sottomenu delle opzioni avanzate, come ha scoperto TomTom con il suo
Arch.

Non volevo alterare la struttura del mio menu di livello superiore per selezionare un kernel precedente come predefinito. Ho trovato la risposta qui:

http://www.humans-enabled.com/2014/08/how-to-set-default-grub-kernel-boot.html

Per riassumere:

1) Trova il $menuentry_id_option per il sottomenu:

$ grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {

2) Trova il $menuentry_id_option per la voce di menu per il kernel che vuoi usare:

$ grep gnulinux /boot/grub/grub.cfg
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-rt-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-rt-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.18.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.18.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.17.0-0.bpo.1-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.17.0-0.bpo.1-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
    menuentry 'Debian GNU/Linux, with Linux 4.9.0-8-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.9.0-8-amd64-recovery-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {

3) Commenta il tuo attuale grub predefinito in /etc/default/grub e sostituiscilo con $menuentry_id_option del sottomenu dal passaggio uno e il $menuentry_id_option del kernel selezionato dal passaggio due separati da > .

Nel mio caso il GRUB_DEFAULT modificato è:

#GRUB_DEFAULT=0

GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"

4) Aggiorna grub per apportare le modifiche. Per Debian questo è fatto in questo modo:

$ sudo update-grub

Fatto. Ora, all'avvio, il menu avanzato dovrebbe avere un asterisco e dovresti avviare il kernel selezionato. Puoi confermarlo con uname .

$ uname -a
Linux NAME 4.18.0-0.bpo.1-amd64 #1 SMP Debian 4.18.0-0 (2018-09-13) x86_64 GNU/Linux

Riportarlo al kernel più recente è semplice come commentare la nuova riga e decommentare #GRUB_DEFAULT=0 :

GRUB_DEFAULT=0

#GRUB_DEFAULT="gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc>gnulinux-4.18.0-0.bpo.1-amd64-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc"

quindi rieseguendo update-grub .


Linux
  1. Comprensione di systemd all'avvio su Linux

  2. Come impostare gli aggiornamenti automatici del kernel senza riavvio nel server Linux

  3. Linux – Kernel:supporto per gli spazi dei nomi?

  4. Linux:un kernel contaminato in Linux?

  5. Servizio del sistema operativo Linux "lm_sensors"

Configura un server VPN sul tuo PC Linux

Comando Dmesg in Linux

Comando Sysctl in Linux

Linux è un sistema operativo o un kernel?

Kernel Linux vs. Kernel Mac

Linux - Imposta la dimensione del terminale e la posizione dello schermo predefinite?