The Linux Bootdisk HOWTO 中译版(12)


cp;/boot/boot.b;/mnt/boot

最後,随附你的;kernel;,;copy;你在上一节所编写的;LILO;组态档 。它们两者可以被放在根目录下 。;
cp;bdlilo.conf;KERNEL;/mnt

LILO;所需的每一项现在都在;kernel;filesystem上,所以你已准备好去执行它 。;LILO;的;-r;旗号(flag)被用作安装;boot;loader;在某个其它的;root;上:;
lilo;-v;-C;bdlilo.conf;-r;/mnt

LILO;应该可以在无错的情况下执行,在此之後,你可以看看你的;kernel;filesystem;,应该长得像这样:;


--------------------------------------------------------------------------------

total;361
1;-rw-r--r--;;;1;root;;;;;root;;176;Jan;10;07:22;bdlilo.conf
1;drwxr-xr-x;;;2;root;;;;;root;1024;Jan;10;07:23;boot/
1;drwxr-xr-x;;;2;root;;;;;root;1024;Jan;10;07:22;dev/
358;-rw-r--r--;;;1;root;;;;;root;;;;;;;362707;Jan;10;07:23;vmlinuz
boot:
total;8
4;-rw-r--r--;;;1;root;;;;;root;3708;Jan;10;07:22;boot.b
4;-rw-------;;;1;root;;;;;root;3584;Jan;10;07:23;map
dev:
total;0
0;brw-r-----;;;1;root;;;;;root;;;;;;;2,;;;0;Jan;10;07:22;fd0
0;crw-r--r--;;;1;root;;;;;root;;;;;;;1,;;;3;Jan;10;07:22;null;


--------------------------------------------------------------------------------


如果档案;size;和你自己的;filesystem;有稍微不同,请不用担心 。;

现在请把磁片留在软碟机内,然後前进到;Setting;the;ramdisk;word;这一节 。;


6.2;不使用;LILO;来传送;kernel;--;Transferring;the;kernel;without;LILO;

如果你;不;使用LILO,那麽就用;dd;指令来传送;kernel;给;bootdisk;:;

%;dd;if=KERNEL;of=/dev/fd0;bs=1k
353 1;records;in
353 1;records;out

在这个例子中,;dd;写入了;353;个完整记录(records); ;1个partial;record;,所以;kernel;占用了;354;个软碟片的;blocks; 。这个数字称为;KERNEL_BLOCKS;,请记得它,这个数字要给下一节使用 。;

最後,请设定;root;device;为软碟片自己,然後再设定;root;要被载入成;read/write;:;

rdev;/dev/fd0;/dev/fd0
rdev;-R;/dev/fd0;0


在第二个;rdev;指令中,请小心地使用;-R; 。;


6.3;设定ramdisk;--;Setting;the;ramdisk;word;

在;kernel;image内的是;ramdisk;word;,它伴随其它选项,指定了;root;filesystem;应该在哪里被找到 。这个;word;会被以;rdev;指令,来进行存取与设定,而它的内容被解释如下:;


bits;;0-10:;;;;;Offset;to;start;of;ramdisk,;in;1024;byte;blocks
bits;11-13:;;;;;unused
bit;;;;;14:;;;;;Flag;indicating;that;ramdisk;is;to;be;loaded
bit;;;;;15:;;;;;Flag;indicating;to;prompt;before;loading;rootfs

如果;bit;15;被设定,在开机时;(boot-up);,会提示你把一张新的软碟片放入软碟机中 。这对一套双磁片的开机磁片组来说是必要的 。;

依据你是建造一张单一的;boot/root;磁片,还是两张;"boot; ;root";的磁片组,这里会产生两种情况 。;


如果你是建造一张单一磁片,压缩的;root;filesystem;会被放置在;kernel;之後,所以;offset;会是第一块;free;block;(这个值应该会与;KERNEL_BLOCKS;相等); 。;Bit;14;会被设定为;1;,而;bit;15;会被设定为;0; 。;举例来说,假设你正建造一张单一磁片,而;root;filesystem;将自;block;253;(10进位)开始 。那麽,;ramdisk;word;值应该是;253;(10进位);,;bit;14;设为;1;而;bit;15;设为;0; 。要计算这个值,你可以简单地加一加这个;10;进位数字 。;253; ;(2^14);=;253; ;16384;=;16637; 。如果你并不十分了解这个数字从何而来,把这数字放到工程计算机上,然後把它转换为;2;进位,;
如果你建造的是一套双磁片组,那麽;root;filesystem;将自第二张磁片的;block;0;开始,所以;offset;为;0; 。;Bit;14;设为;1;而;bit;15;设为;1; 。在这个情况下,;10;进位值是;2^14; ;2^15;=;49152; 。;

在仔细地为;ramdisk;word;计算後,请用;rdev;-r;设定它 。请注意要使用;10;进位;值 。如果你使用;LILO;,传给;rdev;的引数在此应该是;mounted;kernel;path;,比如说;/mnt/vmlinuz;如果你用;dd;来;copy;kernel;,替换成使用软碟机名称(;比如说;/dev/fd0) 。;

推荐阅读