最近定制了一个ubuntu的安装界面,感觉比较有意思,写上来,有兴趣的朋友可以实践一下...
先介绍一下grub和isolinux,以及一些开机引导程序...
1)BIOS:basic input output system,一般的情况下是归结于firmware这一类的.这里是为了连接通顺,就简单的说一下bios.BIOS是用户在按下电源的那一刻,负责和硬件沟通并呈现到用户面前的那些信息,可以通过显示器看到的.BIOS做的工作主要有四点:
a)检测并初始化:对主板上的芯片进行检测,并通知芯片开始工作;
b)记录系统的设置值:主要会去读CMOS里面的内容;
c)中断的处理:主板上的资源都是由BIOS分配的,IRQ也是;
d)加载操作系统:安装的操作系统是由BIOS转给引导扇区的,然后再去激活操作系统.
2)grub:相信大家都听过,它是一个很强悍的开机管理程序,特点就不说了,自己去查查.但是最大的好处,就是很有弹性的设置模式,多重开机管理的时候,可以快速的访问多重开机选项,而且浅显易懂.grub开机有三个阶段,这里的目的是定制安装界面,不详细说grub引导,可能会在下一篇中详细描述一下系统的开机过程:).grub配置文件在linux下的/etc/grub/grub.conf,可以去看看,很容易明白.安装过个操作系统的时候,主要也是改grub...
3)isolinux:也是一种引导程序,不过特殊就在它是专门用来引导可移动介质的轻量级的引导程序,不会固定只针对一种硬件.实际上isolinux本身就是一个linux系统,构造也比较简单:
a)isolinux.bin:是引导文件,把isolinux当成一个我们平时使用的linux系统的话,那么isolinux.bin文件就类似于grub的作用,在isolinux加载时会先加载isolinux.bin文件,然后isolinux.bin文件会根据isolinux.cfg的内容来选择不同的启动选项选择系统,这么一听有那么点印象吧..对,作用就类似于grub.conf文件了...
b)配置引导文件isolinux.cfg:是isolinux的配置文件,有了这个文件,isolinux.bin就会根据它来使用不同的启动选项来引导isolinux系统.isolinux.cfg的配置选项有很多,用户可以根据自己的需求来进行定义和配置.但是有一些必须的选项是必须要有的,等会我们就会主要的来涉及到这个文件的分析了...
c)isolinux在isolinux.bin完成引导后,会调用一个系统内核来完成一个简单的linux系统.安装,使用或者修复,都是靠这个linux系统来调用一些程序来完成的.这个极度迷你的linux中,最重要的信息就是很多的硬件驱动,如果没有硬件的驱动,系统无法找到相应的硬件,系统将会无法启动.
好了..前面的基本知识讲得差不多了...现在到正式的操作了,如何定制ubuntu的安装界面...
1)首先你需要下载到gfxboot-theme-ubuntu的源码,然后解压,tar命令,这个不用详细说了吧...不会的就tar --help...
2)现在就考虑你想要怎样定制你的界面了,里面会看到/po目录,这里面实际上国际化的内容,你可以打开一个zh_CN.po文件看看,实际上对中文的国际化,如果你选择你的系统界面不需要这么多的语言,可以删除一部分.po文件,里面只留下你需要的.po文件,我选择是english为语言,所以我不要国际化,我将*.po全部删除了;
3)在/po文件夹下面,会有一个bootloader.pot文件,里面是对ubuntu安装界面的按钮的定义,相当于是button的label...你可以根据需要进行改动...
4)现在退出/po文件夹,要修改Makefile了,vim Makefile,找到language这一项"DEFAULT_LANG = "定义,设置为en(就是你留在po里面的语言种类),保存退出;
5)keytables.inc文件里面实现的是对键盘的定义,如果在中国,留下一个就可以了...cn或者usa的定义就行了...顺便把下面一个数组中关于keytables的定义也可以去掉...
6)现在已经修改了语言和键盘了..是不是很想把ubuntu的安装界面给换掉呢...那么你就修改splash.pcx和splash.png,还有back.jpg图片了...
7)splash的图片有特别的要求,需要用photoshop来生成,或者google一下...
8)现在需要用到ubuntu的光盘了..找到你的ubuntu.iso,mount -o loop出来...这里面的内容是不能改写的,即使你用wq!,呵呵..:)
9)拷贝mount出来的内容到另外一个文件夹,然后更改权限,chmod u+w *,现在你就可以将你改写的保存起来了...
10)拷贝mount出来的文件夹下面的/isolinux下的内容到gfxboot下去,然后修改isolinux里面的内容,这时你就看到了闻名已久的isolinux.cfg文件了,可以打开看一下...里面的内容就是
include menu.cfg
default vesamenu.c32
prompt 0
timeout 0
gfxboot bootlogo
11)解释一下..include表示在isolinux.cfg中引入另外一个配置文件,可以理解为将另外一个文件的内容拷贝到isolinux.cfg,然后执行,就当成是c语言中的#include<menu.cfg>..哈哈..:)...
12)default是默认选项:指定缺省的启动选项,vesamenu.c32表示启动一个图形安装界面呢..一般的都会选用这个选项,当然还有字符启动界面,名字也差不多...叫menu.c32..还有一个就是使用bootlogo作为启动界面..那么就是生成一个bootlogo文件了..然后在isolinux.cfg中添加一句gfxboot bootlogo...这样就可以了...那么下面一句就不用解释了吧...:)
13)/isolinux文件夹下会有很多.hlp文件,其实都是些帮助信息,我只留下了en.hlp,其实也没什么用,你如果不喜欢,都删掉也可以...然后*.tr都删掉啦..或者留下和你语言相对应的.tr和.hlp文件了...
14)想改背景的话,就换掉图片..我不想改,只是简单的删除了...所以黑乎乎的...:(
15)现在可以在gfxboot中执行make了,你就会发现多出了/boot文件夹,删除init文件和log文件,然后将其他的留下来...将message文件,改名为bootlogo,知道了吧...然后拷贝到/isolinux中去...最后用gfxboot下的/isolinux文件夹替换掉你mount出来的那个isolinux文件夹...
16)ok了,可以收工了..执行命令...
mkisofs -o yourisoname.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 /
-boot-info-table /yourdir
17)生成你的iso,放到指定的文件夹下...可以用你的虚拟机进行测试了..看看你改后的效果怎么样呢...
我做的界面就不上传了...:)
来源:CSDN
作者:熊猫小侠
链接:https://blog.csdn.net/swliao/article/details/4938163