当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 5 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 为设么我的GRUB2背景图片就是显示不出来?
帖子发表于 : 2010-12-08 9:33 

注册: 2010-02-28 15:40
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
编辑05_debian_theme和00_header文件如下:
05_debian_theme
代码:
#!/bin/sh -e

. /usr/lib/grub/grub-mkconfig_lib

# this allows desktop-base to override our settings
f=/usr/share/desktop-base/grub_background.sh
if test -e ${f} ; then
  . ${f}
else
  WALLPAPER="/usr/share/images/desktop-base/moreblue-orbit-grub.png"
  COLOR_NORMAL="black/black"
  COLOR_HIGHLIGHT="magenta/black"
fi

set_mono_theme()
{
  cat << EOF
set menu_color_normal=white/black
set menu_color_highlight=green/black
EOF
}

# check for usable backgrounds
use_bg=false
for output in ${GRUB_TERMINAL_OUTPUT}; do
  if [ "$output" = "gfxterm" ] ; then
    for i in /boot/grub/`basename ${WALLPAPER}` ${WALLPAPER} ; 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 background image: `basename ${bg}`" >&2
          use_bg=true
          break
        fi
      fi
    done
    break
  fi
done

# 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=${COLOR_NORMAL}
  set color_highlight=${COLOR_HIGHLIGHT}
else
EOF
fi

# otherwise, set a monochromatic theme for Ubuntu
if ${use_bg} ; then
  set_mono_theme | sed -e "s/^/  /g"
  echo "fi"
else
  set_mono_theme
fi

00_header
代码:
#! /bin/sh
set -e

# grub-mkconfig helper script.
# Copyright (C) 2006,2007,2008,2009,2010  Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.

transform="s,x,x,"

prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
locale_dir=`echo ${GRUB_PREFIX}/locale | sed ${transform}`
grub_lang=`echo $LANG | cut -d _ -f 1`

. ${libdir}/grub/grub-mkconfig_lib

# Do this as early as possible, since other commands might depend on it.
# (e.g. the `loadfont' command might need lvm or raid modules)
for i in ${GRUB_PRELOAD_MODULES} ; do
  echo "insmod $i"
done

if [ "x${GRUB_DEFAULT}" = "x" ] ; then GRUB_DEFAULT=0 ; fi
if [ "x${GRUB_DEFAULT}" = "xsaved" ] ; then GRUB_DEFAULT='${saved_entry}' ; fi
if [ "x${GRUB_TIMEOUT}" = "x" ] ; then GRUB_TIMEOUT=5 ; fi
if [ "x${GRUB_GFXMODE}" = "x" ] ; then GRUB_GFXMODE=640x480 ; fi

if [ "x${GRUB_DEFAULT_BUTTON}" = "x" ] ; then GRUB_DEFAULT_BUTTON="$GRUB_DEFAULT" ; fi
if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved" ] ; then GRUB_DEFAULT_BUTTON='${saved_entry}' ; fi
if [ "x${GRUB_TIMEOUT_BUTTON}" = "x" ] ; then GRUB_TIMEOUT_BUTTON="$GRUB_TIMEOUT" ; fi

cat << EOF
if [ -s \$prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
EOF
if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
    cat <<EOF
if cmostest $GRUB_BUTTON_CMOS_ADDRESS ; then
   set default="${GRUB_DEFAULT_BUTTON}"
else
   set default="${GRUB_DEFAULT}"
fi
EOF
else
    cat <<EOF
set default="${GRUB_DEFAULT}"
EOF
fi
cat <<EOF
if [ "\${prev_saved_entry}" ]; then
  set saved_entry="\${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "\${boot_once}" ]; then
    saved_entry="\${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
EOF
if [ -n "${GRUB_VIDEO_BACKEND}" ]; then
    cat <<EOF
  insmod ${GRUB_VIDEO_BACKEND}
EOF
else
    # Insert all available backends; GRUB will use the most appropriate.
    for backend in $(cat "${GRUB_PREFIX}/video.lst"); do
   # video_bochs and video_cirrus require probing PCI space, and some
   # machines don't seem to like this.  These are generally
   # non-essential at least for i386-pc, so disable them as a
   # short-term fix for Ubuntu 10.10.
   case "${backend}" in
       video_bochs|video_cirrus)
      cpu="$(uname -m)"
      case "${cpu}" in
          i[3456]86|x86_64)
         [ -d /sys/firmware/efi ] || continue
          ;;
      esac
       ;;
   esac
   cat <<EOF
  insmod ${backend}
