【已解决】grub2已设置背景图片,却无法显示

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
头像
bbeikke
帖子: 880
注册时间: 2008-10-14 21:54

【已解决】grub2已设置背景图片,却无法显示

#1

帖子 bbeikke » 2009-10-30 17:11

【问题描述】:

根据/etc/grub.d/05_debian_theme下的

代码: 全选

# check for usable backgrounds
use_bg=false
if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] ; then
  for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do
    if is_path_readable_by_grub $i ; then 
      bg=$i
      case ${bg} in
        *.png)		reader=png ;;
        *.tga)		reader=tga ;;
        *.jpg|*.jpeg)	reader=jpeg ;;
      esac
      if test -e /boot/grub/${reader}.mod ; then
        echo "Found Debian background: `basename ${bg}`" >&2
        use_bg=true
        break
      fi
    fi
  done
fi

# set the background if possible
if ${use_bg} ; then
  prepare_grub_to_access_device `${grub_probe} --target=device ${bg}`
  cat << EOF
insmod ${reader}
if background_image `make_system_path_relative_to_its_root ${bg}` ; then
  set color_normal=black/black
  set color_highlight=magenta/black
else
EOF
fi
也就是把符合要求的图片,放到/boot/grub或者/usr/share/images/desktop-base下,
文件名为moreblue-orbit-grub.png或者moreblue-orbit-grub.tga就行了;
然后运行sudo update-grub
也会显示:

代码: 全选

Found Debian background: moreblue-orbit-grub.png
也就是说找到了背景图片,开机时却无法显示?
图片是使用命令:

代码: 全选

convert 源文件名 -resize 640x480! -colors 24 moreblue-orbit-grub.png
制作的。。。
grub2的其他设置未修改。。。
什么原因?

【解决办法】:

谢谢smallapple的帮助,

后来在/etc/grub.d/00_head
文件:

代码: 全选

set default="${GRUB_DEFAULT}"
if [ \${prev_saved_entry} ]; then
  saved_entry=\${prev_saved_entry}
  save_env saved_entry
  prev_saved_entry=
  save_env prev_saved_entry
fi
此段代码后,回车加入

代码: 全选

