USBメモリにgrubインストーラしてマルチブートUSB作成して背景追加・文字サイズの変更とメニューの選択・未選択の色変更が、色々なサイトやAIを参考に、設定ファイルを作っていますがthemeが反映されず上手く行きません。作った設定ファイルはこちらです。分かる方いたら、何が悪いか教えてください。ここには書いていないけど、grubをインストーラしたパーティションをrootに指定する設定も追加しています。theme.txtdesktop-image: \u0026quot;background.png\u0026quot;title-color: \u0026quot;#ffffff\u0026quot;message-color: \u0026quot;#ffffff\u0026quot;title-font: \u0026quot;unicode.pf2\u0026quot;message-font: \u0026quot;unicode.pf2\u0026quot;terminal-font: \u0026quot;unicode.pf2\u0026quot;boot_menu {left = 10%width = 80%top = 40%height = 50%item_height = 60item_padding = 12item_spacing = 20item_color = \u0026quot;#c0c0c0\u0026quot;item_font = \u0026quot;unicode.pf2\u0026quot;selected_item_color = \u0026quot;#ffff00\u0026quot;selected_item_font = \u0026quot;unicode.pf2\u0026quot;}textbox {left = 5%top = 85%width = 90%height = 10%border_color = \u0026quot;#ffffff\u0026quot;background_color = \u0026quot;#000000\u0026quot;font = \u0026quot;unicode.pf2\u0026quot;color = \u0026quot;#ffffff\u0026quot;}progress_bar {left = 10%top = 95%width = 80%height = 4border_color = \u0026quot;#ffffff\u0026quot;fill_color = \u0026quot;#ffff00\u0026quot;background_color = \u0026quot;#000000\u0026quot;}grub.cfgset default=0set timeout=10insmod part_gptinsmod fatinsmod ntfsinsmod ext2insmod iso9660insmod gfxterminsmod pngloadfont /boot/grub/fonts/unicode.pf2set gfxmode=1920x1080set gfxpayload=keepterminal_output gfxtermset theme=/boot/grub/themes/mytheme/theme.txtexport thememenuentry \u0026quot;Q4OS 6 Andromeda\u0026quot; {insmod part_gptinsmod fatsearch --no-floppy --set=root --label Q4OSconfigfile /boot/grub/grub.cfg}menuentry \u0026quot;MX Linux Live\u0026quot; {insmod part_gptinsmod fatsearch --no-floppy --set=root --label MX-Liveconfigfile /boot/grub/config/efi-grub.cfg}menuentry \u0026quot;Windows 11 Installer\u0026quot; {insmod ntfssearch --no-floppy --set=root --label Windowschainloader /efi/boot/bootx64.efi}

WindowsLinux

1件の回答

回答を書く

1113980

2026-03-30 15:35

+ フォロー

一番大きな原因は、theme.txt の書式が GRUB2 の仕様とズレていて、テーマとして正しく解釈されていないことです。加えて、必要なモジュールの読み込みも不足している可能性があります。

主なポイントを挙げます。
1. コンポーネントの先頭に「+」が必要です
GRUB2 のテーマでは、boot_menu や progress_bar などのコンポーネントは必ず
「+ boot_menu { … }」
「+ progress_bar { … }」
のように、先頭に「+」を付ける決まりになっています。 

質問文の theme.txt だと
boot_menu {
progress_bar {
のように「+」が付いていないので、この行以降が正しくパースされず、メニューやプログレスバーの設定が無視されている可能性が高いです。

修正例(イメージ)
• boot_menu {
left = 10%

}
• progress_bar {
left = 10%

}


2. 色の指定名が仕様と違う箇所があります
progress_bar の色指定は、公式仕様だと
fg_color, bg_color, border_color, text_color
という名前です。 

theme.txt では
fill_color
background_color
となっているので、ここも GRUB に無視されています。

修正例(イメージ)
• progress_bar {

fg_color = “#ffff00”
bg_color = “#000000”
border_color = “#ffffff”
}


3. 「textbox」は GRUB2 標準のコンポーネントではありません
公式マニュアルにあるコンポーネント名は
label, image, progress_bar, circular_progress, boot_menu, canvas, hbox, vbox
などで、「textbox」は定義されていません。 

そのため、textbox ブロックでエラーになり、以降が読み込まれていない可能性があります。
ここは一度コメントアウトするか、単にラベルを置きたいだけなら label に書き換えるとよいです。


• label {
left = 5%
top = 85%
width = 90%
height = 10%
font = “unicode.pf2”
color = “#ffffff”
text = “ここにメッセージ”
}


4. 行の区切りとパスも確認してください
・desktop-image や title-color などの「名前: 値」は、1行ごとに区切る必要があります。
(質問文では改行が詰まっているように見えるので、実ファイルでも念のためチェックしてください) 
・background.png は theme.txt と同じディレクトリにあるか、正しいパスになっているか確認してください。
・unicode.pf2 を /boot/grub/fonts ではなくテーマフォルダ内で参照したい場合は、実際にそこへコピーするか、loadfont と theme.txt の指定を一致させてください。 

5. grub.cfg 側で確認しておくと良い点
・terminal_output gfxterm
・insmod png
までは書かれていますが、環境によっては insmod gfxmenu も必要になる場合があります。 
その場合は、gfxterm の後に
insmod gfxmenu
を追加して試してみてください。

まとめると、
(1) theme.txt の boot_menu / progress_bar / textbox を「+ boot_menu」「+ progress_bar」に直す
(2) progress_bar の色指定を fg_color / bg_color などに修正する
(3) textbox は一旦消すか label に変える
(4) 各行の改行とファイルパスを確認する
(5) 必要なら insmod gfxmenu を追加する

あたりを直した上で再起動すれば、背景や文字色、選択色の変更が反映される可能性が高いと思います。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有