当前位置:中国星空学习网首页>Linux/DOS>Linux基础>正文  
玩转 GRUB 的开机引导

 

相信很多使用Red Hat的用户都对GRUB默认的引导画面感到厌倦了,这里向大家提供一个较好的方法来实现每次都使用不同的开机引导画面。

一幅背景

首先,需要一幅图片,要求它的解析度在640×480或之上。虽然从道理上讲小于这个尺寸也没关系,因为可以把它扩张为640×480,但是这样会造成比较严重的画质损失,所以最好不要小于这个尺寸。选好图片后,需要在GRUB的目录中建立一个存放图片的文件夹,一般情况可以通过以下命令来做:

#cd /boot/grub && mkdir image


但是仅仅这么做是不够的,因为一是没有修改grub.conf,使所做的设置生效;二是GRUB使用压缩了的XPM图像格式,而比较常见的图片格式是BMP、JPG、GIF和PNG之类的,所以需要将图片格式转换成XPM。可能有人想到了使用GIMP,但是GIMP使用起来相对麻烦,而且如果没有安装X-Window的话就无法使用GIMP了。所以这里建议使用命令convert进行图片格式转换(可以使用man convert命令详细阅读其使用手册)。简单说一下convert使用方法,比如要将image.jpg转换为image.xpm,使用命令如下:

#convert -geometry 640x480 -colors 14 image.jpg image.xpm


convert命令在Red Hat Linux 9.0上默认是安装的。这个命令是把image.jpg转变尺寸为640×480,色深是14的image.xpm。注意,命令行中的640和480之间是小写字母“x”,不要写错。另外,GRUB要求图片色深必须是14,一般可以这样来证明:

#cd /boot/GRUB && gunzip splash.xpm.gz && less splash.xpm


在文件头部可以找到这些信息:

/* XPM */static char *10[] = {/* columns rows colors chars-per-pixel */"640 480 14 1",


所以需要进行上述的转换步骤以达到GRUB的要求。接下来压缩这幅图片,使用下面的命令:

#gzip -9 image.xpm


结果生成了image.xpm.gz,然后把这个文件拷贝到image目录,再修改grub.conf。注意,grub.conf是重要的启动文件,如果用户没有把握在GRUB引导失效后记住该文件内容,最好备份一下。使用vi编辑器找到类似于这样的行:

splashimage=(hd0,1)/GRUB/splash.xpm.gz


把它改为:

splashimage=(hd0,1)/GRUB/image/image.xpm.gz


然后使用命令wq存盘退出。这时不要着急删掉splash.xpm.gz,因为如果修改失败的话,还能有个引导画面,否则的话每次进入GRUB就只有一个光秃秃的黑色背景了。

这样就大功告成了,赶快重启试试,看看自己的修改成果。虽然画质有所下降,但是比起以前的单调画面还是耳目一新的。如果重启后进入GRUB引导画面时图像严重失真,无背景或黑屏,则证明修改grub.conf有错或图片没有转化正确。如果GRUB没有错误,进入系统后像上面那样使用less检查图像信息;如果进不去系统的话使用系统盘进入单用户模式,然后恢复grub.conf就行了。

多幅图片

下面谈一点高级话题。如果图片很多的话,就需要一个脚本来批量转换:

#!/bin/bash2#usuage: ./convert.sh *.jpg#convert  *.jpg etc to *.xpm.gzIMAGE_PATH=/boot/grub/imageCURRENT=`pwd`for parmdofor i in `ls -1 $IMAGE_PATH | wc -l`do /usr/bin/convert -geometry 640x480 -colors 14 $CURRENT/$parm $IMAGE_PATH/$i.xpmgzip -9 $IMAGE_PATH/$i.xpm rm -f $CURRENT/$parmdonedone


把上面的脚本命名为convert.sh,然后放在/boot/grub/image下,使用下面的命令:

#ln -s /boot/grub/image/convert.sh /bin/chgbimg


这样每次在批量转换图像前先进入被转换的图像所在目录再执行chgbimg *.jpg就行了。如果/boot和/bin不在相同的分区上,可以使用下面的命令:

#export chgbimg=/boot/grub/image/convert.sh#echo ’chgbimg=/boot/grub/image/convert.sh’ >> ~/.bashrc


与上述方法有同样的效果,不过使用时要这样:

$chgbimg *.jpg。


可以更换的图片多了,随之而来的问题就是手动修改grub.conf所带来的麻烦和危险性。快速、安全和方便才是目标。我们再写一个脚本:

# ~/.bash_logout                                                                           GB_PATH=/boot/grub IMAGE_NUM_PLUS=`ls -1 $GB_PATH/image | wc -l`N_TEMP=`cat /proc/uptime | awk ’{print $1}’ | awk -F. ’{print $1}’`N=`expr $N_TEMP % \( $IMAGE_NUM_PLUS - 1 \) + 1`mv -f ${GB_PATH}/grub.conf ${GB_PATH}/grub.conf.bak


上述脚本可能有点复杂,简单地解释一下IMAGE_NUM_PLUS计算了可供使用的图片数量,但是这个目录里还有个convert.sh,所以实际数量会减1。convert.sh放在这里的一个原因是放在这里比放在别处更容易理解;另一个原因是下一个要放在这个目录里的新图片的序号应该是当前图片数加1,convert.sh放在这里正好补足了这个误差。N是为了产生随机数,因为图片序号是N.xpm.gz,每次N都增1的话不免有些规律性,所以使用开机时间作为随机种子。最后使用sed找到要修改的文本并替换掉。 这样内容保存在~/.bash_logout中,这样就做到了每次的GRUB的引导画面都不相同。好了,快享受一下这一番劳动成果所带来的喜悦吧。

(责任编辑:战莹)j30B0j30B0j30B0

 

上一篇: 第 1 部分. Linux 思想
下一篇: 分析SpenceMurray的开发技巧 (1)
站内公告
栏目导航
 Windows系统
 Linux/DOS
 办公应用
 工具软件
 图形图象
 网络应用
 安全防御
 网络编程
 软件教程
 实用技术
最新文章
中国星空图片网
·人体艺术
·性感美眉
·生活自拍
·幽默搞笑
·超级帅哥
·精彩万花筒
·梦幻景色
中国星空探索网
·神秘追踪 灵异接触
·鬼故事 灵异空间 图片
·未解之谜 探索宇宙
中国星空两性网
·两性图文 我的性事 情人 成人幽默
·性爱技巧 两性测试 性爱误区
·性事花边 生育避孕 性保健 性疾病
·两性生理 文化 讨论 心理 知识
·爱人同志 非常男女 一夜情
中国星空算网命
·手机吉凶 QQ号码吉凶 周公解梦
·塔罗牌测试 狗年运程
·关公灵签 紫薇斗数 八字排盘
·测试:你的成功指数有多少
·测验你的家庭是否美满?
·面相: 面型 眼睛 耳朵 口唇
·手相:拉你一把奶油桂花手
·测试:你能成为大富翁吗?
联系方式 设为首页
中国星空旗下---中国星空学习网    Copyright 2005-2050 Year   xx.happy369.com  Networks.All rights reserved
中国星空网所有内容均来源于网络,版权属于原作者,如侵犯到您的权益,请与我们联系,我们将尽快予以删除或处理。
中国星空不承担由于内容的合法性及健康性所引起的一切争议和法律责任。
陕ICP备05011765号 联系我们 
《女人如烟》--演唱:魏佳艺