使用BURG美化启动界面(更新2010-03-09)

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
回复
bean
帖子: 238
注册时间: 2008-06-03 12:25

使用BURG美化启动界面(更新2010-03-09)

#1

帖子 bean » 2009-11-12 3:34

BURG是一个基于GRUB2的工程。它使用新的菜单系统,屏幕布局和热健都可以通过配置文件非常灵活地定制。我上传了PPA二机制包,ubuntu karmic的用户可以把以下两句加到/etc/apt/sources.list里:

代码: 全选

deb http://ppa.launchpad.net/bean123ch/burg/ubuntu karmic main 
deb-src http://ppa.launchpad.net/bean123ch/burg/ubuntu karmic main
然后运行以下命令就可以安装BURG:

代码: 全选

sudo apt-get update
sudo apt-get install burg burg-themes
更新时会提示签名没有找到,这个不是错误。如果想去掉警告的话,用以下命令导入签名就行了:

代码: 全选

gpg --keyserver subkeys.pgp.net --recv 55708F1EE06803C5
gpg --export --armor 55708F1EE06803C5 | sudo apt-key add -
安装后还要把新的启动代码写到MBR里:

代码: 全选

sudo burg-install "(hd0)"
最新版本无需改动/etc/default/burg,缺省设置是:
GFX_THEME=saved
GFX_FOLD=saved

这样会使用上次选择的风格和缩紧设置。

在菜单界面里,使用热健 t 可以弹出风格选择菜单,可以动态更换风格。使用热健 f 可以在收缩与非收缩间切换。而且,选择的结果会保存下来,在下次启动中使用。

新加热健n,w和u
n - 跳到下一个相同类型的项
w - 跳到下一个Windows启动项
u - 跳到下一个Ubuntu启动项

这是截图:
theme_refit.png
最后一步,使用update-burg自动生成配置文件:

代码: 全选

sudo update-burg
中文文档:https://help.ubuntu.com/community/Burg/zh_CN
英文文档:https://help.ubuntu.com/community/Burg

在线测试

使用burg-emu可以不需要重启就查看启动效果。安装:

代码: 全选

sudo apt-get install burg-emu
然后运行以下命令就可以了:

代码: 全选

burg-emu
也可以在用户自己的目录里进行测试。建立一个测试目录,把字体和需要的风格文件解压进去,然后建立burg.cfg文件,例如:

代码: 全选

menuentry "Windows" --class Windows {
  true
}

menuentry "Linux" --class Linux {
  true
}

menuentry "OSX" --class MacOSX {
  true
}

set timeout=10

# For normal theme
#set gfxmode=800x600
#set gfxfont="Unifont Regular 16"
#set theme_dir=${prefix}/themes/ubuntu
#load_config ${theme_dir}/theme.txt
#menu_region.text
#menu_region.gfx
#menu_viewer.ext

# For sora theme
. ${prefix}/themes/sora/theme.cfg
测试sora theme用下面一段,测试普通的theme用上面一段,并按需要修改风格名字。

然后在测试目录里运行以下命令:

代码: 全选

burg-emu -r host -d .
以上的测试方法也能用在Windows里,在google codes的下载页面里下载grub-emu_win32_ppa6.zip,解压到测试目录,然后双击run.cmd就行了。

中文字体
在上面的风格里,缺省字体都是英文的,因此无法显示汉字。我使用微软雅黑制作了字体,16,18和20三种大小,普通和粗体:
msyh.zip
(832.35 KiB) 已下载 1000 次
把文件解压到grub里的fonts子目录,然后在fonts/font.lst文件的最后加上这几行:

代码: 全选

msyh Regular 16: msyh16.pf2
msyh Regular 18: msyh18.pf2
msyh Regular 20: msyh20.pf2
msyh Bold 16: msyh16b.pf2
msyh Bold 18: msyh18b.pf2
msyh Bold 20: msyh20b.pf2
这是使用burg-emu来测试的截图:
msyh.png
msyh.png (4.5 KiB) 查看 26949 次
需要使用该字体时,在配置文件里把需要地方的font属性改掉。比如说,菜单项的外观在template_menuitem里设置,使用新字体的配置是:

