背景画像マニュアル grub.cfg

背景画像マニュアル grub.cfg

起動可能なフラッシュドライブにgrubの背景イメージを手動でインストールしようとしています。ドライブはISOからのみ起動し、OSがインストールされていないため、スクリプトを利用してupdate-grubこれを行うことはできず、/etc/default/grub編集に関する投稿が私の場合には適用されません。私は見たGRUBに背景画像を追加するには?しかし、私が言及した理由ではうまくいきません。すべてのISOを正常に起動しましたが、まだ背景画像の適用に問題があります。これは私のgrub.cfgの関連部分であり、残りはすべてうまく機能するメニュー項目です(テキストモードに置き換えます)。

set timeout=10
set default=0
set root=(hd0,msdos1)
### BEGIN background setup ###
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}
load_video
insmod gfxterm
insmod part_msdos
insmod png
GRUB_TERMINAL=gfxterm
GRUB_GFXMODE=auto
GRUB_BACKGROUND="splash.png"
### END background setup ###

背景画像は、GRUB 2.02 Beta2を使用する640x480 PNGファイルです(GIMPを使用してサイズ変更しました)。

さらなる研究によると、この部分は次のとおりです。

GRUB_TERMINAL=gfxterm
GRUB_GFXMODE=auto
GRUB_BACKGROUND="splash.png"

更新スクリプトで使用されている変数を使用すると、これらの変数は/etc/default/grubに属し、grub.cfgにそのように表示されないため、この行は少なくとも間違っていると確信しています。

編集:少し調整しましたが、まだ満足していません。これはペーストビン関連セクション(関連のないメニュー項目はテキストモードでうまく機能し、問題にならないので除外しました。)

答え1

grub.cfgメニューの前に次の行を追加する必要があります。これはカスタマイズされており、使用しないため、update-grub問題はありません。

 background_image /boot/Your_image.png

これで、ディストリビューションに異なる背景を提供するには、その行をメニューに追加するだけです。たとえば、これは私のメニューが始まる部分です。ご覧のとおり、メニューの前にデフォルトの背景があるため、grubの起動時に背景があり、その後に各メニュー/サブメニューに独自の背景があります。

background_image /boot/SolusOS-splash.png

set color_normal=white/black
set color_highlight=black/white

submenu "Debian 8.1 -->"{
     submenu "Debian 8.1 i386 -->"{         
            background_image    /boot/DebianLava-splash.png         
            set iso=/boot/ISOs/debian-live-8.1.0-i386-gnome-desktop.iso
          ....

編集:私の検索パスエントリは次のとおりです。 (uuidは私のUSBのIDです。)これが問題であるかどうかはわかりません。

set boot_uuid=D042-8A53    
set root_uuid=D042-8A53

search --fs-uuid $root_uuid --set=root
search --fs-uuid $boot_uuid --set=grub_boot
if [ $boot_uuid == $root_uuid ]
then
    set grub_boot=($grub_boot)/boot
else
    set grub_boot=($grub_boot)
fi

答え2

私のコーディング技術は仕事に適していなかったので、Lubuntuシステムを一時的にフラッシュドライブにインストールし、Daniel Richterの最高の技術を活用してこの問題を解決する方法を開発しました。グラップカスタマイザー自分に仕事の出発点を与える。私はコードを体系的に見て、私の目的には不要な可能性があると思われる行とセクションをコメントアウトし、進行中に変更をテストしました。メニュー項目のない注釈付きの例を見つけることができます。こここのプロセスに興味がある人のために。以下はテストされたコードセクションです(以前のバージョンを開始)修正後、コメントのほとんどと不要な部分を削除し、ついに結果を得ました。私の問題のほとんどはlinux_gfx_modeterminal_outputおよび(ルート設定はもちろん)background_imageの不適切な処理に関連しているようです。編集から推測されるように、変数は grub スクリプトと grub.cfg ファイルで異なって表現されます。私はこれが改善される可能性があると疑う余地はなく、単純化された部分を見つけたら編集します。

  set have_grubenv=true
  load_env
   set timeout=10 #added
   set default=2 #added
  menuentry_id_option=""
export menuentry_id_option
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}
#if [ x$feature_default_font_path = xy ] ; then
#font=unicode
#else
##Scrapped if-then-else above required? - NO?
insmod part_msdos
insmod ext2
search --no-floppy --set=root --label freedom
    font=/boot/grub/fonts/unicode.pf2
fi
if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=/boot/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
search --set=root --label freedom
### Begin Background setup ###
insmod png
set menu_color_normal=yellow/black
set menu_color_highlight=black/light-gray
if background_image /boot/grub/splash.png; then
  true
else
  set menu_color_normal=green/black
  set menu_color_highlight=black/light-gray
fi
### END Background setup ###

### BEGIN setup graphics ###
function gfxmode {
    set gfxpayload="${1}"
    if [ "${1}" = "keep" ]; then
        set vt_handoff=vt.handoff=7
    else
        set vt_handoff=
    fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
### End setup graphics ###

源泉:

https://answers.launchpad.net/~danielrichter2007

https://ubuntuforums.org/showthread.php?t=1195275

https://www.gnu.org/software/grub/manual/grub.html

関連情報