详细图解美化Grub2[原创]

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
头像
Crazier
帖子: 1051
注册时间: 2007-09-23 17:06
联系:

详细图解美化Grub2[原创]

#1

帖子 Crazier » 2010-02-17 5:28

Grub2做为新一代的多系统引导器,之所以代替旧的Grub,一方面是因为旧Grub设计上的失败及其代码的凌乱不可维护,另一方面也是因为需要更多的功能( 见http://www.gnu.org/software/grub/grub-2-faq.en.html)。
Grub2较之Grub的新功能有
1、模块化设计
不同于Grub的单一内核结构,Grub 2 的功能分布在很多的小模块中,并且能在运行时动态装载和卸除。
2、支持多体系结构
Grub 2可支持PC(i386), MAC(powerpc)等不同的体系机构,而且支持最新的EFI架构。
3、国际化的支持
Grub 2 可以支持非英语的语言。
4、内存管理
Grub 2 有真正的内存管理系统。
5、脚本语言
Grub 2 可以支持脚本语言,例如条件,循环,变量,函数等。
6,绚丽的菜单界面
旧的Grub已经停止开发,而Grub2还在开发过程中,所以Grub2有些功能还没有实现。但是我们已经可能用Grub2中较稳定的版本了,而Ubuntu9.04/9.10都已包含了Grub2.
而本篇重点介绍Grub2的美化,和Grub相比较,在美化上Grub2支持更多的图片格式:PNG,TGA(默认支持,Jpeg 格式的也支持,但是稍微麻烦一点,旧的GRUB 中支持的xpm格式的不再支持);再就是支持更大的分辨率(800x600),(1024x768)原版本似乎只支持640x480,这样你就可以方便的自定义自己的splahimage了(用高分辨率的图片来做splash image);还有就是配置文件也不是原来的menu.lst,而是
/boot/grub/grub.cfg和/etc/grub.d/05_debian_theme


一:简单的改变Grub2的字体颜色和背景
在你进入系统之前会有一个黑底白字的Grub菜单界面,图片让你选择进入系统,这里的黑底白字可以改变的,具体如下:
这里涉及到的文件是/etc/grub.d/05_debian_theme
在打开之前建议先保存,以免出错,
sudo cp /etc/grub.d/05_de/etc/grub.d/05_debian_themebian_theme_backup


打开/etc/grub.d/05_debian_theme
sudo gedit /etc/grub.d/05_debian_theme


可以在33到43行之间看到
set color_normal=black/black
set color_highlight=magenta/black
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue


这么几句,它们就是改变字体颜色的关键,foreground/background是修改字体它们的意思
color_normal=foreground(前景色)/background(背景色)即“/”之前的表示前景色,之后的表示背景色。
具体意思请看例图:
Grub的color_normal参数图解
Grub的color_normal参数图解
foreground/background可供选择的有
black (透明,与white是不同的), dark-gray, light-gray, white, brown, yellow, red, light-red, blue, light-blue, green, light-green, cyan, light-cyan, magenta, light-magenta.颜色情况如图:
Selection_005.png

把以上四行分别有以下四行代替:
set color_normal=green/yellow
set color_highlight=magenta/black
set menu_color_normal=green/yellow
set menu_color_highlight=yellow/red


保存
记得一定要更新配置文件:
sudo grub-mkconfig -o /boot/grub/grub.cfg


好了,重新启动就可以看到的效果
Selection_008.png
技巧:对于颜色的设定,也许真的是要做到眼见为实,你自己设定的也许呈现在屏幕上就会和你想像的不一样,这时候就要更改设置了,如果每次替换四行之后还要重启,那就太麻烦了,这有一个好的方法,就是可以避免重启了:在Grub的菜单界面,会提示你输入“c”或者“e”,这时你就可以进入Grub的命令提示界面了CLI(Command Line Interface),可以用到“set”命令来试不同的颜色组合了,然后按“esc”就可以看到效果了。
例子:
Selection_007.png
Selection_007.png (3.62 KiB) 查看 31067 次
[/size]
提示,此时的设置只对本次有效,所以你要记下让你满意的颜色组合,然后到05_debian_theme里更改,更新,这样你就可以每次到看到 了。


二:添加Splashimage到Grub

在本小节中,我们要用图片来美化Grub的菜单界面。我们要用到的图片不是任意的,它默认只能是640x480的,太大的图片不能显示,或者只会显示图片的一部分。
由于Ubuntu本身就含有grub2-grub2-splashimages包,该包内含有已经设计好的图片,我们直接下载就可以了。
sudo apt-get install grub2-splashimages


执行成功后就可以在/usr/share/images/grub/ 文件夹中看到splashimage了
cd /usr/share/images/grub/
ls

终端中会有输出,下面要用到。
在资源管理器里也能看到:
图片
现在我们要告诉系统到哪里去找splashimage了,即修改 /etc/grub.d/05_debian_theme文件
还建议先备份
sudo cp /etc/grub.d/05_debian_theme /etc/grub.d/05_debian_them_backup

打开05_debian_theme
sudo gedit /etc/grub.d/05_debian_theme


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

并且用
for i in {/boot/grub,/usr/share/images/desktop-base,/usr/share/images/grub}/Lake_mapourika_NZ.{png,tga}; do

替换,可以看出这里有文件夹,文件名,及扩展名,
Selection_012.png
只要修改这几处就可以更换图片了(需要是640x480)的,“Lake_mapourika_NZ”可以用终端中其它的文件名来代替,注意 {png,tga} 前面的“." 只有一个,不要复制多了。
如果你是ubuntu10.04就要注意了,上面的方法并不适合你了,因为在新版的grub中,需要修改的行变成05_debian_theme文件中的 WALLPAPER="/usr/share/images/grub/Plasma-lamp.tga"把这行中的路径替换成你图片所在的位置即可。
#!/bin/bash -e

source /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
source ${f}
else
WALLPAPER="/usr/share/images/grub/Plasma-lamp.tga"
COLOR_NORMAL="white/black"
COLOR_HIGHLIGHT="magenta/black"
fi

保存,更新:
sudo grub-mkconfig -o /boot/grub/grub.cfg


注意观察终端的输出,是否有类似”Found Debian backgrand"的提示,有,就证明你成功了,可以重启,欣赏你的漂亮的Grub了,如果没有提示,你要再对照步骤执行一边,看有没有错的地方。
[/size]

三:添加自定义高分辨率图片作为开机splash

Grub2不仅支持用自己喜欢的图片做为开机的Splash来美化Grub,还支持高分辨率的图片,比如 (800x600),(1024x768)等,这样你就可以用自己喜欢的照片来做splash了,,当然这也取决于你的电脑Bios对VESA 模式的支持,那么如何知道自己电脑支持多大的分辨率呢?这就要用到Grub的命令 vbeinfo 了。
vbeinfo命令用识别你的显示器的Bios所能支持的最大分辨率,这并不与你进入系统之后的相等,比如我的本本是1280x800的宽屏,但是vbeinfo显示它的Bios只支持到1024x768,我想这是因为Bios内所含有驱动有关吧。
在启动的时候可以按 ‘C'进入GRub的ClI,然后输入 vbeinfo 会显示如下:
vbeinfo命令显示
vbeinfo命令显示
就可知道你的硬件支持的最高分辨率了。
在纸上记下这些数字,以备后用。
现在打开/etc/default/grub 用gedit
sudo gedit /etc/default/grub

然后在"GRUB_GFXMODE="后面用小于由vbeinfo命令得来的分辨率来代替,另外还要去掉该前面的注释符“#”,不然,是不会有效果的。改后类似下面的
Selection_015.png
保存并更新
sudo grub-mkconfig -o /boot/grub/grub.cfg
注:如果你改变的分辨率大于640x480(这是系统默认的),这时你重启的话你会发现Grub的菜单的字体变小了,这是必然的,分辨率变大,更清晰了,自然字体就变小了。所以我建议你的你的分辨率不要太大,要不然就会影响美观,适得其反了。
现在你就可以用适合你自已设定的分辨率的图片来美化Grub2了,比如我设定的GRUB_GFXMODE=1024x768,那我最好就用1024x768大小的图片来做splash了,建议用背景不要太复杂的做splash,否则效果会不好。至于图片的格式也是要注意的,如果你手头没有现成的png;tga格式的图片,可以用ps打开图片,另存为png或tga的即可。
假设我的图片的名字是myimage.png
复制该文件到/boot/grub/
sudo cp myimage.png /boot/grub/
注意要用你自己的图片的名字来代替“myimage”
修改配置文件05_debian_theme以让系统知道去哪儿找哪个图片
sudo gedit /etc/grub.d/05_debian_theme
在16或17行的地方可以看到 (如果你没有修改过该行)
for i in {/boot/grub,/usr/share/images/desktop-base}/moreblue-orbit-grub.{png,tga} ; do

用下行来代替 (不要直接代替,图片的名字一定要用你自己的。
for i in {/boot/grub,/usr/share/images/desktop-base}/myimage.{png,tga} ; do
保存 然后更新
sudo grub-mkconfig -o /boot/grub/grub.cfg
现在你就可以重启来看你自己的美化效果了。
如果你还不满足这样的效果,想实现更漂亮的有动态效果的启动界面那仍是有办法的,这就是burg。
先上一张图
图片
在ubuntu 中安装burg,不同的版本中加入不同的源
sudo gedit /etc/apt/sources.list
针对你自己的版本加入下列两行
然后保存
导入认证:
gpg --keyserver keyserver.ubuntu.com --recv 55708F1EE06803C5
gpg --export --armor 55708F1EE06803C5 | sudo apt-key add -
更新源列表
sudo apt-get update
安装burg 和burg-themes
sudo apt-get install burg burg-themes burg-emu
接近安装完成的时候会在终端里有一些蓝底的提示要你去选择,通常选择默认就可以了.在选择的时候 Tab(用来在不同的标签切换) 和 空格(用来选中) 及 Enter会有用的。
有些会要执行
sudo burg-install "(hd0)"
把burg安装到mbr中,其实这条也不是必须执行的,因为在安装比较新版本burg burg-themes的过程中会提示你的,所以你大可不必理会上条指令。
安装之后你就可以在/boot/burg中看到你安装了哪些主题和字体。
关于编辑 /etc/default/burg
其实在新版本的burg中也不怎么需要配置的,默认的就好了,如果你修改过这个文件之后一定要执行命令:
update-burg
再介绍一个有用的工具,brug-emu,它可以让你不用重启就看到你的启动界面,所以叫brug模拟器。
你现在不妨执行一下来检验自己的以上的操作是否正确

那你有可能会问了,那我到哪里去更换主题呢,这个不用急
下面一些热键会帮你的,先看一下
* t - Open theme selection menu
* f - Toggle between folding mode
* n - Jump to the next item with the same class
* w - Jump to the next Windows item
* u - Jump to the next Ubuntu item
* e - Edit the command of current boot item
* c - Open a terminal window
* 2 - Open two terminal windows
* h - Display help dialog (only available in sora theme)
* i - Display about dialog (only available in sora theme)
* q - Return to old grub menu
* F5/ctrl-x - Finish edit
* F6 - Switch window in dual terminal mode
* F7 - List the folded boot items
* F8 - Toggle between graphic and text mode
* F9 - shutdown
* F10 - reboot
* ESC - quit from the current popup menu or dialog.
其中比较常用的是
t:用来选择不同的主题,当你选择你想的主题之后,立刻就能看到效果,并且你的选择会被保存下来,即使你下次重启你的这次选择也是有效的。
f:来改变主题的分辨率,你可以尝试着改一下,同样,你的选择也会被保存
n:跳到下一个性质相同的系统菜单
w:比如你有多个ubuntu选择菜单,而你想直接进入windows,可以试一下。


我的E 文一般,所以有些地方理解有偏差,如果有错的地方,希望你能指出来,我再改正。谢谢了。

参考于 http://members.iinet.net/~herman546/p20 ... ont_Colors
http://www.howtoforge.com/how-to-instal ... buntu-9.04
http://code.google.com/p/burg/w/list[/size]
上次由 Crazier 在 2010-08-31 13:03,总共编辑 17 次。
头像
独行猫儿
帖子: 202
注册时间: 2009-02-25 18:07

Re: 详细图解美化Grub2[原创]

#2

帖子 独行猫儿 » 2010-02-17 23:48

有更多实例图片就好了。
另外 这个 一点 都不详细啊,为什么海角 详细图解美化呢?
很多地方都不是十分准确,图片我知道最高可以支持到1024*768,当然需要改一些脚本。
<!--不再参与任何形式的讨论-->
头像
wangdu2002
帖子: 13284
注册时间: 2008-12-13 19:39
来自: 物华天宝人杰地灵

Re: 详细图解美化Grub2[原创]

#3

帖子 wangdu2002 » 2010-02-18 0:07

楼主和苹果法师看交流下,特别是他的哥伦布2代的基础教程非常不错。 :em09
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 详细图解美化Grub2[原创]

#4

帖子 eexpress » 2010-02-18 0:51

支持折腾。
平时根本不看这些。拖慢。
● 鸣学
头像
Crazier
帖子: 1051
注册时间: 2007-09-23 17:06
联系:

Re: 详细图解美化Grub2[原创]

#5

帖子 Crazier » 2010-02-19 2:38

独行猫儿 写了:有更多实例图片就好了。
另外 这个 一点 都不详细啊,为什么海角 详细图解美化呢?
很多地方都不是十分准确,图片我知道最高可以支持到1024*768,当然需要改一些脚本。
很对呀,只是这部分我还没来得及写呢,会补上的。
jimmin
帖子: 2138
注册时间: 2006-09-24 4:37

Re: 详细图解美化Grub2[原创]

#6

帖子 jimmin » 2010-02-19 15:47

代码: 全选

set color_highlight=magenta/black
这个是控制哪的字体,改了没效果?
头像
Crazier
帖子: 1051
注册时间: 2007-09-23 17:06
联系:

Re: 详细图解美化Grub2[原创]

#7

帖子 Crazier » 2010-02-21 0:57

jimmin 写了:

代码: 全选

set color_highlight=magenta/black
这个是控制哪的字体,改了没效果?
color_highlight , color_normal 是设置静态的字体的,它们不能补选中,比如下半部分的解释性文字。面_highlight又是设置字体被选中后的颜色的。所以就不会有变化了。
Selection_016.png
menu_color_normal set menu_color_highlight 它们两个则是设置动态的(可以选中的)。
jinsir
帖子: 368
注册时间: 2009-02-21 20:58

Re: 详细图解美化Grub2[原创]

#8

帖子 jinsir » 2010-02-22 12:02

不懂,纯支持。
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 详细图解美化Grub2[原创]

#9

帖子 JiangHui » 2010-02-22 12:03

8错
ivylw
帖子: 97
注册时间: 2006-10-15 14:20

Re: 详细图解美化Grub2[原创]

#10

帖子 ivylw » 2010-02-25 10:16

有启发。非常感谢。
联想 启天M245E
Celeron D 335
768M DDR
40G
Linux mint8
头像
男菜鸟
帖子: 1365
注册时间: 2008-12-16 14:01
来自: 漂在江湖

Re: 详细图解美化Grub2[原创]

#11

帖子 男菜鸟 » 2010-02-26 0:07

Mark!!!!!!
头像
nlr
帖子: 472
注册时间: 2009-04-27 21:07
来自: 柚香何处闻?

Re: 详细图解美化Grub2[原创]

#12

帖子 nlr » 2010-03-03 14:42

使用了设置菜单背景图片!还好! :em06
OS :Ubuntu13.04
jinsir
帖子: 368
注册时间: 2009-02-21 20:58

Re: 详细图解美化Grub2[原创]

#13

帖子 jinsir » 2010-03-04 8:29

点位保存,留着后看。
头像
szyzln
帖子: 910
注册时间: 2008-10-31 15:28
来自: 中国上海
联系:

Re: 详细图解美化Grub2[原创]

#14

帖子 szyzln » 2010-03-04 14:42

里面关于自定义图片设置需要更新内容了吧
最新的Aphla3 Grub中的/etc/grub.d/05_debian_theme文件的if判断语句是:
for i in /boot/grub/`basename ${WALLPAPER}` ${WALLPAPER} ; do

如果完全替换成楼主原来所写的:
for i in {/boot/grub,/usr/share/images/desktop-base}/myimage.{png,tga} ; do

结论:替换也是可以的,只是不知道产不产生副作用。
家乡:湖南张家界
头像
ccrecall
帖子: 178
注册时间: 2008-12-01 10:16
来自: 北京

Re: 详细图解美化Grub2[原创]

#15

帖子 ccrecall » 2010-03-04 16:26

标记一下,之前只改了字体颜色,背景图片一直没成功。
还有,每次更新内核,以前的老内核就都显示出来了。不知道怎么把才能只显示最新的内核。
回复