代码: 全选

template_menuitem {
  panel {
    parameters = "class=image.class:title=text.text"
    direction = left_to_right
    margin_size = 3/0
    image {}
    text {
      font = "msyh Bold 18"
    }
  }
}
下面是具体的字体制作方法。

字体制作

ppa4增强了字体制作工具grub-mkfont的功能,大家可以使用它来生成美化字体。这里以为雅黑粗体为例子,运行以下命令则可生成字体:

代码: 全选

grub-mkfont -a --add-ascii --add-text chs.txt -s 18 --desc 3 -n msyh -o msyh.pf2 msyhbd.ttf
参数的意义:
-a
使用反锯齿处理

--add-ascii
包含ascii字符

--add-text chs.txt
包含chs.txt里所有的字符,附件里的chs.txt包含了常用的汉字。
chs.zip
(8.39 KiB) 已下载 567 次
-s 18
字体大小18

--desc 3
设置 descent 的值

-n msyh
字体名字

-o msyh.pf2
输出的grub字体文件的名字

myyhbd.tft
原始的字体文件

生成字体后,要复制到grub目录里的fonts子目录,然后在fonts/fonts.lst里增加相应的项。

ppa4的改动
改进了timeout的处理
增加图片缓存,加快启动速度
增强了字体制作工具grub-mkfont

ppa5的改动
添加GRUB_THEME变量,无需手动编译40_custom文件。
增加国际化支持,部分命令可以显示中文帮助

ppa6的改动
修正了一些bug,增加在线测试工具grub-emu
附件
winter.png
ubuntu.png
proto.png
上次由 bean 在 2010-03-10 15:49,总共编辑 21 次。
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 使用BURG美化启动界面

#2

帖子 JiangHui » 2009-11-12 7:56

:em11 不错
头像
daf3707
论坛版主
帖子: 12739
注册时间: 2007-06-13 15:57
来自: 在他乡

Re: 使用BURG美化启动界面

#3

帖子 daf3707 » 2009-11-12 8:41

支持!!
我要在我以前的帖子里连接这儿一下了 :em09
头像
jmlk
帖子: 120
注册时间: 2009-03-30 17:02

Re: 使用BURG美化启动界面

#4

帖子 jmlk » 2009-11-12 9:00

学习了
标记下,有时间折腾折腾
dacdog
帖子: 133
注册时间: 2006-11-30 18:52

Re: 使用BURG美化启动界面

#5

帖子 dacdog » 2009-11-12 9:23

学习了,已经折腾成功了。顺便问一下lz,set gfxmode="640x480"是改显示的分辨率吗?
snolice
帖子: 98
注册时间: 2009-05-31 0:44

Re: 使用BURG美化启动界面

#6

帖子 snolice » 2009-11-12 9:57

问下楼主 是不是不支持中文显示?
因为启动菜单我改成“启动XXXX”
结果变成了“??XXX” :em20
一座城市,一片荒芜。
bean
帖子: 238
注册时间: 2008-06-03 12:25

Re: 使用BURG美化启动界面

#7

帖子 bean » 2009-11-12 13:10

snolice 写了:问下楼主 是不是不支持中文显示?
因为启动菜单我改成“启动XXXX”
结果变成了“??XXX” :em20
这是字体问题。里面的美化字体都是英文的,不过缺省字体是支持中文的。你可以打开theme.txt,把里面有font设置的都去掉就是了。
bean
帖子: 238
注册时间: 2008-06-03 12:25

Re: 使用BURG美化启动界面

#8

帖子 bean » 2009-11-12 13:13

dacdog 写了:学习了,已经折腾成功了。顺便问一下lz,set gfxmode="640x480"是改显示的分辨率吗?
是的,可以修改为其他的值。
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

Re: 使用BURG美化启动界面

#9