EOF
    done
fi
cat <<EOF
}

EOF

serial=0;
gfxterm=0;
for x in ${GRUB_TERMINAL_INPUT} ${GRUB_TERMINAL_OUTPUT}; do
    if [ xserial = "x$x" ]; then
   serial=1;
    fi
    if [ xgfxterm = "x$x" ]; then
   gfxterm=1;
    fi
done

if [ "x$serial" = x1 ]; then
    if ! test -e ${GRUB_PREFIX}/serial.mod ; then
   echo "Serial terminal not available on this platform." >&2 ; exit 1
    fi

    if [ "x${GRUB_SERIAL_COMMAND}" = "x" ] ; then
   grub_warn "Requested serial terminal but GRUB_SERIAL_COMMAND is unspecified. Default parameters will be used."
   GRUB_SERIAL_COMMAND=serial
    fi
    echo "${GRUB_SERIAL_COMMAND}"
fi

if [ "x$gfxterm" = x1 ]; then
    # Make the font accessible
    prepare_grub_to_access_device `${grub_probe} --target=device "${GRUB_FONT_PATH}"`

    cat << EOF
if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
  set gfxmode=${GRUB_GFXMODE}
  load_video
  insmod gfxterm
fi
EOF
fi

case x${GRUB_TERMINAL_INPUT} in
  x)
    # Just use the native terminal
  ;;
  x*)
    cat << EOF
terminal_input ${GRUB_TERMINAL_INPUT}
EOF
  ;;
esac

case x${GRUB_TERMINAL_OUTPUT} in
  x)
    # Just use the native terminal
  ;;
  x*)
    cat << EOF
terminal_output ${GRUB_TERMINAL_OUTPUT}
EOF
  ;;
esac

if [ "x$gfxterm" = x1 ]; then
    if [ "x$GRUB_THEME" != x ] && [ -f "$GRUB_THEME" ] \
   && is_path_readable_by_grub "$GRUB_THEME"; then
   echo "Found theme: $GRUB_THEME" >&2
   prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_THEME"`
   cat << EOF
