The Linux Bootdisk HOWTO 中译版(4)

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

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



下一步就是造出 filesystem 。 Linux kernel 承认两种能让 root disks 自动地被 copy 到 ramdisk 上的 file system 。它们是 minix 与 ext2 ,其中 ext2 是比较受欢迎的。如果使用 ext2 ,你会发现使用 -i 选项指定比预设值更多的 inodes 是有助益的;我们建议用 -i 2000 ,这样你就不会用完 inodes 。如果不用上述选项,你可以移除许多不必要的 /dev 档案以节省 inodes 。 mke2fs 预设会造出 360 个 inodes在一张 1.44Mb 的磁片上。我发现在我目前的救援 root 磁片上, 120 个 inodes 是相当足够了,但是如果你把所有的设备档都放入 /dev 目录中,那麽你很容易会超过 360 个inodes 。使用压缩的 root filesystem 可让你拥有较大的 filesystem ,同时预设会有更多的 inodes ,但是你仍然必须要不就是减少档案数量,要不就是增加 inodes 数目。

因此,你所使用的指令看起来会像这样:

mke2fs -m 0 -i 2000 DEVICE

(如果你使用的是一个 loopback device ,那麽请用你目前所用的磁碟档案替换掉上面的 DEVICE 。)

mke2fs 指令会自动地侦测可获得的空间,然後依据侦测对自身进行组态设定。 ``-m 0'' 参数避免保留空间给 root ,因此可提供更多可用的磁碟空间。

下一步,挂上这个 device :


mount -t ext2 DEVICE /mnt

(如果 mount point 并不存在,你必须自行造出一个 mount point /mnt 。) 在剩下的章节中,所有的目的 (destination) 目录都被假设是相对於 /mnt 。

4.3 移植档案系统 -- Populating the filesystem

以下是你的 root filesystem 最起码该有的目录

此处所呈现之目录架构仅供 root diskette 使用。真正的 Linux 系统有一套更为复杂且设计良好的架构方法,称为 Filesystem Hierarchy Standard ,它决定档案应该如何放置。 :


/dev -- 里面存放设备档 (Devices) ,为达成 I/O 工作所需
/proc -- Directory stub required by the proc filesystem
/etc -- 里面存放系统组态设定档
/sbin -- 重要的 (critical) 系统二进位执行档 (binaries)
/bin -- 被认为是系统一部分的基本二进位执行档
/lib -- 提供 run-time 支援的共享函式库
/mnt -- 维护其它磁碟所用的磁碟挂入点 (mount point)
/usr -- 额外的工具程式与应用程式

上述目录的其中三个在 root filesystem 上会是空的,所以它们只需要用 mkdir 造出来。 /proc 目录基本上是一个把 proc filesystem 放置於其下的 stub 。 /mnt 与 /usr 这两个目录只是在 boot/root 系统运作时所使用的 mount points 。因此再重覆一次,这些目录只需要被造出来就可以了。

剩下的四个目录描述於以下各节。


/dev


/dev 目录包含一群特别的档案,这些档案是给系统上所有设备使用的,这样的 /dev 目录每个 Linux 系统都一定会有。这个目录本身是一个普通目录,可以以一般的方法用 mkdir 造出来。然而,这些特别的档案必须以特别的方法用 mknod 指令造出来。

但还是有一条捷径 -- 直接 copy 你现有 /dev 目录的内容,然後再清除你不想要的设备档。唯一的要求是 copy 这些特别的设备档时,要用 -R 选项。这个选项会 copy 整个目录中的档案,但是不会 copy 这些档案的内容。请确定使用 大写字母 R 。这个指令是:

cp -dpR /dev /mnt

在此我们假设磁片是被挂在 /mnt 底下。 dp 选项 (switches) 确保 symbolic links 是以 links 的方式来 copy ,而不是 copy 链结档所指向的 target file ,同时原本的档案属性也被保留,因此保留了档案的所有权资讯。

如果你想要用高难度技巧完成这个任务,就利用 ls -l 列出你想要的设备档之 major 与 minor device numbers ,然後再用 mknod 在磁片上造出它们。

无论如何 copy 这些设备档,还是要检查任何你所需之设备档 (device special file) 是否已放入这张救援磁片中。举例来说, ftape 使用磁带设备,如果你想要从 bootdisk 存取软式磁带机,你就需要 copy 所有有关的设备档。

请注意,每一个设备档需要一个 inode ,但 inodes 一直都是稀少的资源,特别是在磁片 filesystems 上。因此,从磁片上的 /dev 目录移除任何你所不需要的设备档是有意义的。举例来说,如果你没有 SCSI 磁碟,你可以放心地移除所有以 sd 开头的设备档。同样地,如果你并不想使用你的序列埠 (serial port) ,那麽你也可以移除所有以 cua 开头的设备档。

请确定从这个目录放入了以下档案的: console, kmem, mem, null, ram0 and tty1.


/etc

这个目录包含了重要的组态设定档。在大部分的系统上,这些档案被分为三个群组:


一直都是必备的, e.g. rc, fstab, passwd 。
可能是必备的,但是没有人能十分确定。
偷跑进来的垃报。
通常可以用以下指令识出哪些是非基本的档案:


ls -ltru

这个指令将档案依据上次被存取的日期,以先早後晚 (reverse) 的顺序列出,所以如果有任何档案不会被存取,那麽它们就可以从 root 磁片中删去。

在我的 root 磁片上,我的组态档数目已减至 15 个。这可减少我处理以下三种档案的工作:


我必须为 boot/root 系统进行组态设定的档案:
rc.d/* -- 系统启动与改变 run level 的 scripts
fstab -- 要被挂上的 file systems 清单
inittab -- 给 init process 的参数,於开机时启动的第一个 process 。
我们应该为 boot/root 系统整理的档案:
passwd -- 重要的使用者、 home 目录等其它项目的清单。
group -- 使用者群组。
shadow -- 使用者的密码。你可能没有这个档。
termcap -- the terminal capability database.
如果系统安全 (security) 对你很重要,那麽 passwd 与 shadow 应该被删减,以避免将使用者密码 copy 出系统,这样当你从磁片开机时,不想要的 logins 会被拒绝。 请确定 passwd 至少包含了 root 。如果你要让其他的使用者 login ,请确定他们的 home 目录与 shells 都存在。 termcap ,终端机资料库,一般而言有几百个 kilobytes 。你 boot/root 磁片的版本应该被删减到只包含你所使用的终端机,这通常就是 linux 或 linux-console 项目 (entry) 。

标签:

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

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

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