当前位置:操作系统 > Unix/Linux >>

Linux启动盘boot/root盘的制作(三)

/bin和/sbin:该目录中包含有必不可少的应用程序,如ls, mv, cat,你可以根据自己的需要选择,不过一定要记住包括以下程序:init, getty,login, mount,运行你的rc的外壳shell。

  /lib: 该目录中包含有你的启动盘启动过程中所需要的共享函数库,如果缺少必须的函数库,系统会停止启动或出现一大堆错误信息,所以一定要注意。

  几乎所有的程序都需要libc库,列一下目录/lib中的libc:

  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*

  libc.so.6的6表示版本号,它指向的文件才是你真正需要的。

  查看每一个程序使用的函数库,用命令ldd,如:

  ldd /sbin/mke2fs

  libext2fs.so.2 => /lib/libext2fs.so.2 (0x40014000)

  libcom_err.so.2 => /lib/libcom_err.so.2 (0x40026000)

  libuuid.so.1 => /lib/libuuid.so.1 (0x40028000)

  libc.so.6 => /lib/libc.so.6 (0x4002c000)

  /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

  输出右边的库都是必须的,有的可能是链接文件。

  在/lib目录下你还必须有函数库装载器,这个装载器或是ld.so (对 a.out 库) 或是 ld-linux.so (对 ELF 库)。新版本的ldd一般会告诉你所需库的装载器。

  把装载器和库拷贝到/lib后,再仔细检查一遍,一定保证没有遗漏。

  模块

  如果你有一个模块化的内核,你还得考虑需要加载的模块,它们都位于/lib/modules,你可以把不是很重要的模块放到别的盘上,当系统启动后再加载,这样会节省启动盘的空间。

  打包

  一旦你完成了上述工作,卸下虚拟盘,拷贝到一个文件中,然后压缩。

  umount /mnt

  dd if=/dev/ram0 bs=1k | gzip -v9>rfs.gz

  压缩结束后,你就拥有了一个压缩的根文件系统,不过你得检查它的大小,如果大了,你还得删除一些东西。

  (3) 组织引导盘

  有了根文件系统和内核之后,最后的工作就是把它们组织在一起。

  先检查总文件的大小,如果超出1.44MB,就得考虑重新创建所需或用两张磁盘,即使用两张磁盘,你的根文件系统也得小于1.44MB。

  

上一个:linux忘记了密码怎么办?(lilo篇)
下一个:Linux启动盘boot/root盘的制作(二)

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,