insmod jpeg
insmod png
(详细参照smallapple的grub2教程:viewtopic.php?f=139&t=229387
/boot目录下新建文件夹splashimages
把需要作背景的图片命名为moreblue-orbit-grub,jpg放到/boot/splashimages中
把/etc/grub.d/05_debian_theme中的

代码: 全选

for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ;
改为:

代码: 全选

for i in {/boot/grub,/usr/share/images/desktop-base,/boot/splashimages}/moreblue-orbit-grub.{png,tga,jpg} ;
最后运行
sudo update-grub
就可以了。

谢谢smallapple的帮助!
上次由 bbeikke 在 2009-10-30 20:24,总共编辑 2 次。
地狱可以想象,天堂却无法描述。
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: grub2设置背景图片出错

#2

帖子 smallapple » 2009-10-30 18:01

从脚本来看并没错,
sudo cat /boot/grub/grub.cfg
看看
background_image 后面图片路径是否正确。

在启动菜单上按 c ,然后输入

background_image <路径>/moreblue-orbit-grub.png
看看图片能否正常显示。
头像
bbeikke
帖子: 880
注册时间: 2008-10-14 21:54

Re: grub2设置背景图片出错

#3

帖子 bbeikke » 2009-10-30 18:08

smallapple 写了:从脚本来看并没错,
sudo cat /boot/grub/grub.cfg
看看
background_image 后面图片路径是否正确。

在启动菜单上按 c ,然后输入

background_image <路径>/moreblue-orbit-grub.png
看看图片能否正常显示。
谢谢了,
grub.cfg
里有一段这样的代码:

代码: 全选

### BEGIN /etc/grub.d/05_debian_theme ###
insmod ext2
set root=(hd0,8)
search --no-floppy --fs-uuid --set 455a8c06-4054-48b8-92c9-ab7a18884d62
insmod png
if background_image /usr/share/images/desktop-base/moreblue-orbit-grub.png ; then
  set color_normal=black/black
  set color_highlight=magenta/black
else
  set menu_color_normal=white/black
  set menu_color_highlight=black/white
fi
### END /etc/grub.d/05_debian_theme ###
貌似和直接在00_head里指定背景图片的格式不一样。
地狱可以想象,天堂却无法描述。
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: grub2设置背景图片出错

#4

帖子 smallapple » 2009-10-30 18:29

在启动画面grub>下试试
background_image /usr/share/images/desktop-base/moreblue-orbit-grub.png
看图片是否支持
头像
bbeikke
帖子: 880
注册时间: 2008-10-14 21:54

Re: grub2设置背景图片出错

#5

帖子 bbeikke » 2009-10-30 18:40

smallapple 写了:在启动画面grub>下试试
background_image /usr/share/images/desktop-base/moreblue-orbit-grub.png
看图片是否支持
输入background_image /usr/share/images/desktop-base/moreblue-orbit-grub.png时,
显示不支持这种图片,我用的是24色的,grub2难道不支持?
请教一下,grub2支持哪种格式的图片。。。
附件
moreblue-orbit-grub.png
地狱可以想象,天堂却无法描述。
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: grub2设置背景图片出错

#6

帖子 smallapple » 2009-10-30 18:53

grub2可以支持到 24色,你这个png图片好象压缩程度很高,转为tga或jpeg格式的试试。
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: grub2设置背景图片出错

#7

帖子 smallapple » 2009-10-30 19:33

你贴上的图是8位色深的,改为16位或24位色深的就可以了。
头像
bbeikke
帖子: 880
注册时间: 2008-10-14 21:54

Re: grub2设置背景图片出错

#8

帖子 bbeikke » 2009-10-30 20:26

smallapple 写了:你贴上的图是8位色深的,改为16位或24位色深的就可以了。
加入insmod jpeg
用jpeg格式的终于可以显示背景了!
谢谢解答!
地狱可以想象,天堂却无法描述。
头像
doctorlzr1988
帖子: 184
注册时间: 2009-09-11 15:31

Re: grub2设置背景图片出错

#9

帖子 doctorlzr1988 » 2009-11-07 14:02

smallapple 写了:你贴上的图是8位色深的,改为16位或24位色深的就可以了。
俺不懂,怎么改位色深啊?? :em06 :em06 (哪里有gimp的说明看看,请介绍)

还有,上面怎么那些代码我在那个教程里找不到?难道apple你又更新了??
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 【已解决】grub2已设置背景图片,却无法显示

#10

帖子 smallapple » 2009-11-07 15:55

还有,上面怎么那些代码我在那个教程里找不到?难道apple你又更新了??
那些代码是后来升级版的,教程里没更新。
那个对图片文件的路径和文件名都有限制,所以没进一步说明。用原来直接加 background_image 命令省事 :em09
lijianen
帖子: 32
注册时间: 2009-07-31 17:22

Re: 【已解决】grub2已设置背景图片,却无法显示

#11

帖子 lijianen » 2009-11-14 9:13

我照1楼的设置后,重新启动后背景图片和菜单只占据了左上角四分之一的地盘,其余都是黑屏,将分辨率改成1024x768也没什么影响,看了图片的象素为400x300,将分辨率也改成这个设置,还是么没有解决问题,这是何故呢?
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 【已解决】grub2已设置背景图片,却无法显示

#12

帖子 smallapple » 2009-11-14 9:24

图片的象素和图片的分辨率要一致,而且要显卡的 vbe可支持的分辨率。
bean
帖子: 238
注册时间: 2008-06-03 12:25

Re: 【已解决】grub2已设置背景图片,却无法显示

#13

帖子 bean » 2009-11-14 18:08

如果使用我的BURG的话,图片大小和屏幕解析度不需要相同,图片会自动缩放到屏幕大小,而且有几种模式可以选择,包括缩放,正中,瓷砖,最小化等比例缩放(整个图片都显示,但可以有黑边),最大化等比例缩放(覆盖整个屏幕,但部分图片可能被切掉)
头像
lordsidious
帖子: 229
注册时间: 2008-07-25 18:50

Re: 【已解决】grub2已设置背景图片,却无法显示

#14

帖子 lordsidious » 2010-05-23 8:25

多谢诸位,做个标记,一会我试试。
头像
gdgglhy
帖子: 440
注册时间: 2010-04-23 12:19
系统: arch

Re: 【已解决】grub2已设置背景图片,却无法显示

#15

帖子 gdgglhy » 2010-05-23 10:57

我的最简单,直接将一个图片格式转为PNG并重命名为moreblue-orbit-grub.png放到/usr/share/images/desktop-base下就行了,什么都不用改
moreblue-orbit-grub.png
回复