The Linux Bootdisk HOWTO 中译版(7)

2008-02-23 07:22:42来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折



chdir /mnt; chroot /mnt /sbin/ldconfig


chroot 是必要的,因为 ldconfig 总是会为 root filesystem 重新制作 cache 。


4.7 Wrapping it up

一旦你完成 root filesystem 的建构工作,就 unmount 它,将之 copy 成一个档案并压缩它:

umount /mnt
dd if=DEVICE bs=1k | gzip -v9 > rootfs.gz

结束後,你会有一个名为 rootfs.gz 的档案,这就是你被压缩过的 root filesystem。你应该检查它的 size 以确保它能放在一张软碟片上;如果不行,你就必须回溯并移除一些档案。 Reducing root filesystem size 这节有一些提示,告诉你有关减少 root filesystem 的 size 。



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


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

5. 选择一个 kernel -- Choosing a kernel

现在,你已有一个完整的被压缩过的root filesystem。下一步是要建立或是选择一个 kernel 。在大部分的情况下, copy 你目前所使用的 kernel 并且从它启动软碟片是可能的。然而,会有一些情况,你会希望建立一个独立的 (separate) kernel 。

理由之一是 size 的考量。如果你正建立一张单一的 boot/root 磁片, kernel 将会是磁片上最大的档案之一,也因此你必须尽可能地减少 kernel 的 size 。为了减少 kernel size ,请用能支援所想要的系统之必要最起码的设备来建立 kernel 。这是指丢去你所不想要的每一项。网路功能是可以丢去的好选择,另外还有当运作你的 boot/root filesystem 时,任何你所不需要的磁碟机与其它设备的支援。如同前述,你的 kernel 必须有 ramdisk 与 ext2 支援内建於其中。

如果你已完成一套最起码的 (minimum) 设备组合以便於将之放入 kernel 中,那麽接下来你需要开始进行要把什麽加入回来。或许一套 boot/root 磁片组之最常见用途,是为了要能检查与回复 (restore) 一个已损毁的 root file system ,而为了达成这个目标,你需要 kernel 的支援。举例来说,如果你的备份都放在磁带上,并使用 Ftape 存取你的磁带机,那麽,如果你失去了你目前的root drive与含有 Ftape 的 drive ,你将不能够从你的备份磁带进行回复储存。你将必须重新安装 Linux ,下载并重装 ftape ,然後试著读取你的备份。

此处的要点是,无论你已加入什麽 I/O 支援到你的 kernel 内以支援备份,你同时也应该把它们加入到你的 boot/root kernel 中。


实际建造 kernel 的程序详述在随附於 kernel 的文件中。你可以轻易地照著指示进行,所以可以 /usr/src/linux 为起点。如果你在建造 kernel 上有困难,你或许不应该企图不择手段地建造 boot/root systems 。请记得用 ``make zImage''压缩 kernel 。



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

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

6. 把它们放在一起:制作磁片(组) -- Putting them together: Making the diskette(s)

进行到这里,你已经有一个 kernel 与一个压缩的 root filesystem 。如果你正在制作一张 boot/root 磁片,请检查它们的 size ,以确定它们都能放在同一张磁片上。如果你正在制作一套两张磁片的 boot root 磁片组。请检查 root filesystem 以确定它能放在一张磁片上。

你应该决定是否使用 LILO 以启动 bootdisk的 kernel 。替代的方法是直接把 kernel copy 到磁片上,然後不使用 LILO 开机。使用 LILO 的好处在於让你能够提供一些参数给 kernel ,这些参数对初始化硬体来说可能是必要的(请检查你系统上的 /etc/lilo.conf 档。如果这个档存在,而且有一行像``append=...'',你可能需要这个特点 (feature))。使用 LILO 的缺点在於建造 bootdisk 变得更为复杂,并且占用稍嫌较多的空间。你将必须设定一个小型而独立的 filesystem ,我们称之为 kernel filesystem,在其中你传送 kernel 以及一些 LILO 所需的其它档案。


如果你将要使用 LILO ,请继续读下去;如果你要直接传送 kernel ,先跳过此,直接到 Without using LILO 这一节。


6.1 用 LILO 传送 kernel -- Transferring the kernel with LILO

你所必须做的第一件事是为 LILO 编写一个小型的组态档。这个档看起来像这样:


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

boot =/dev/fd0
install =/boot/boot.b
map =/boot/map
read-write
backup =/dev/null
compact
image =KERNEL
label =Bootdisk
root =/dev/fd0


--------------------------------------------------------------------------------
关於这些参数的说明请看 LILO's user documentation 。你或许也会想从你硬碟上的 /etc/lilo.conf 档,加入一行 append=... 到这个组态档中。
把这个组态档存成 bdlilo.conf 。

现在你必须制作一个小型的档案系统,我们称之为 kernel filesystem ,有别於 root filesystem 。

首先,指出这个 filesystem 应该会有多大。用 blocks 计算你 kernel 的 size (这个 size 用 ``ls -l KERNEL'' 显示出来,是被 1024 所除并强迫进位),然後加 50 。这个 50 blocks 是估计的空间,为 inodes 与其它档案所需。如果你想要,你可以精确地计算这个数字,或是就用 50 就好了。如果你正在制作两张磁片的磁片组,你会高估这个空间,因为无论如何第一张磁片只给 kernel 使用。我们称这个数字会 KERNEL_BLOCKS 。

请把软碟片放入软碟机 (为求简便,我们假设是 /dev/fd0),然後在其上制作 ext2 kernel filesystem 。

mke2fs -i 8192 -m 0 /dev/fd0 KERNEL_BLOCKS

``-i 8192'' 指定我们想要每 8192 bytes 一个 node 。接下来, mount 这个 filesystem ,移除 lost found 目录,然後为 LILO 造出 dev 与 boot 这两个目录:

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Linux 指令篇:日期时间排程--uptime

下一篇:Linux 指令篇:档案目录管理--chmod