根文件系统裁剪

  • 格式:doc
  • 大小:49.00 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、编译内核

得到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