分页: 1 / 2

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

发表于 : 2009-10-30 17:11
bbeikke
【问题描述】:

根据/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的帮助!

Re: grub2设置背景图片出错

发表于 : 2009-10-30 18:01
smallapple
从脚本来看并没错,
sudo cat /boot/grub/grub.cfg
看看
background_image 后面图片路径是否正确。

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

background_image <路径>/moreblue-orbit-grub.png
看看图片能否正常显示。

Re: grub2设置背景图片出错

发表于 : 2009-10-30 18:08
bbeikke
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里指定背景图片的格式不一样。

Re: grub2设置背景图片出错

发表于 : 2009-10-30 18:29
smallapple
在启动画面grub>下试试
background_image /usr/share/images/desktop-base/moreblue-orbit-grub.png
看图片是否支持

Re: grub2设置背景图片出错

发表于 : 2009-10-30 18:40
bbeikke
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支持哪种格式的图片。。。

Re: grub2设置背景图片出错

发表于 : 2009-10-30 18:53
smallapple
grub2可以支持到 24色,你这个png图片好象压缩程度很高,转为tga或jpeg格式的试试。

Re: grub2设置背景图片出错

发表于 : 2009-10-30 19:33
smallapple
你贴上的图是8位色深的,改为16位或24位色深的就可以了。

Re: grub2设置背景图片出错

发表于 : 2009-10-30 20:26
bbeikke
smallapple 写了:你贴上的图是8位色深的,改为16位或24位色深的就可以了。
加入insmod jpeg
用jpeg格式的终于可以显示背景了!
谢谢解答!

Re: grub2设置背景图片出错

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

还有,上面怎么那些代码我在那个教程里找不到?难道apple你又更新了??

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

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

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

发表于 : 2009-11-14 9:13
lijianen
我照1楼的设置后,重新启动后背景图片和菜单只占据了左上角四分之一的地盘,其余都是黑屏,将分辨率改成1024x768也没什么影响,看了图片的象素为400x300,将分辨率也改成这个设置,还是么没有解决问题,这是何故呢?

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

发表于 : 2009-11-14 9:24
smallapple
图片的象素和图片的分辨率要一致,而且要显卡的 vbe可支持的分辨率。

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

发表于 : 2009-11-14 18:08
bean
如果使用我的BURG的话,图片大小和屏幕解析度不需要相同,图片会自动缩放到屏幕大小,而且有几种模式可以选择,包括缩放,正中,瓷砖,最小化等比例缩放(整个图片都显示,但可以有黑边),最大化等比例缩放(覆盖整个屏幕,但部分图片可能被切掉)

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

发表于 : 2010-05-23 8:25
lordsidious
多谢诸位,做个标记,一会我试试。

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

发表于 : 2010-05-23 10:57
gdgglhy
我的最简单,直接将一个图片格式转为PNG并重命名为moreblue-orbit-grub.png放到/usr/share/images/desktop-base下就行了,什么都不用改
moreblue-orbit-grub.png