GNU/Linux >> Znalost Linux >  >> Fedora

Jak provádět trvalé změny v GRUB2 ve Fedoře

Pokud používáte Linux, pravděpodobně také, téměř určitě, používáte zavaděč GRUB2. Bootloader vám umožňuje ovládat spouštěcí sekvenci systému, zejména pokud máte nainstalovaných více operačních systémů, jako jsou Windows a Linux vedle sebe, více distribucí Linuxu a tak dále. Někdy budete muset provést změny v konfiguraci GRUB2, včetně specifických přepisů, jako jsou parametry příkazového řádku jádra.

Pokud vám výše uvedené nic neříká, tento průvodce nepotřebujete. Ale pokud ano, můžete se podívat na můj poměrně rozsáhlý tutoriál GRUB2 o tom, jak používat a spravovat bootloader. Až na to, že to nestačí. Pokud chcete do jádra přidat spouštěcí parametry – trvale – pak úprava výchozího konfiguračního souboru, jak jsem vysvětlil v průvodci, nebude fungovat. To je část radosti z fragmentace, kterou Linux představuje. Takže potřebujeme jinou metodu, a proto jsme tady.

Jak to mělo (bylo) provedeno

Kdyby jen linuxové distribuce všechny dodržovaly jednu konvenci a dělaly vše jedním způsobem. Ale protože máme více formátů balíčků, více správců balíčků, více desktopových prostředí a více distribucí, pak je nelogické mít více bootloaderů, nebo spíše jen jeden, ale opepřený vlastními vylepšeními. Ubuntu a Fedora tedy používají různé příkazy a zápisy, aby dosáhly stejné věci.

V Ubuntu a spol. můžete provést přepsání příkazového řádku jádra připojením nezbytných řetězců k direktivě GRUB_CMDLINE_LINUX_DEFAULT v konfiguračním souboru /etc/default/grub. Například jsem vám ukázal, jak to udělat v mém průvodci ovládáním jasu obrazovky a ventilátoru pro můj netbook Asus eeePC. Do souboru jsme přidali několik záznamů následovně:

GRUB_CMDLINE_LINUX_DEFAULT="tiché splash acpi_osi=Linux"

Potřeboval jsem podobnou vychytávku pro Fedoru 30, když jsem ji testoval na svém starém stroji HP Pavilion, který má kartu Nvidia, a kde jsem narazil na ošklivé hoops způsobené konfliktem mezi starší větví ovladačů Nvidia (340.xx) a Spectre patche v jádře. Celý příběh si můžete přečíst v odkazované recenzi distro výše. Sečteno a podtrženo, potřeboval jsem připojit řetězec, tak jsem to udělal, jak jsem očekával, že se bude GRUB2 chovat. Aktualizoval jsem konfigurační soubor bootloaderu (způsobem Fedory, viz moje sekce aktualizací výukového programu GRUB2), ale při příštím restartu byla tato možnost ignorována. Pod cat /proc/cmdline nebyl žádný požadovaný řetězec. Pak jsem se dozvěděl, že Fedora dělá věci jinak.

Grubby – nástroj pro provádění trvalých změn GRUB2 ve Fedoře

Ano, potřebujete nástroj zvaný grubby, který vám umožní přidávat řetězce do vašich jader. Grubby je nástroj příkazového řádku a funguje tak, že zadáte buď jedno požadované jádro, nebo všechna, a poté přidáte požadované hodnoty. Nevýhodou tohoto nástroje je, že jeho použití je obtížnější než provádění změny konfiguračního souboru, nevíte, zda a jak se zálohy dělají v případě, že něco zpackáte, a pokud přidáte nová jádra, nebudou mít trvalé vyladit a budete jej muset spustit znovu. Ne moc elegantní. Takže jsem běžel špinavý:

sudo grubby --update-kernel=ALL --args=MOŽNOSTI JÁDRA-ZDE

Jako konkrétní příklad by to vypadalo asi takto (všimněte si dvou znaků =, nikoli překlepu):

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

Rozhodl jsem se aktualizovat všechna jádra a jako argument jsem přidal vyladění jádra, které by mělo zastavit konflikt mezi ovladačem Nvidia a jádrem. Chcete-li zjistit, zda grubby odvedl svou práci, nebo jen zkontrolovat konfiguraci jádra pro konkrétní zaváděcí položku, můžete spustit grubby info s požadovanou verzí jádra.

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 životopis=UUID=a43418bb-1d1b-4d1d-81c3-37e1e5bcd3a6 rhgb quiet nouveau.modeset=0 rd.driver.blacklist=nouveau video=vesa:off slab_common.usercopy" /brotback=Yro "UUID=cd1c9a6a-6fb5-44c2-8d68-b4a96ff7f0e9"
initrd="/boot/initramfs-5.0.16-300.fc30.x86_64.img"
title="Fedora (5. 300.fc30.x86_64) 30 (Třicet)"
id="63155c29865a492b8d8b8d53dab23782-5.0.16-300.fc30.x86_64"

Při příštím spuštění jsem zkontroloval konfiguraci systému a změna byla tam:

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

Závěr

Mohu jen říci, že z této metody nejsem vůbec nadšený. Je to těžkopádné a je to v rozporu s konvencemi GRUB. Pokud existuje výchozí konfigurace, měla by být použita a navíc je to jediné centralizované místo, kde můžete provádět změny, které ovlivňují váš systém. Opravdu neexistuje žádný důvod, proč by měl existovat samostatný nástroj a navíc nástroj, který provádí úpravy neprůhledným způsobem a není kompatibilní – nová jádra nebo aktualizace GRUB, co se stane potom?

Filozofie stranou, máte to, pro co jste přišli. Pokud chcete z jakéhokoli důvodu provést změny v příkazovém řádku jádra ve Fedoře, je grubby nejpohodlnějším způsobem, jak provést trvalou změnu v celém systému. Samozřejmě můžete vždy otestovat konkrétní, jednorázové možnosti úpravou jednotlivých položek při spouštění, a jakmile budete spokojeni, že fungují, udělejte je trvalými. Každopádně pojďme tento tutoriál uzavřít. Opatruj se.


Fedora
  1. Jak uspat nebo pozastavit Fedoru

  2. Jak nainstalovat Vagrant na Fedoru 34

  3. Jak nainstalovat Node.js na Fedora 35 / Fedora 34

  1. Jak nainstalovat OpenOffice 4.1.10 na Fedoru 34

  2. Jak nainstalovat AnyDesk na Fedora 35 / Fedora 34

  3. Jak nainstalovat Skype na Fedora 35 / Fedora 34

  1. Jak nainstalovat Nagios 4.3.4 na Fedoru 26 / Fedora 25-21

  2. Jak upgradovat na Fedoru 24 z Fedory 23

  3. Jak upgradovat Fedora 26 na Fedora 27 Workstation