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

发表于:2007-07-04来源:作者:点击数: 标签:
/bin和/sbin:该目录中包含有必不可少的应用程序,如ls, mv, cat,你可以根据自己的需要选择,不过一定要记住包括以下程序:init, getty,login, mount,运行你的rc的外壳shell。 /lib: 该目录中包含有你的启动盘启动过程中所需要的共享函数库,如果缺少必须

  /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。
  
  
  
  
  

原文转自:http://www.ltesting.net