网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 操作系统-> Linux系列-> Linux启动盘boot/root盘的制作

Linux启动盘boot/root盘的制作
作者:佚名 来源:InterNet 加入时间:2005-2-15
相关文章
  • 保障Linux系统的临时文件安全
  • 看清Linux应用的六大误区
  • Linux内核模块和驱动的编写
  • 如何编写Linux设备驱动程序
  • 编写Linux实用程序的艺术
  • Linux环境下的高级隐藏技术
  • Linux系统设置类命令大全
  • 用win2000的ntldr来引导linux
  • Linux中文件的压缩与解压缩
  • Linux命令大全—档案目录管理
  • 相关书籍:
  • Java应用程序开发LINUX平台
  • Linux 一句话精彩问答
  • Linux C语言函数大全
  • TurboLinux中文版使用手册
  • RedHat Linux安装及使用指南
  • Linux内核编程
  • Linux5.1完全使用设置教程
  • linux 安装与使用
  • Turbolinux教程
  • Red Hat Linux 5.1安装指南
  • boot/root盘由两部分
    盘上去,通常要对内核和根
    一些不必要的支持去掉,如
    RAMDISK及ext2,否则系统不
    成根文件系统的压缩包。对
    件系统组件,第二是将根文
    组成,即核心和根文件系统。要
    文件系统进行压缩,压缩核心的
    对网络和其它周边设备的支持,
    能正常引导。关于内核的编译本
    于根文件系统的压缩包括两方面
    件系统做成一个压缩包,类似于
    把这两部分都放到一个1.44MB的软
    最好方法是进行重新编译内核,将
    重要的一点是记住内核必须支持
    文不再阐述,下面重点介绍如何生
    的问题,第一是只保留必要的根文
    内核工作的原理。

        (1)根文件系统概述                                                      

        一个根文件系统必
    须包括支持完整Linux系统的全
    部东西,它至少应包括以下几项:

        基本文件系统结构                                                          
        至少含有以下目录
    :/dev、 /proc、 /bin、 /etc
    、 /lib、 /usr、 /tmp
        最基本的应用程序,如sh、 ls、 cp、 mv等                        
        最低限度的配置文件,如rc、 inittab、 fstab等              
        设备:/dev/hd*、 /dev/tty*、 /dev/fd0          
        基本程序运行所需的库函数                                                  

        以上所需文件一般情况下会超过
    缩到软盘中,当用软盘启动时,再把文件
    RAMDISK控制系统启动。
    1.44M,因此我们通常的做法是先准备好内容后再压
    解压到内存中,形成一个虚拟盘(RAMDISK),通过


        为了能创建以上的根文件系统,
    。系统缺省情况下已替我们建好了一个大
    我们就使用它来保存我们预先准备好的根
    你必须有一个空闲的能够放下大约4MB文件的RAMDISK
    小为4096KB的RAMDISK,其设备名一般为/dev/ram0,
    文件系统。
                                                                                  
        (2) 创建根文件系统                                                    

        Linux内核识别两
    ext2性能更好。mke2fs缺省
    件系统需要更多的信息节点
    一般不会用完。
    种可以直接拷贝到RAMDISK的文
    情况下在1.44M的软盘上产生360
    ,所以使用如下命令创建文件系

    件系统,它们是minix 和ext2,
    个信息节点,使用压缩格式的根文
    统可以创建2000个信息节点,而且


        mke2fs -m 0 -i 2000 /dev/ram0                

        mke2fs将会自动判断设备容量的
    留空间,这样会腾出更多的有用空间。接
    大小并相应地配置自身,-m 0参数防止它给root保
    着把虚拟盘挂在节点/mnt上:

        mount -t ext2 /dev/ram0 /mnt/floppy    

     

    接着是创建目录。根文件系统最少应该有如下8个目录:                            
        /dev — 设备                                                        
        /proc — proc 文件系统所需目录                                
        /etc — 系统配置文件                                                
        /sbin — 重要的系统程序                                            
        /bin — 基本应用程序                                                
        /lib — 共享函数库                                                  
        /mnt — 装载其他磁盘节点                                            
        /usr — 附加应用程序                                                
        执行如下命令创建这些目录:                                                
        #cd /mnt/floppy                                            

        #mkdir dev proc
    etc sbin bin lib mnt usr

        接下来的工作就是确定各个目录下的内容了:                                  

        /dev:/dev中含有
    ,然后删除不必要的文件。
    dp开关保证链接文件仍然不
    备,删除所有的以sd开头的
    过记住一定要保留console
    系统不可缺少的设备文件。可以
    命令cp -dpR /dev /mnt会拷贝
    变,不会拷贝链接所指原文件,
    文件。如果你不想使用串口设备
    、kmem、mem、null、ram、tty1
    把现有系统中/dev的文件拷贝过来
    /dev整个目录但不拷贝文件内容,
    而且属性不变。如果你没有SCSI设
    ,删除所有以cua开头的文件。不
    等文件。

        /etc:这个目录中
    底哪些文件是必需的,哪些
    ,干脆全部保留算了。
    含有一些必不可少的系统配置文
    可有可无呢?由于这下面的文件

    件。这下面的文件比较多,那么到
    一般是一些文本文件,都不是很大


        我的启动盘中含有不到15个配置文件,大致可分为3部分:                    

        rc.d/* — 系统启动脚本                                            
        fstab — 列出要登录的文件系统                                      
        inittab — 包含启动过程参数                                      

        而且这些文件都是最简单的。rc应该包括:                                  

        #!/bin/sh                                                        
        /bin/mount -av                                              
        /bin/hostname yjy                                        
        fstab应包括:                                                        
        /dev/ram0 / ext2 defaults                        
        /dev/fd0 / ext2 defaults                          
        /proc /proc proc defaults                        
        inittab包括:                                                      
        id:2:initdefault:                                        
        si::sysinit:/etc/rc                                    
        1:2345:respawn:/sbin/getty 9600 tty1  
        2:23:respawn:/sbin/getty 9600 tty2     

      /bin和/sbin:该目录
    的需要选择,不过一定要记
    壳shell。
    中包含有必不可少的应用程序,
    住包括以下程序:init, getty

    如ls, mv, cat,你可以根据自己
    ,login, mount,运行你的rc的外


        /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-linux.so (对 ELF 库)。新版本的l
    装载器,这个装载器或是ld.so (对 a.out 库) 或是
    dd一般会告诉你所需库的装载器。

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

         模块                                                                    

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


         打包                                                                    

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

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


        压缩结束后,你就
    ,你还得删除一些东西。
    拥有了一个压缩的根文件系统,

    不过你得检查它的大小,如果大了


        (3) 组织引导盘                                                        

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

        先检查总文件的大小,如果超出
    用两张磁盘,你的根文件系统也得小于1.
    1.44MB,就得考虑重新创建所需或用两张磁盘,即使
    44MB。
      接着就是确定是用LILO
    你能增加支持初始化硬件的
    建议使用LILO控制系统启动
    的方法就不作叙述了。
    控制启动还是直接用拷贝到盘上
    参数到内核中,缺点是较复杂且
    。下面我就介绍用LILO的过程,

    的内核控制启动。用LILO的好处是
    占用珍贵的磁盘空间,不过我还是
    直接用拷贝到盘上的内核控制启动


        用LILO控制启动首
    已经够用了。
    先就得写一个LILO配置文件,以

    下是一个最简单的配置文件,但是


        boot =/dev/fd0                                              
        install =/boot/boot.b                                
        map =/boot/map                                              
        read-write                                                      
        backup =/dev/null                                        
        compact                                                            
        image = KERNEL                                              
        label = Bootdisk                                          
        root =/dev/fd0                                              

        参数说明见相关资
    件系统。把一张干净的软盘
    料。然后把它命名为bdlilo.con
    插入软驱,在上面创建ext2文件
    f。 接下来就是创建一个内核文
    系统。

        mke2fs -i 8192 -m 0 /dev/fd0 50            
        “-i 8192”表示每8192位创建一个信息节点。接着登录系统:        
        mount /dev/fd0 /mnt/floppy                      
        rm -rf /mnt/floppy/lost+found                
        mkdir /mnt/floppy{boot,dev}                    
        删去目录/ lost+found,创建两
    个目录/boot和/dev,再执行:
        cp -R /dev/{null,fd0} /mnt/floppy/dev
        接着拷贝启动加载器boot.b到目录/boot中,                        
        cp /boot/boot.b /mnt/floppy/boot          
        最后,拷贝你创建的配置文件bd
    lilo.conf和内核到内核文件系统的根目录下,
        cp bdlilo.conf KERNEL /mnt/floppy        

        现在,根文件系统
    LILO引导器到软盘的根文件
    所需的所有文件都准备就绪了。
    系统上面:
    再执行下面的命令可以帮助安装


        lilo -v -C bdlilo.conf -r /mnt              

        OK,可以运行它了,如果运行结
    面的设置。
    果没有错误就表明成功,否则就应该仔细检查一下上


    [文章录入员:nancy]

    相关文章
  • 保障Linux系统的临时文件安全
  • 看清Linux应用的六大误区
  • Linux内核模块和驱动的编写
  • 如何编写Linux设备驱动程序
  • 编写Linux实用程序的艺术
  • Linux环境下的高级隐藏技术
  • Linux系统设置类命令大全
  • 用win2000的ntldr来引导linux
  • Linux中文件的压缩与解压缩
  • Linux命令大全—档案目录管理
  • 相关书籍:
  • Java应用程序开发LINUX平台
  • Linux 一句话精彩问答
  • Linux C语言函数大全
  • TurboLinux中文版使用手册
  • RedHat Linux安装及使用指南
  • Linux内核编程
  • Linux5.1完全使用设置教程
  • linux 安装与使用
  • Turbolinux教程
  • Red Hat Linux 5.1安装指南
  • 本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    Linux系列
    Win9X/ME
    Win2000
    Win2003/2008
    Unix系列
    Linux系列
    WindowsXP
    WinVista/WIN7
    注册表
    其它
    电脑教程阅读排行
    ·详解从硬盘安装linux
    ·Linux系统设置类命令大全
    ·在Linux下成功运行最新的QQ...
    ·Linux命令大全—日期时间安排
    ·如何编写Linux设备驱动程序
    ·Linux常用命令
    ·Linux与Windows硬盘资...
    ·linux下的进程管理及作业控制
    ·Linux内核模块和驱动的编写
    ·Linux中文件的压缩与解压缩