根文件系统裁剪
- 格式:doc
- 大小:49.00 KB
- 文档页数:5
一、编译内核
得到bzImage
二、定制文件系统
1、创建ramdisk虚拟空间,用来放置文件系统
命令# mke2fs –m 0 –I 2000 /dev/ram0
注释:mke2fs将会自动判断设备容量的大小并相应的配置自身,-m 0参数防止它给root保留空间,这样会腾出更多有用的空间。
2、挂载刚才创建的虚拟盘,我这里挂载在/mnt/floppy目录下
命令# mount –t ext2 /dev/ram0 /mnt/floppy
3、创建文件系统必须目录
命令# cd /mnt/floppy
# mkdir dev proc etc bin sbin lib mnt usr
4、确定/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/dev
6、确定/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/sh
bin/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/rc
1:2345:respawn:/sbin/getty 9600 tty1
2:23:respawn:/sbin/getty 9600 tty2
7、确定/bin是和/sbin目录包含的命令文件
a) ls ——文件目录陈列,相当于dos的dir
b) 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 /bin/mount /mnt/floppy/bin
# cp /bin/umount /mnt/floppy/bin
# cp /sbin/init /mnt/floppy/bin
# cp /sbin/mingetty /mnt/floppy/bin
8、确定/lib目录下所需要的共享函数库,如果缺少必要的函数库,系统会自动停止启动或出现一些错误信息提示。
a) 列出所有程序需要使用的libc库
命令:# cd /bin
# ls –l /lib/libc*
-rwxr-xr-x 1 root root 4016683 Apr 16 18:48 libc-2.1.1.so*
lrwxrwxrwx 1 root root 13 Apr 10 12:25 libc.so.6 -> libc-2.1.1.so*
拷贝箭头右边所指文件
如cp –dpR /lib/libc-2.1.so* /mnt/floppy/lib
b)察看每一个程序所使用的函数库
命令:# ldd /sbin/mke2fs