GNU/Linux >> Linux Esercitazione >  >> Fedora

Come apportare modifiche persistenti in GRUB2 in Fedora

Se stai usando Linux, probabilmente stai usando anche il bootloader GRUB2. Il bootloader ti consente di controllare la sequenza di avvio del sistema, soprattutto se hai più sistemi operativi installati, come Windows e Linux affiancati, più distribuzioni di Linux e così via. A volte, dovrai apportare modifiche alla configurazione di GRUB2, comprese sostituzioni specifiche come i parametri della riga di comando del kernel.

Se quanto sopra non significa nulla per te, non hai bisogno di questa guida. Ma se lo fa, allora puoi consultare il mio tutorial piuttosto esteso su GRUB2 su come usare e gestire il bootloader. Solo che non è abbastanza. Se vuoi aggiungere parametri di avvio al kernel - in modo permanente - la modifica del file di configurazione predefinito come ho spiegato nella guida non funzionerà. Questo fa parte del piacere della frammentazione che è Linux. Quindi abbiamo bisogno di un metodo diverso, ed è per questo che siamo qui.

Come avrebbe dovuto (essere) fatto

Se solo le distribuzioni Linux seguissero tutte una convenzione e facessero tutto in un modo. Ma dal momento che abbiamo più formati di pacchetto, più gestori di pacchetti, più ambienti desktop e più distribuzioni, ha senso illogico avere più bootloader, o meglio solo uno ma condito con modifiche personalizzate. Pertanto, Ubuntu e Fedora usano comandi e notazioni diversi per ottenere la stessa cosa.

In Ubuntu e altri, puoi eseguire le sostituzioni della riga di comando del kernel aggiungendo le stringhe necessarie alla direttiva GRUB_CMDLINE_LINUX_DEFAULT nel file di configurazione /etc/default/grub. Ad esempio, ti ho mostrato come farlo nella guida alla luminosità dello schermo e al controllo della ventola per il mio netbook Asus eeePC. Abbiamo aggiunto alcune voci al file, come segue:

GRUB_CMDLINE_LINUX_DEFAULT="silenzioso splash acpi_osi=Linux"

Avevo bisogno di una modifica simile per Fedora 30 quando l'ho testato sulla mia vecchia macchina HP Pavilion, che ha una scheda Nvidia, e dove ho riscontrato un brutto problema causato da un conflitto tra il ramo legacy dei driver Nvidia (340.xx) e il Patch Spectre nel kernel. Puoi leggere la storia completa nella recensione della distribuzione collegata sopra. In conclusione, dovevo aggiungere una stringa, quindi l'ho fatto, poiché mi aspettavo che GRUB2 si comportasse. Ho aggiornato il file di configurazione del bootloader (alla maniera Fedora, vedi la mia sezione sugli aggiornamenti del tutorial di GRUB2), ma al prossimo riavvio, l'opzione è stata ignorata. Non c'era una stringa desiderata in cat /proc/cmdline. Poi ho imparato che Fedora fa le cose in modo diverso.

Grubby - strumento per apportare modifiche persistenti a GRUB2 in Fedora

Sì, hai bisogno di uno strumento chiamato grubby, che ti consente di aggiungere stringhe ai tuoi kernel. Grubby è uno strumento da riga di comando e funziona specificando uno o tutti i kernel desiderati e quindi aggiungendo i valori desiderati. Lo svantaggio di questo strumento è che è più ingombrante da usare che apportare una modifica al file di configurazione, non si sa se e come vengono eseguiti i backup in caso di errore e se si aggiungono nuovi kernel, non avranno il tweak e dovrai eseguirlo di nuovo. Non molto elegante. Quindi sono corso sporco:

sudo grubby --update-kernel=TUTTI --args=OPZIONI-KERNEL-VAI-QUI

Come esempio specifico, sarebbe simile (notare i due segni =, non un errore di battitura):

sudo grubby --update-kernel=TUTTI --args=slab_common.usercopy_fallback=Y

Ho scelto di aggiornare tutti i kernel e, come argomento, ho aggiunto il tweak del kernel che dovrebbe fermare il conflitto tra il driver Nvidia e il kernel. Per vedere se grubby ha fatto il suo lavoro, o semplicemente controllare la configurazione del kernel per una particolare voce di avvio, puoi eseguire grubby info sulla versione del kernel desiderata.

sudo grubby --info /boot/vmlinuz-5.0.16-300.fc30.x86_64
index=0
kernel="/boot/vmlinuz-5.0.16-300.fc30.x86_64"
args="ro resume=UUID=a43418bb-1d1b-4d1d-81c3-37e1e5bcd3a6 rhgb quiet nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off slab_common.usercopy_fallback=Y"
root="UUID=cd1c9a6a-6fb5-44c2-8d68-b4a96ff7f0e9"
initrd="/boot/initramfs-5.0.16-300.fc30.x86_64.img"
title="Fedora (5.0.16- 300.fc30.x86_64) 30 (Trenta)"
id="63155c29865a492b8d8b8d53dab23782-5.0.16-300.fc30.x86_64"

Al prossimo avvio, ho controllato la configurazione del sistema e la modifica era presente:

cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos8)/boot/vmlinuz-5.0.16-300.fc30.x86_64 root=UUID=cd1c9a6a-6fb5-44c2-8d68-b4a96ff7f0e9 ro resume=UUID=a43418bb- 1d1b-4d1d-81c3-37e1e5bcd3a6 rhgb quiet nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off slab_common.usercopy_fallback=Y

Conclusione

Tutto quello che posso dire, non sono affatto contento di questo metodo. È ingombrante e va contro quelle che credo siano le convenzioni di GRUB. Se è presente una configurazione predefinita, dovrebbe essere utilizzata, inoltre è un unico luogo centralizzato in cui si apportano modifiche che influiscono sul sistema. Non c'è davvero alcun motivo per cui dovrebbe esserci uno strumento separato, oltre a uno che apporti modifiche in modo opaco e non sia compatibile con le versioni successive:nuovi kernel o un aggiornamento di GRUB, cosa succede allora?

Filosofia a parte, hai quello per cui sei venuto. Se vuoi apportare modifiche alla riga di comando del kernel in Fedora, per qualsiasi motivo, grubby è il modo più conveniente per apportare modifiche persistenti a tutto il sistema. Naturalmente, puoi sempre testare opzioni specifiche una tantum modificando le singole voci all'avvio e, una volta che sei felice che funzionino, rendile permanenti. Comunque, concludiamo questo tutorial. Abbi cura di te.


Fedora
  1. Come far dormire o sospendere Fedora

  2. Come installare Vagrant su Fedora 34

  3. Come installare OpenOffice 4.1.10 su Fedora 34

  4. Come installare AnyDesk su Fedora 35 / Fedora 34

  5. Come installare Node.js su Fedora 35 / Fedora 34

Fedora 29 - Rendi perfetto dopo l'installazione

Come installare Liquorix Kernel su Fedora 35

Come installare il kernel XanMod su Fedora 36 Linux

Come installare Liquorix Kernel su Fedora 36 Linux

Come installare Vai su Fedora 35

Come installare le aggiunte guest di VirtualBox in Fedora