免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1828 | 回复: 1
打印 上一主题 下一主题

基于LFS6.3建立自己的Linux LiveCD系统 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-15 21:53 |只看该作者 |倒序浏览

                                                                                                                                                                本文主要基于孙海勇
源代码搭建应用(二)——建立自己的Linux LiveCD系统
然后写了个脚本,这样大家就很容易的做出自己的LiveCD,而尽量减少错误。脚本见附件。所以使用本文时应参照孙海勇这篇文章。
准备工作:
  • 已经制作好的LFS 6.3。我以前有两篇文章可以减轻工作量,自动化或半自动化生成lfs6.3,大概需要3个小时左右。
    LFS6.3半自动化脚本
    以及
    LFS6.3自动化脚本-之ALFS(jhalfs-2.3.1)
  • (可选,不过推荐,只会耗费21分钟左右)LFS6.3完成后继续安装openssh和samba client。主要目的是为了可以在windows里面用客户端SecureCRT来连接wmware中的lfs 6.3直接copy&paste了。安装samba客户端主要用来方便与windows共享文件。见我的另一篇文章:
    LFS6.3完成后继续安装openssh和samba client
  • 01.sh,见附件
  • squashfs-3.3。下载地址http://downloads.sourceforge.net/squashfs/squashfs3.3.tgz?modtime=1194068681&big_mirror=0
  • Cdrtools-2.01和2个补丁。参照:http://www.linuxfromscratch.org/blfs/view/stable/multimedia/cdrtools.html 下载地址:  

  • http://gd.tuwien.ac.at/utils/schilling/cdrtools/cdrtools-2.01.tar.bz2

  •                 http://www.linuxfromscratch.org/patches/blfs/6.3/cdrtools-2.01-mkisofs_iconv-1.patch

  • http://www.linuxfromscratch.org/patches/blfs/6.3/cdrtools-2.01-ascii-2.patch
    把以上5个文件放入 windows共享目录中,如share   
    启动系统
    lfs里启动ssh,这样就可以windows里面的SecureCRT可以登入了
    /usr/sbin/sshd
    试一下挂载windows里面的共享目录:
    mount -t smbfs -o username=***,password=*** //192.168.187.1/share /mylfsshell/
    cp /mylfsshell/*.* /sources
    下面总耗时:40分钟左右。
    下面开工:
    编译安装必要的工具:(和孙海勇文一样,此处照搬,只是更详细的写了些命令)
    1、squashfs的内核补丁
       
    本文创建的系统利用的是squashfs方式压缩文件系统,所以必须让内核支持squashfs
      1)下载squashfs-3.3,并解压缩,在其目录中有linux kernel的补丁,找到你需要的内核补丁,因为LFS-6.3使用的是Linux-2.6.22.5这个版本,因此在内核的源代码目录中使用
          tar xvf squashfs3.3.tgz
          tar xvf linux-2.6.22.5.tar.bz2
          cd linux-2.6.22.5
          patch -Np1 -i /sources/squashfs-3.3/kernel-patches/linux-2.6.22/squashfs-patch
    2)重新配置内核,添加如下选项
         File systems -> Miscellaneous filesystems -> SquashFS 3.3

      3)重新编译安装内核,使其支持squashfs
    2、安装squashfs-tools
      内核支持squashfs后,还需要有专门的工具来创建squasfs文件,该工具包含在squashfs软件包中,进入squashfs-tools
           cd squashfs3.3/squashfs-tools/
        make
        install -m 755 unsquashfs mksquashfs /usr/bin
    现在系统已经可以创建并识别squashfs文件系统了。
    3、安装cdrtools-2.01
      安装这个包是为了使用其包含的命令mkisofs,这个是建立光盘镜像的工具。编译该包可以参考BLFS手册中该软件包部分。
           tar xvf cdrtools-2.01.tar.bz2
           cd cdrtools-2.01
        patch -Np1 -i ../cdrtools-2.01-mkisofs_iconv-1.patch
        patch -Np1 -i ../cdrtools-2.01-ascii-2.patch
        make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root
        make INS_BASE=/usr DEFINSUSR=root DEFINSGRP=root install &&
        install -v -m755 -d /usr/share/doc/cdrtools-2.01 &&
        install -v -m644 README* ABOUT doc/*.ps \
         /usr/share/doc/cdrtools-2.01
      好,到目前为止,系统已经具备了创建LiveCD的必要环境,下面就开始讲解创建一个简单的LiveCD的制作步骤。
    编译制作LiveCD专用的内核:
      LiveCD可以通过initrd来加载需要的设备驱动,因此建议将不是开始运行就需要的功能都制作成模块形式,这样可以减少内核的体积,同时也可以增加系统的灵活性。
      内核必须功能(这些功能必须包含在内核本身,不能以模块的形式出现)
          
        Automatic kernel module loading支持:
    (Loadable module support-> Automatic kernel module loading选为includes)
          这样可以方便今后加载模块。
        RAM disk support:
    (Device Drivers->Block devices->RAM disk support选为includes )
          initrd是采用RAM disk的方式使用的,因此内核必须支持该功能
          同时,这里设定RAM disk的大小的时候为了方便今后可能的扩展,如果在使用的机器上内存不是很紧张的话建议调整的大一些,我在这里把起调整为10M大小

        ext2支持:
    (File systems->Second extended fs support 选为includes )
          因为initrd.img本身是一个ext2的文件系统,所以要想使用initrd就必须让内核能够识别出ext2文件系统。
      内核必须的功能,但可以使用模块的形式出现
        loop支持:
    (Device Drivers->Block devices->Loopback device support ,我这里选为*,即includes)
          squashfs需要loop的支持才能正常使用,因此必须包含此功能。
        squashfs支持:
    (File systems->Miscellaneous filesystems->   SquashFS 3.3 - Squashed file system support,我这里选为M )
          这里制作LiveCD的方法中,压缩的文件系统采用squashfs,所以内核也必须包含此功能。
      非必须功能:
        如网卡、声卡、磁盘驱动等,这些并不是一定需要的,可以根据你的LiveCD的功能来进行取舍,如你需要制作一个应急修复盘,那么磁盘驱动方面就比较重要了,而声卡什么的则不是必须的了;而如果你是要制作一个桌面的LiveCD,那么声卡什么的则非常必要了。
      编译内核,
       
    make
    make modules_install
    cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22.5
    cp -v System.map /boot/System.map-2.6.22.5
    cp -v .config /boot/config-2.6.22.5
    install -d /usr/share/doc/linux-2.6.22.5
    cp -r Documentation/* /usr/share/doc/linux-2.6.22.5将内核文件放入/opt/iso/boot目录中,将模块放入/opt/iso/modules中。(这里我在shell脚本里面是采用如下两条命令:
    cp -v arch/i386/boot/bzImage /opt/iso/boot/kernelcp -r /lib/modules/2.6.22.5 /opt/iso/modules/,所以你不用输入)
    好,下面shell开始发挥威力了.
    mv /sources/01.sh ~
    cd ~
    ./01.sh
    然后大功告成了:
    shell会在你的windows里的share目录中生成mylinux.iso文件,是不是很简单。
    关于shell里面的主要说明:
    1.在创建标签的时候一般会把自己的名字写上:
    echo "创建LiveCD标签"
    echo "SunPeng's LiveCD" > /opt/iso/LABEL
    但是别忘了修改下面这条语句,一定要一致:
    if grep -q "SunPeng's LiveCD" ${SYSTEM}/cdrom/LABEL ; then
    2.loop设备我没有作为module,所以注释掉了这条语句:
    #/sbin/modprobe loop
    3.孙海勇原文中的语句
    pivot_root ${SYSTEM} ${SYSTEM}/initrd
    我的系统出现问题,改成下面的这条语句:
    /sbin/pivot_root ${SYSTEM} ${SYSTEM}/initrd
    4.孙海勇原文中的语句
    cp -a /bin/{bash,bunzip,bzcat,bzip2,killall,chmod,cp,grep,mount,tar,ln,cat,mkdir} ${INITRD}/bin
    我系统中没有bunzip,改成bunzip2,以及增加umount
    cp -a /bin/{bash,bunzip2,bzcat,bzip2,killall,chmod,cp,grep,mount,umount,tar,ln,cat,mkdir} ${INITRD}/bin
    -------

           
            文件:01.zip
            大小:1KB
            下载:
    下载
           
    -----
    另外,附上一些参考资料,对大家有用:
  • http://blog.chinaunix.net/u/13265/showart.php?id=477664 源代码搭建应用(二)——建立自己的Linux LiveCD系统
  • http://www.linuxsir.org/bbs/showthread.php?t=310171 想做个自己的 lfs distribution 吗
  • http://www.linuxsir.org/bbs/showthread.php?t=309927 LiveCD是这么产生的
  • http://www.linuxsir.org/bbs/thread336103.html 精通initramfs构建step by step
  • http://blog.linuxeden.com/?uid-86833-action-viewspace-itemid-3515 制作基于 grub 的 linux liveCD
  • http://www.xxlinux.com/linux/article/accidence/technique/20080131/13724.html LFS-制作自己个性化的LiveCD
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/81513/showart_1308328.html
  • 论坛徽章:
    0
    2 [报告]
    发表于 2013-03-25 09:30 |只看该作者
    回复 1# hillpig


        谢谢分享,正在做回去试试。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP