现在在启动引导程序中Grub大行其道,几乎所有Linux发行版都默认使用Grub做引导程序。Debian也不例外。然而,系统默认的Grub界面或许不能令你满意。这篇文章就是介绍如何修改Grub2的主题,使系统的启动画面更漂亮的。


1. 首先准备一张图片

以前的splash图片对格式要求比较严格,必须是xpm格式的,还要压缩为gz包。现在好像不需要了,并且已经支持png、jpg/jpeg、tga三种格式的图片,只要求图片是RGB模式而非索引模式的。

Gnome为我们提供了很多漂亮的图片,可以去gnome主题网站尽情挑选。

无论如何,我们已经找到了一张很酷的图片,我们给它起名叫grub-splash.png。接下来,我们要把它保存到本地磁盘,你可以保存在任意你认为合适的地方,一般为/usr/share/images/desktop-base/下。

现在我们的图片的完整路径是:

/usr/share/images/desktop-base/grub-splash.png

2. 接下来,让grub找到该图片

有两种方法可以实现:

2.1. 使用alternative

运行以下命令:

$ sudo update-alternatives --config desktop-grub 
有 2 个候选项可用于替换 desktop-grub (提供 /usr/share/images/desktop-base/spacefun-grub.png)。

  选择       路径                                                            优先级  状态
------------------------------------------------------------
* 0  /usr/share/images/desktop-base/spacefun-grub-widescreen.png   14   自动模式
  1  /usr/share/images/desktop-base/moreblue-orbit-grub.png        10   手动模式
  2  /usr/share/images/desktop-base/spacefun-grub-widescreen.png   14   手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:
$ 

可见,星号所标识的“当前值”正是我们正在用的背景图片。我们要做的就是把我们刚刚找到的图片替换成“当前值”。

首先,把我们的图片“注册”到Debian的alternative系统:

$ sudo update-alternatives --install /usr/share/images/desktop-base/spacefun-grub.png desktop-grub /usr/share/images/desktop-base/grub-splash.png 20

后面那个“20”是优先级,数值越大优先级越高。当前最高的是14,所以我们要设置一个比14大的优先级。当然,也可以设置一个比14小的优先级,如果你不想默认使用新的背景图片的话。

然后,把我们的新背景图片设置为默认值,即“当前值”:

$ sudo update-alternatives --config desktop-grub 
有 4 个候选项可用于替换 desktop-grub (提供 /usr/share/images/desktop-base/spacefun-grub.png)。

  选择       路径                                                            优先级  状态
------------------------------------------------------------
* 0  /usr/share/images/desktop-base/grub-splash.png                20   自动模式
  1  /usr/share/images/desktop-base/grub-splash.png                20   手动模式
  2  /usr/share/images/desktop-base/moreblue-orbit-grub.png        10   手动模式
  3  /usr/share/images/desktop-base/spacefun-grub-widescreen.png   14   手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:1
$ 

注意:这次在“键入选择的编号”后面,我键入了grub-splash.png前面的编号1。

其实,在键入1之前,我们的新背景图片已经是“当前值”了。因为我们在“注册”时,设置了一个更高的优先级20。而在“自动模式”下,系统是自动使用优先级最高的选项的。

2.2. 修改配置文件

与Grub背景图片相关的配置文件是/usr/share/desktop-base/grub_background.sh。打开该文件后,我们看到只有三行内容:

WALLPAPER=/usr/share/images/desktop-base/spacefun-grub.png
COLOR_NORMAL=light-gray/black
COLOR_HIGHLIGHT=white/black

该文件内容很好理解:第一行就是背景图片的地址,第二行是普通字体的颜色和背景色,第三行是被选中项的字体颜色和背景色。

我们要做的就是把新背景图片的地址替换原有的。你也可以根据喜好改一下颜色的配置,但背景色最后是使用默认的black。因为其他颜色会被背景图片覆盖,从而导致看不到背景图片。而黑色,相当于无色亦即透明,所以能正常显示背景图片。修改后该文件的内容看起来像这样:

WALLPAPER=/usr/share/images/desktop-base/grub-splash.png
COLOR_NORMAL=light-gray/black
COLOR_HIGHLIGHT=white/black

在动手修改之前,我们不妨研究一番。现在的背景图是/usr/share/images/desktop-base/spacefun-grub.png,我们去看一下它到底是什么。经过查看(使用ls -l)我们发现,它是一个连接文件,连接到了 /etc/alternatives/desktop-grub。我们再去看/etc/alternatives/desktop-grub,发现它也是个连接文件,连接到了/usr/share/images/desktop-base/spacefun-grub-widescreen.png。而后者是一个实实在在的图片。所以,最终使用的背景图片是spacefun-grub-widescreen.png。这就是Debian的alternative系统的秘密所在,这样也是第一种方法之所以有效的原因。在配置文件中使用的是spacefun-grub.png,它指向/etc/alternatives/desktop-grub,而后者也是个连接文件,指向真正的文件。这样,我们想改变背景图片的时候,只需要修改后者指向的目标即可,而无须修改配置文件了。alternatives系统起了桥梁的作用。

所以,第一种方法是推荐使用的方法。

3. 更新Grub的配置文件

Grub的配置文件一般是/boot/grub/grub.cfg。但不要直接去修改这个文件,因为这个文件是自动生成的。与Grub相关的配置文件和路径有:

  • /etc/default/grub 这里是Grub的基本配置
  • /etc/grub.d/00_header    这是保留给Grub使用的
  • /etc/grub.d/05_debian_theme    这是和主题风格相关的,在这里面调用了上面我们提到的grub_background.sh
  • /etc/grub.d/10_linux    这是和Linux系统相关的启动项
  • /etc/grub.d/20_linux_xen    同上
  • /etc/grub.d/30_os-prober    这是系统自动检测出的其他系统的启动项
  • /etc/grub.d/40_custom    这里写自定义配置
  • /etc/grub.d/41_custom    同上
  • /usr/share/desktop-base/grub_background.sh    这个是和背景图片、颜色相关的配置,被上边的05_debian_theme调用
  • /usr/share/images/desktop-base/    这里存放了Grub的背景图片,另外还有GDM和桌面的背景图片

运行如下命令,该命令就会根据上面这些配置文件自动生成最终的配置文件grub.cfg。

$sudo update-grub
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/spacefun-grub.png
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
Found Windows 7 (loader) on /dev/sdb1
done
$

4. 重启电脑查看效果

现在就重新启动你的电脑吧,因为谁不想立即查看修改后的华丽的启动画面呢?

5. 还不够?

现在我们已经可以设置我们喜欢的背景图片和字体颜色了,是不是还意犹未尽呢?想不想要更炫更酷的启动界面呢?不好意思,Grub无能为力了。但是别泄气,现在已经有了gfxmenu,并且已经加入到Grub2项目中,如果想了解它可以看下面给出的链接;另外,隆重推荐现在非常受欢迎的Burg,它是由Bean大牛fork自gfxmenu。值得一提的是,Bean大牛可是我们中国人哦,而中国人的项目很少能受到整个Linux社区的如此关注。Bean大牛还是Grub4DOS的主要开发者。

接下来会有关于Burg的博文,敬请期待。

gfxmenu:

http://grub.gibibit.com

Burg:

http://code.google.com/p/burg/

http://www.burgloader.com

https://help.ubuntu.com/community/Burg

https://help.ubuntu.com/community/Burg/zh_CN


转自:http://www.cbug.org/2011/05/07/49.html

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