web-dev-qa-db-ja.com

追加のツールなしでGrubメニューを編集する

私はubuntu、debian、windowsを備えたトリプルブートシステムを持っています。 grubとgrubメニューはubuntuのインストール後にインストールされました。 grubカスタマイザのような追加のアプリケーションをインストールせずに注文エントリと名前を編集する方法はありますか?エントリの並べ替えは、/ etc/grub.d内のスクリプトの名前を変更することで実行できますが、「高度なオプション...」エントリも並べ替えられます。それらをすべてメニューの一番下に移動したいと思います。

更新後に存在していたはずです。

3
fmeier

懸念されるエントリは、/ etc/grub.d/10_linuxスクリプトによって生成されます(/boot/grub.cfgのコメントは、ファイルのさまざまな部分が生成される場所を示しています)。残念ながら、このスクリプトでは、初期状態では構成やカスタマイズはできません。

その場合にできることは、/ etc/grub.d/10_linuxを手動で編集することだけです。ただし、これは複雑なスクリプトであり、スクリプトを編集するとシステムの簡単なアップグレードが失敗するため、一般的には悪い考えのように思われます。

1
Bas Zoetekouw

基本的に、GRUBメニューエントリは、それぞれのオペレーティングシステムによって作成されます。 os-proberのようなものを使用するか、カスタムスクリプトに書き込むことができますが、おそらく、必要なものを取得する最も簡単な方法は、GRUBをロードする別のGRUBとチェーンロードすることです。その前に、grub.cfgに次のようなものを含む独自の構成があります。

insmod part_gpt
insmod search_fs_uuid
insmod chain
menuentry "Debian" {
    search --fs-uuid --no-floppy --set=root 1234-abcd
    chainloader ($root)/EFI/debian/grubx64.efi
}
menuentry "Ubuntu" {
    search --fs-uuid --no-floppy --set=root 1234-abcd
    chainloader ($root)/EFI/ubuntu/grubx64.efi
}
menuentry "Windows" {
    search --fs-uuid --no-floppy --set=root 1234-abcd
    chainloader ($root)/EFI/Microsoft/BOOT/bootmgfw.efi
}

Set rootは、各ブートローダーのESPのUUIDです。それらはおそらくすべて同じです。

これは、各ブートローダーに独自の設定とテーマ、および高度なエントリなどがあることも意味します。

0
jdwolf