根文件系统裁剪.doc

上传人:asd****56 文档编号:70342445 上传时间:2023-01-19 格式:DOC 页数:5 大小:49KB
返回 下载 相关 举报
根文件系统裁剪.doc_第1页
第1页 / 共5页
根文件系统裁剪.doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《根文件系统裁剪.doc》由会员分享,可在线阅读,更多相关《根文件系统裁剪.doc(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、一、编译内核得到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目录下我们需

2、要的设备文件方案一、把现有/dev目录中所有设备文件拷贝过来,然后删除不必要的设备文件(不推荐使用)命令:# cp dpR /dev /mnt/floppy/dev注释:该命令会拷贝整个设备目录但不拷贝文件内容,同时dpR开关保证连接文件仍然不变,不会拷贝连接指向原来文件,而且属性不变。如果没有SCSI设备,删除所有以sd开头的设备文件,如果不使用串口设备,删除所有以cua开头的文件,然后保留一些必要的设备文件。方案二、只拷贝必要的设备文件:console 控制台设备tty* 由控制台管理的虚拟终端ram 虚拟内存盘设备(以后我们的系统将运行在虚拟盘中)null 空设备,非常有用的字符设备文件

3、,送入这个设备的所有东西将被忽略。如果将任何程序的输出结果重定向到/dev/null,则看不到任何输出信息,因此脚本中常用它来消除本该显示在屏幕上的其他信息zero 零设备,只会得到空的内容,有时为了提高压缩率,需要对某空间全零填充时需要使用该设备inintrd 特殊的字符设备,被用来从用户空间向系统内核发送切换运行级别的信息,属于一个虚拟字符设备。 fd 0 软盘设备hd 0 硬盘设备(该项不是必须,如果您想挂载硬盘,请选择该项)命令:# cp dpR /dev/console /mnt/floppy/dev# cp dpR /dev/tty* /mnt/floppy/dev# cp dpR

4、 /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/

5、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修改ini

6、ttab文件内容: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#

7、 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/bin8、 确定/lib目录下所需要的共享函数库,如果缺少必要的函数库,系统会自动停止启动或出现一些错误信息提示。a) 列出所有程序需要使用的libc库命令:# cd /bin# ls l /lib/libc* rwxrxrx 1

8、root root 4016683 Apr 16 18:48 libc2.1.1.so lrwxrwxrwx 1 root root 13 Apr 10 12:25 libc.so.6 libc2.1.1.so拷贝箭头右边所指文件如 cp dpR /lib/libc-2.1.so* /mnt/floppy/libb)察看每一个程序所使用的函数库命令:# ldd /sbin/mke2fslibext2fs.so.2 = /lib/libext2fs.so.2 (0x40014000) libcom_err.so.2 = /lib/libcom_err.so.2 (0x40026000) libu

9、uid.so.1 = /lib/libuuid.so.1 (0x40028000) libc.so.6 = /lib/libc.so.6 (0x4002c000) /lib/ldlinux.so.2 = /lib/ldlinux.so.2 (0x40000000)拷贝箭头右边的函数库如cp dpR/lib/ldlinux.so.2 /mnt/floppy/lib9、 关于其他目录,以下目录在软盘版linux中完全可以为空a) /proc是一个虚拟的文件系统,用来传输资料给核心程序的目录,可以观察这些特殊的文件在内存中运行的信息;b) /usr目录下包含系统运行的所有程序,用户经常用到的一些数据

10、和一些配置数据,该文件系统为只读,以减少系统瘫痪的危险性c) /mnt 挂载其他设备的临时目录10、卸载虚拟盘,拷贝、压缩文件系统命令:# umount /mnt/floppy# dd if=/dev/ram0 bs=1k |gzip v9roofs.gz注释:压缩后在/root下得到一个压缩的根文件系统,检查它是否超过了1.44M,如果超过还得从头再来。 莹石查看公开信息查找 莹石 发表的更多帖子04-05-30, 21:21 第 3 帖 莹石 注册会员注册日期: May 2004帖子: 29 精华: 0标题: 回复: 提示附件太大,只好把我的制作步骤贴出来 三、 引导程序裁剪后所得内核大小

11、为850KB,压缩后文件系统大小为1.2M,二者之和大于1.44M,显然超过了软盘容量,所以本软盘版linux采用两张软盘,第一张盘放置内核及启动引导程序,第二张盘放置压缩的文件系统。系统启动过程如下:由于linux内核无法自己引导,故在系统启动时需要引导器来加载系统内核。通常的我们使用LILO,即the LInux LOader。微机加电后,基于x86 CPU构架的特性,CPU将去检测执行地址为FFFF0处存储的跳转指令,跳转到较低的地址。接着BIOS就会做一系列的检查操作。这一过程即POST(Power On Self Test)。最后BIOS结束自检,接着读取第一个启动设备的启动信息。一