帖子 ptptptptptpt » 2009-11-12 14:02

前排占位 :em11 先顶再试
头像
daf3707
论坛版主
帖子: 12739
注册时间: 2007-06-13 15:57
来自: 在他乡

Re: 使用BURG美化启动界面

#10

帖子 daf3707 » 2009-11-12 14:31

试验成功 :em11
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

Re: 使用BURG美化启动界面

#11

帖子 ptptptptptpt » 2009-11-12 15:26

俺也成功 :em11

顺便请教 bean 个问题:我是双硬盘,grub.cfg 里面是这样

代码: 全选

menuentry "Ubuntu GNU/Linux, with Linux 2.6.31-15-generic" {
	insmod ext2
	set root=(hd1,1)
	search --no-floppy --fs-uuid --set fa3f5af3-1824-4ed9-8f9b-4377d255bf15
	linux	/boot/vmlinuz-2.6.31-15-generic root=UUID=fa3f5af3-1824-4ed9-8f9b-4377d255bf15 ro  quiet splash
	initrd	/boot/initrd.img-2.6.31-15-generic
}
当我设定从第二块硬盘启动(MBR 中也装了 grub 引导代码),此时 ubuntu 分区应该是 (hd0,1) ,要是 GRUB 0.97,肯定会因为找不到文件而启动失败。可是现在 却仍然能启动。是不是 search 那一句起作用了??

这样的话,貌似只要有 search 那一句就行了,为何还要有 set root 呢?莫非 search 不够可靠??

对了,还有,burg 安装的 MBR 的代码是如何加载 core.img 的呢??通过扇区号,还是文件系统??
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

Re: 使用BURG美化启动界面

#12

帖子 ptptptptptpt » 2009-11-12 15:36

貌似倒计时时,键盘响应有点慢,按下方向键后,要过大约1秒钟,才会停止计时

无意中按下 2 ,出现两个框,不知是干嘛用的。调试??
bean
帖子: 238
注册时间: 2008-06-03 12:25

Re: 使用BURG美化启动界面

#13

帖子 bean » 2009-11-12 15:50

ptptptptptpt 写了:俺也成功 :em11

顺便请教 bean 个问题:我是双硬盘,grub.cfg 里面是这样

代码: 全选

menuentry "Ubuntu GNU/Linux, with Linux 2.6.31-15-generic" {
	insmod ext2
	set root=(hd1,1)
	search --no-floppy --fs-uuid --set fa3f5af3-1824-4ed9-8f9b-4377d255bf15
	linux	/boot/vmlinuz-2.6.31-15-generic root=UUID=fa3f5af3-1824-4ed9-8f9b-4377d255bf15 ro  quiet splash
	initrd	/boot/initrd.img-2.6.31-15-generic
}
当我设定从第二块硬盘启动(MBR 中也装了 grub 引导代码),此时 ubuntu 分区应该是 (hd0,1) ,要是 GRUB 0.97,肯定会因为找不到文件而启动失败。可是现在 却仍然能启动。是不是 search 那一句起作用了??

这样的话,貌似只要有 search 那一句就行了,为何还要有 set root 呢?莫非 search 不够可靠??
前面的set root是作为缺省值吧,search一般是没问题,不过如果uuid改变了就没办法了。
对了,还有,burg 安装的 MBR 的代码是如何加载 core.img 的呢??通过扇区号,还是文件系统??
直接把core.img嵌入MBR里了。
头像
yus253
帖子: 389
注册时间: 2009-05-31 20:52
联系:

Re: 使用BURG美化启动界面

#14

帖子 yus253 » 2009-11-12 15:54

恩,确实是好东西。
The root of bioengineering is the desire to control the organic long enough to improve it. Domesticated plants and animals are examples of technos -- logic applied to life.
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

Re: 使用BURG美化启动界面

#15

帖子 ptptptptptpt » 2009-11-12 15:56

哦,是不是 core.img 里面就包含 boot 分区的文件系统代码了 ??
回复