insmod gfxmenu
EOF
   themedir="`dirname "$GRUB_THEME"`"
   for x in "$themedir"/*.pf2 "$themedir"/f/*.pf2; do
       if [ -f "$x" ]; then
      cat << EOF
loadfont (\$root)`make_system_path_relative_to_its_root $x`
EOF
       fi
   done
   if [ x"`echo "$themedir"/*.jpg`" != x"$themedir/*.jpg" ] || [ x"`echo "$themedir"/*.jpeg`" != x"$themedir/*.jpeg" ]; then
       cat << EOF
insmod jpeg
EOF
   fi
   if [ x"`echo "$themedir"/*.png`" != x"$themedir/*.png" ]; then
       cat << EOF
insmod png
EOF
   fi
   if [ x"`echo "$themedir"/*.tga`" != x"$themedir/*.tga" ]; then
       cat << EOF
insmod tga
EOF
   fi
      
   cat << EOF
set theme=(\$root)`make_system_path_relative_to_its_root $GRUB_THEME`
EOF
    elif [ "x$GRUB_BACKGROUND" != x ] && [ -f "$GRUB_BACKGROUND" ] \
       && is_path_readable_by_grub "$GRUB_BACKGROUND"; then
   echo "Found background: $GRUB_BACKGROUND" >&2
   case "$GRUB_BACKGROUND" in
       *.png)         reader=png ;;
       *.tga)         reader=tga ;;
       *.jpg|*.jpeg)  reader=jpeg ;;
       *)             echo "Unsupported image format" >&2; exit 1 ;;
   esac
   prepare_grub_to_access_device `${grub_probe} --target=device "$GRUB_BACKGROUND"`
   cat << EOF
insmod $reader
background_image -m stretch `make_system_path_relative_to_its_root "$GRUB_BACKGROUND"`
EOF
    fi
fi

# Gettext variables and module
if [ "x${LANG}" != "xC" ] && [ -d "${locale_dir}" ] ; then
    prepare_grub_to_access_device $(${grub_probe} --target=device ${locale_dir})
  cat << EOF
set locale_dir=(\$root)$(make_system_path_relative_to_its_root ${locale_dir})
set lang=${grub_lang}
insmod gettext
EOF
fi

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=${2}
fi
EOF
}

if [ "x$GRUB_BUTTON_CMOS_ADDRESS" != "x" ]; then
    cat <<EOF
if cmostest $GRUB_BUTTON_CMOS_ADDRESS ; then
EOF
make_timeout "${GRUB_HIDDEN_TIMEOUT_BUTTON}" "${GRUB_TIMEOUT_BUTTON}"
echo else
make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}"
echo fi
else
make_timeout "${GRUB_HIDDEN_TIMEOUT}" "${GRUB_TIMEOUT}"
fi

# Play an initial tune
if [ "x${GRUB_INIT_TUNE}" != "x" ] ; then
  echo "play ${GRUB_INIT_TUNE}"
fi

if [ "x${GRUB_BADRAM}" != "x" ] ; then
  echo "badram ${GRUB_BADRAM}"
fi


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 为设么我的GRUB2背景图片就是显示不出来?
帖子发表于 : 2010-12-08 9:44 
头像

注册: 2007-02-02 18:14
帖子: 30702
系统: debian sid
送出感谢: 1
接收感谢: 34
高亮你改了那里...你的图片文件放在那里,文件名字是什么?


_________________
醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 为设么我的GRUB2背景图片就是显示不出来?
帖子发表于 : 2010-12-08 10:06 

注册: 2010-12-06 21:10
帖子: 11
送出感谢: 0 次
接收感谢: 0 次
http://www.linuxmi.org/ubuntu-grub-image.html
这里有详细介绍,希望能够帮助到你


_________________
Linux迷爱上http://www.linuxmi.org
欢迎光临!


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 为设么我的GRUB2背景图片就是显示不出来?
帖子发表于 : 2010-12-08 13:32 

注册: 2010-02-28 15:40
帖子: 15
送出感谢: 0 次
接收感谢: 0 次
首先我编辑 /etc/default/grub
代码:
sudo gedit /etc/default/grub

把GRUB_GFXMODE=640x480 改为与我图片一到的800x600
再把制作好的图片800X600,8位(256色)的图片改名为moreblue-orbit-grub.png,放了 /etc/grub.d/05_debian_theme指定的/usr/share/images/desktop-base目录,
然后sudo update-grub
能看到提示
Generating grub.cfg ...
Found background image: moreblue-orbit-grub.png
以为成功了,可重启还是没图片,屏幕的分辨率倒是改了。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 为设么我的GRUB2背景图片就是显示不出来?
帖子发表于 : 2010-12-08 18:20 
头像

注册: 2010-05-24 13:02
帖子: 2339
地址: 星城长沙
送出感谢: 0 次
接收感谢: 4
cptank 写道:
首先我编辑 /etc/default/grub
代码:
sudo gedit /etc/default/grub

把GRUB_GFXMODE=640x480 改为与我图片一到的800x600
再把制作好的图片800X600,8位(256色)的图片改名为moreblue-orbit-grub.png,放了 /etc/grub.d/05_debian_theme指定的/usr/share/images/desktop-base目录,
然后sudo update-grub
能看到提示
Generating grub.cfg ...
Found background image: moreblue-orbit-grub.png
以为成功了,可重启还是没图片,屏幕的分辨率倒是改了。


那个图片名不必是morexx。。。1.png也是可以的。。。路径貌视也不必局限于那里。。。
你的分辨率如果高于1024x768的话可以设置成1024X768,然后使用同尺寸的图片效果要好些。
(查看自己的分辨率,使用快件键Alt F2然后输入:gnome-display-properties回车就能查看)

你把你的grub.cfg拿出来看看。。。是不是没有插入png模块呀?
(打开grub.cfg使用命令 sudo gedit /boot/grub/grub.cfg )
如果是的话,你在那一列insmod xxx的下面加一行insmod png就OK了。


另外,我这有张1024x768的图片喜欢的话拿去就是。


附件:
1.png
1.png [ 245.98 KiB | 被浏览 556 次 ]



_________________
安装了不吃亏^_^
Ailurus小熊猫
IcePlayer音乐播放器
奉献给IcePlayer用户
GtkHash哈希计算器
页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 5 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译