12、般的是从硬盘启动,但本系统基于软盘,因此,BIOS将从软盘的启动扇区读取系统启动信息,这里即为LILO的引导部分内容,并将控制权交给LILO。LILO接管系统后将完成信息的显示、操作系统的选择(对多系统共存而言,在这里直接运行软盘上的Linux)、内核启动参数的传递,然后加载/etc/lilo.conf中对应的内核映像文件,最后将控制权交给加载到系统中的内核映像。当软盘上的Linux的内核被LILO加载到内存后,开始掌握控制权。由于Linux的内核是压缩存储的,所以首先进行的是自解压操作。然后内核将开始检测系统硬件,并配置相应的驱动程序,同时在系统控制台上输出相应结果信息。接下来内核将挂载并检

13、测根文件系统。若挂载成功,内核将在系统后台启动系统的第一个进程init进程。至此,内核加载过程结束。接下来由init进程根据/etc/inittab中的信息完成Linux系统的初始化操作。本系统裁剪掉了许多不必要的服务,故而只进行下列初始化操作。init停止在console,按inittab指示打开一个shell或者开getty+login这样用户就可以看到输入用户名的提示符,至此进入系统操作,完成整个系统引导过程。创建软盘版linux引导程序的步骤如下:1、 在第一张软盘上标记:系统引导及内核,然后插入软驱,执行命令a) # mke2fs N 24 m 0 /dev/fd0注释:将软盘格式化

14、为具有24个信息节点、ext2类型的文件系统b) # mount o dev /dev/fd0 /mnt注释:挂载软盘到/mnt目录c) # mkdir /mnt/boot注释:创建启动盘的boot目录d) # mkdri /mnt/dev注释:创建启动盘的dev目录e) # cp R /dev/null /mnt/dev注释:拷贝空设备到软盘f) # cp R /dev/fd0 /mnt/dev注释:拷贝软盘设备到目标系统的/dev目录下g) # cp /boot/boot.b /mnt/boot注释:拷贝启动映像文件到目标系统/dev目录下h) # cp /boot/bzImage /mn

15、t/boot注释:拷贝内核到目标系统的/boot目录下i) # rdev r /mnt/bzImage 49152li2、 创建修改lilo.conf文件a) # cp /etc/lilo.conf /mntb) 打开lilo.conf,修改为以下内容:boot=/dev/fd0install=/boot/boot.bmap=/boot/mapread-writebackup=/dev/nullcompactimage=/bzImagelabel=Linuxroot=/dev/fd03、 将引导装入程序复制到软盘命令:# lilo v C lilo.conf r /mnt4、 卸载第一张软盘命

16、令:# umount /mnt5、 将第二张软盘标记为:文件系统。插入软驱,拷贝压缩后的文件系统a) # mke2fs i8192 m 0 /dev/fd0注释:-i8192表示每8192位创建一个信息节点b) # mount /dev/fd0 /mnt注释:挂载软盘到/mnt目录c) # cp /root/rootfs.gz /mnt注释:拷贝文件系统到软盘d) # umount /mnt注释:卸载软盘6、 重新启动电脑,进入bios设置“first boot device”为“boot from floppy disk”。测试软盘版linux系统是否能够运行。将1号软盘插入软驱,重新启动电

17、脑,看到屏幕上出现“lilo loading linux”,然后是一大堆的系统硬件初始化信息,引导内核后,最后看到以下提示VFS:Insert root floppy disk to be loaded into RAM disk an press ENTER见图一插入第二张软盘:装载文件系统见图二不知何故,我在插入第二张软盘后,看到如下提示:RAMDISK:Ext2 filesystem found at block0RAMDISK:Loading 1440 block1diskinto ram disk doneVFS Mounted root(ext2 filesystem)Freein

18、g unused kernel memory:84K freedWarining:unable to open an initial consoleKernel panic:No init found .Try passing init=option to kernel7、 将软盘插在其他机器的软驱中,测试软盘版linux系统是否具有移植性。呼。今天忙了一天,光裁剪根文件系统了。一个1G多的文件系统,被我剪剪剪 ,成了30M了,但是还是嫌大,最理想是10M以内。但是我真觉得没法再剪了。bin/的东西,比较重要,只删了些不常见的命令、lib/有很多gcc的库,也得小心删减,一裁了不该裁的,系统就起不来了。usr/东西特别多usr/bin/,usr/lib/,可以删掉绝大部分,留下几个用到的就可以了usr/share/里好多东西,删删删,使劲删,基本都删光了。root/modules/里,很多需要加载的.ko模块,也可以删,只剩下core,sys,os的几个.ko。var/里面也可以删很多东西,留下一个var/log/dmesg和var/run/utmp。dev/里的东西也可以删,只要留下console和ttySA0就可以了。etc/也可以删一些不重要的脚本。就这样,只剩下了一个恐龙骨架

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com