GNU/Linux >> Linux の 問題 >  >> Fedora

FedoraでGRUB2に永続的な変更を加える方法

Linuxを使用している場合は、おそらくほぼ間違いなく、GRUB2ブートローダーを使用しています。ブートローダーを使用すると、特にWindowsとLinuxを並べてインストールしたり、Linuxの複数のディストリビューションなど、複数のオペレーティングシステムをインストールしたりする場合に、システムの起動シーケンスを制御できます。場合によっては、カーネルコマンドラインパラメータなどの特定のオーバーライドを含め、GRUB2構成を変更する必要があります。

上記があなたにとって何の意味もない場合は、このガイドは必要ありません。しかし、そうであれば、ブートローダーの使用方法と管理方法について、私のかなり広範なGRUB2チュートリアルを参照できます。を除いて、それは十分ではありません。ブートパラメータをカーネルに永続的に追加する場合は、ガイドで説明したようにデフォルトの構成ファイルを編集しても機能しません。これは、Linuxの断片化の喜びの一部です。したがって、別の方法が必要であり、これが私たちがここにいる理由です。

どのように(行われたか)行われるべきか

Linuxディストリビューションだけがすべて1つの規則に従い、すべてを1つの方法で実行した場合。しかし、複数のパッケージ形式、複数のパッケージマネージャー、複数のデスクトップ環境、および複数のディストリビューションがあるため、複数のブートローダーを使用するのは非論理的な意味があります。したがって、UbuntuとFedoraは同じことを達成するために異なるコマンドと表記法を使用します。

Ubuntuなどでは、/ etc / default / grub構成ファイルのGRUB_CMDLINE_LINUX_DEFAULTディレクティブに必要な文字列を追加することで、カーネルコマンドラインをオーバーライドできます。たとえば、AsuseeePCネットブックの画面の明るさとファンの制御ガイドでこれを行う方法を示しました。次のように、ファイルにいくつかのエントリを追加しました。

GRUB_CMDLINE_LINUX_DEFAULT="静かなスプラッシュacpi_osi=Linux"

Nvidiaカードを搭載した古いHPPavilionマシンでテストしたとき、Fedora 30についても同様の調整が必要でした。そこで、Nvidiaドライバーのレガシーブランチ(340.xx)とカーネル内のSpectreパッチ。上記のリンクされたdistroレビューで全文を読むことができます。結論として、文字列を追加する必要があったので、GRUB2の動作を期待したとおりに追加しました。ブートローダー構成ファイルを更新しましたが(Fedoraの方法、GRUB2チュートリアルの更新セクションを参照)、次回の再起動時に、このオプションは無視されました。 cat / proc/cmdlineの下に目的の文字列がありませんでした。その後、Fedoraの動作が異なることを学びました。

Grubby-Fedoraで永続的なGRUB2の変更を行うためのツール

はい、カーネルに文字列を追加できるgrubbyというツールが必要です。 Grubbyはコマンドラインツールであり、必要なカーネルを1つまたはすべて指定してから、必要な値を追加することで機能します。このツールの欠点は、構成ファイルを変更するよりも使用が面倒であり、何かが失敗した場合にバックアップが作成されるかどうか、またどのように作成されるかがわからないことです。新しいカーネルを追加すると、永続的なものがなくなります。微調整すると、もう一度実行する必要があります。あまりエレガントではありません。だから私は汚い走りました:

sudo grubby --update-kernel =ALL --args =KERNEL-OPTIONS-GO-HERE

具体的な例として、次のようになります(2つの=記号であり、タイプミスではないことに注意してください):

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

私はすべてのカーネルを更新することを選択し、引数として、Nvidiaドライバーとカーネル間の競合を停止するカーネルの微調整を追加しました。 grubbyが機能したかどうかを確認したり、特定のブートエントリのカーネル構成を確認したりするには、目的のカーネルバージョンに対してgrubbyinfoを実行します。

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 quick 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(30) "
id="63155c29865a492b8d8b8d53dab23782-5.0.16-300.fc30.x86_64 "

次回の起動時に、システム構成を確認したところ、変更がありました:

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 rhgbquiet nouveau.modeset =0 rd.driver.blacklist =nouveau video =vesa:off slab_common.usercopy_fallback =Y

結論

私が言えることは、この方法にはまったく満足していません。それは面倒で、GRUBの慣習であると私が信じていることに反します。デフォルトの構成がある場合は、それを使用する必要があります。さらに、システムに影響を与える変更を行う単一の集中管理された場所です。別のツールと、不透明な方法で微調整を行い、上位互換性のないツール(新しいカーネルまたはGRUBの更新)が必要な理由は実際にはありません。

哲学はさておき、あなたはあなたが求めていたものを持っています。何らかの理由でFedoraのカーネルコマンドラインに変更を加えたい場合は、システム全体に永続的な変更を加えるには、grubbyが最も便利な方法です。もちろん、起動時に個々のエントリを編集することで、特定の1回限りのオプションをいつでもテストできます。満足のいく結果が得られたら、それらを永続的にします。とにかく、このチュートリアルを終了しましょう。気をつけて。


Fedora
  1. スリープまたはFedoraを一時停止する方法

  2. Fedora34にVagrantをインストールする方法

  3. Node.jsをFedora35/Fedora34にインストールする方法

  1. OpenOffice4.1.10をFedora34にインストールする方法

  2. AnyDeskをFedora35/Fedora34にインストールする方法

  3. Fedora 35 /Fedora34にSkypeをインストールする方法

  1. Nagios4.3.4をFedora26/Fedora25-21にインストールする方法

  2. Fedora23からFedora24にアップグレードする方法

  3. Fedora26をFedora27Workstationにアップグレードする方法