linux内核的编译( 四 )


能会希望在每次修补的时候执行它 。″;make;zlilo;″将会安装核心,然後对它执行
LILO;,使你完成所有开机的准备,但是这只有在;lilo;已经以下列这种方式配置好的
时候才可以:核心为;/vmlinuz;,;lilo;在;/sbin;下,而且与你的;lilo;配置一致 。
2.4.;安装核心
在你已经获得一个看起来能够照你希望运作的新核心之後,现在是安装它的时候了 。大
大部份的人使用;LILO(;Linux;Loader;)来做这件事 。这是一个相当容易安装的软体
,然而,它会因为配置档而困扰人们 。如果你没有最新的版本,查看配置档(不是旧版
的;/etc/lilo/config;就是新版的;/etc/lilo.conf;),看看里面有些什麽,它会告诉
你像这样子的东西:
image;=;/vmlinux
label;=;Linux
root;=;/dev/hda1
...
首先,″;image;=;″是设定为已经安装的核心 。大部份的人似乎都用;/vmlinuz;,但
是我用;/vmlinux; 。″;lable;″;则是由;lilo;用来告诉你现在要启动的是那个核心或
作业系统,而″;root;″则是这个特别的作业系统的根目录;/; 。备份一份旧的核心(
无论什麽档名),然後将你做的;zImage;拷贝进去,(例如,如果你用”;/vmlinuz;″
的话,就像这样″;cp;zImage;/vmlinuz;”) 。
接著重新执行;lilo;—;在较新的系统上,你可以只执行″;lilo;,″但是在较旧的系
统上,你可能必须执行;/etc/lilo/install;或甚至是
/ect/lilo/lilo;-C;/etc/lilo/config; 。
如果你想知道更多有关於;lilo;的配置,或是你并没有;lilo;但是你想要安装的话,从
你喜欢的;ftp;节点拿最新的版本然後依说明行事 。
要能够从硬碟启动你的旧核心其中之一的话(这是另一个在新核心出状况的情况下保护
你自己的方法),把;lilo;配置档中所有的(包括一行)″;image;=;xxx;″;拷贝到档
案的最底端,然後把″;image;=;xxx;″改成″;image;=;yyy;,″其中的″;yyy;″是
你备份旧核心所存档的名字 。接著,把″;lable;=;xXx;″改成像是”;lable;=;linux-
backup 。”然後重新执行;lilo; 。
你可能得要加上一行″;delay;=;x;,″其中的;x;是以十分之一秒为单位的时间,这是
用来使;lilo;在启动前先等一下,所以你可以中断它的执行(例如用;shift;键) 。然
後键入所备份的启动映像之;lable;(在发生了某些令人不愉快的事情的情况下) 。
3.;修补核心
3.1.;使用修补档
核心的小幅更新是以修补档的方式发行 。例如,如果你的版本是;1.1.45;,而且你注意
到出现了一个″;patch46.gz;″可以用来升级它,这代表你可以藉由使用这个修补档将
版本升级到;1.1.46; 。你也许会想要先备份;source;tree(″make;clean;″然後″;cd
/usr/src;;tar;cvf;linux;|;gzip;-c;>;old-tree.tar.gz″将会为你造出一份;tar;压
缩档,里面就是整个原始程序码与其档案架构 。) 。
现在接著继续上面的例子,假设你已经取得了″;patch46.gz;″并放在;/usr/src;下 。
cd;到;/usr/src;然後执行″;zcat;patch46.gz;|;patch;-p0;″(如果并不是压缩过的
修补档,那麽就执行″;patch;-p0;<;patch46″)你将会看到许多东西飞逝而过(也许
它们会慢慢跳过,如果你的电脑真的很慢的话)告诉你它正试著应用;hunks;,以及是
否成功 。
通常,这个过程快得无法仔细看清楚它的动作,所以你会无法确定它到底有没有成功地
执行 。那麽就得找找看一些可能不是那麽顺利的事 。cd;到;/usr/src/linux;并找寻档
名有;.reg;的档案 。某些版本的修补档(比较旧的版本,它们可能是在比较早期的档案
系统上编译的)会把这些没有成功的操作记录在档名有;#;的档案里 。你可以用
″;find;″来替你找;″;find;.;;-name;"*.reg";-print;″会处理这个工作 。

推荐阅读