2010年1月3日星期日

ubuntu9.10中配置grub1.97

在ubuntu9.10(karmic
koala)中配置grub1.97,grub1.97是ubuntu9.10发行是默认的,如果需要使用以前老的grub0.97,可以自己手动安装,运行

$sudo apt-get install grub

即可,然后运行

$sudo update-grub

就会检测系统上的系统,生成/boot/grub/menu.lst文件。但是可能不能检测出其它系统,如windows,不过menu.lst文件中有配置好的windows启动项,只需要取消注释即可,或者根据自己的需要修改一下windows装在哪个分区。

下面说一下grub1.97的配置,配置中会用到的文件和目录如下,以前修改grub0.97的时候都是自己直接去修改menu.lst,现在grub1.97推荐修改以下几个文件,然后运行update-grub命令来生成grub.cfg文件,而不是直接去修改grub.cfg。

/etc/default/grub

/etc/grub.d/00_Header

/etc/grub.d/05_debian_theme

/etc/grub.d/40_custom

首先,/etc/default/grub文件设置了grub最基本的配置,如默认启动项,等待时间,分辨率等,可以按照自己的需要修改。分辨率最好是安装vbeinfo命令的输出来设置,vbeinfo命令可以在grub
shell中运行,也就是你开机的时候出现菜单的时候按下c键,进入一个grub
shell,这里运行vbeinfo后你可以看到支持的分辨率。

然后,/etc/grub.d/00_Header文件设置grub.cfg文件中的Header部分。也是配置grub背景显示效果的地方,这里可以设置grub的背景/前景色,以及大家都感兴趣的背景图片,其中一段大概如下(因为我修改过)

view plaincopy to clipboardprint?
# check for usable backgrounds
use_bg=true
if [ "$GRUB_TERMINAL_OUTPUT" = "gfxterm" ] ; then
#添加了jpg文件,因为下面case语句中都有jpg,而且这里可以添加一些你自己的目录
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

上面的第二行use_bg,原来等于false,其实不改成true也可以,因为下面的脚本会检查背景文件

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

........

这段脚本是在指定目录/boot/grub,/usr/share/images/desktop-base下查找背景文件moreblue-orbit-grub.*,这里后缀名可以是png,tga,看下面的case语句,可以知道你还可以加入jpg文件,这里的目录:你可以加入你的目录到搜索路径中,文件moreblue-orbie-grub可以修改成你喜欢的名字,后缀名,可以使用png,tga,jpg,最后可能如下:

for i in {/boot/grub , /usr/share/images/desktop-base ,
/usr/mypictures}/grub-background.{png,tga,jpg};do

case语句之后,会检查是否存在支持的模块,在/boot/grub/目录下有很多模块,都以.mod结尾。

其次,你可以修改文件/etc/grub.d/40_costom文件来添加自己的系统启动项,如windows系统,我在这里添加了gentoo系统的启动菜单。因为在30_os-prober阶段中已经自动检测到了windows。所以不用自己动手了。

最后,执行

$sudo update-grub命令来生成/boot/grub/grub.cfg文件

下面说说问题:

在我的电脑上,启动后,grub背景和分辨率都没有任何改变,我不知道这是为什么,然后我进入grub
shell,输入background_image命令后,提示error: no video mode activated.

运行vbeinfo命令,可以看到支持的分辨率,设置正确,但是分辨率一样很低,根本没有改变。

运行915resolution mode 1024 768设置分辨率,提示:unrecognized number

运行915resolution命令可以查看到系统芯片组是945GM,但是使用915resolution
-c 945GM时,却提示error: unknow argument
'-c',看看915resolution的usage就知道,它明明提供了-c选项!

所以,真不知道该说什么好!以前ubuntu-9.04(jaunty)的时候也使用grub1.97,背景,分辨率设置都好好的,真是郁闷!

没有评论: