根文件系统裁剪.doc
文本预览下载声明
一、编译内核得到bzImage二、定制文件系统1、创建ramdisk虚拟空间,用来放置文件系统命令 # mke2fs –m 0 –I 2000 /dev/ram0注释:mke2fs将会自动判断设备容量的大小并相应的配置自身,-m 0参数防止它给root保留空间,这样会腾出更多有用的空间。2、挂载刚才创建的虚拟盘,我这里挂载在/mnt/floppy目录下命令 # mount –t ext2 /dev/ram0 /mnt/floppy3、创建文件系统必须目录命令 # cd /mnt/floppy# mkdir dev proc etc bin sbin lib mnt usr4、确定/dev目录下我们需要的设备文件方案一、把现有/dev目录中所有设备文件拷贝过来,然后删除不必要的设备文件(不推荐使用)命令:# cp –dpR /dev /mnt/floppy/dev注释:该命令会拷贝整个设备目录但不拷贝文件内容,同时dpR开关保证连接文件仍然不变,不会拷贝连接指向原来文件,而且属性不变。如果没有SCSI设备,删除所有以sd开头的设备文件,如果不使用串口设备,删除所有以cua开头的文件,然后保留一些必要的设备文件。方案二、只拷贝必要的设备文件:console —— 控制台设备tty* —— 由控制台管理的虚拟终端ram —— 虚拟内存盘设备(以后我们的系统将运行在虚拟盘中)null —— 空设备,非常有用的字符设备文件,送入这个设备的所有东西将被忽略。如果将任何程序的输出结果重定向到/dev/null,则看不到任何输出信息,因此脚本中常用它来消除本该显示在屏幕上的其他信息zero —— 零设备,只会得到空的内容,有时为了提高压缩率,需要对某空间全零填充时需要使用该设备inintrd —— 特殊的字符设备,被用来从用户空间向系统内核发送切换运行级别的信息,属于一个虚拟字符设备。 fd 0 —— 软盘设备hd 0 —— 硬盘设备(该项不是必须,如果您想挂载硬盘,请选择该项)命令:# cp –dpR /dev/console /mnt/floppy/dev# cp –dpR /dev/tty* /mnt/floppy/dev# cp –dpR /dev/ram /mnt/floppy/dev注释:如果要使用多个虚拟盘,可以相应的将ram1,ram2,……等拷贝过来# cp –dpR /dev/null /mnt/floppy/dev# cp –dpR /dev/zero /mnt/floppy/dev# cp –dpR /dev/initrd /mnt/floppy/dev6、 确定/etc目录中所需要的系统配置文件a) rc.d/* —— 系统启动所需要的脚本b) fstab —— 列出要登陆的文件系统,c) inittab —— 包含启动过程参数先直接拷贝系统/etc目录下的以上配置文件命令 # cp –R /dev/rc.d/* /mnt/floppy/dev/# cp /dev/fstab /mnt/floppy/dev/# cp /dev/inittab /mnt/floppy/dev/然后修改启动配置脚本,用vi或者kwrite等文本编辑工具打开/dev/rc.d/rc文件# cd /mnt/floppy/dev/rc.d/# vi rc修改rc文件为以下内容:#!/bin/shbin/mount -av /bin/host name fallso修改fstab文件内容为以下内容:/dev/ram0 / ext2 defaults/dev/fd0 / ext2 defaults/proc /prco proc defaults修改inittab文件内容:id:2:initdefault:si::sysinit:/etc/rc1:2345:respawn:/sbin/getty 9600 tty12:23:respawn:/sbin/getty 9600 tty27、 确定/bin是和/sbin目录包含的命令文件a) ls ——文件目录陈列,相当于dos的dirb) mv —— c) cat —— d) init —— e) mingetty ——f) login —— 登陆命令g) mount —— 挂载设备命令h) umount —— 卸载设备命令命令:# cp /bin/ls /mnt/floppy/bin# cp /bin/cat /mnt/floppy/bin# cp /bin/mv /mnt/floppy/bin# cp /bin/login /mnt/floppy/bin# cp
显示全部