分享
 
 
 

玩转grub的开机引导

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

相信很多使用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.gz

IMAGE_PATH=/boot/grub/image

CURRENT=`pwd`

for parm

do

for i in `ls -1 $IMAGE_PATH | wc -l`

do

/usr/bin/convert -geometry 640x480 -colors 14

$CURRENT/$parm $IMAGE_PATH/$i.xpmg

zip -9 $IMAGE_PATH/$i.xpm rm -f

$CURRENT/$parm

done

done

把上面的脚本命名为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的引导画面都不相同。好了,快享受一下这一番劳动成果所带来的喜悦吧。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有