制作Linux发行版系统光盘的方法介绍

 

 
发布时间:2007.04.11 06:17     来源:赛迪网技术社区    作者:skid

在很多场合,现有的linux发行版并不能满足您的要求,比如:

  • 您需要根据自己的要求取舍安装包 
  • 您需要定制自动安装脚本(kickstart) 
  • 您需要加入自己的软件包
  这时您需要建立自己的linux发行版光盘,当然完整地从零开始定制一个linux发行版是十分耗时耗力的,我们一般只需要在现有的发行版光盘上进行修改即可满足我们的要求。下面讲述如何来做一个利用kickstart进行自动安装的光盘映象:(所有的操作都是基于centos-4.3发行版来进行)
  1. 复制母盘文件

    mkdir disk
    mkdir tmp
    mount -o loop centos-4.3.iso tmp
    cp -rf tmp/* disk/
    注意光盘根目录下有个隐藏文件.diskinfo,没有拷贝此文件在安装时刻将会告之,找不到cdrom

  2. 生成kickstart文件
    利用 system-config-kickstart工具生成kickstart文件, 不过该工具是基于x界面的,centeros-4.3 server版不带X界面。可用其他版本的linux生成。如果没有该工具也没关系,可以找现成的修改一番,具体的语法参考相关文件
  3. 让系统从kickstart配置启动
    修改disk/isolinux/isolinux.cfg文件,如下是我的一个配置文件
    default ks
    prompt 1
    timeout 60
    display boot.msg
    F1 boot.msg
    F2 options.msg
    F3 general.msg
    F4 param.msg
    F5 rescue.msg
    F7 snake.msg
    label linux
    kernel vmlinuz
    append initrd=initrd.img ramdisk_size=8192
    label text
    kernel vmlinuz
    append initrd=initrd.img text ramdisk_size=8192
    label expert
    kernel vmlinuz
    append expert initrd=initrd.img ramdisk_size=8192
    label ks
    kernel vmlinuz
    append ks=cdrom:/ks.cfg initrd=initrd.img ramdisk_size=8192
    label lowres
    kernel vmlinuz
    append initrd=initrd.img lowres ramdisk_size=8192
    label local
    localboot 1
    label memtest86
    kernel memtest
    append -
    注意:如果不想把kickstart文件放在光盘的根目录下,可以将其放在isolinux的initrd.img文件系统中,然后用 ks=file:/ks.cfg代替上面的 ks=cdrom:/ks.cfg. 具体参考 https://listman.redhat.com/archives/kickstart-list/2001-August/msg00029.html
    大致方法如下
    mount  -o loop initrd.img  tmp
    cp ks.cfg tmp
    umount tmp
  4. 建立启动画面
    启动画面用的是一种比较奇怪的格式lss16,它限制图片使用16种颜色,除去前景和背景色只能有14种颜色。我们需要ppmtolss16 giftopnm等程序,系统一般默认都安装了。
    一般用gimp生成一个index模式的gif图形,颜色限制为14, 然后通过如下的办法进行转:
    giftopnm < splash.gif | ppmtolss16 > splash.lss
    如果要编辑一个lss文件先用lsstoppm转成ppm格式,然后用gimp进行编辑.
    另外你还需要修改isolinux/boot.msg文件如下
    ^L
    ^Xsplash.lss

     -  Babel Com Australia Fedora Core Linux installer.

     -  Use the function keys listed below for more information.

    ^O02[F1-Main] [F2-Options] [F3-General] [F4-Kernel] [F5-Rescue]^O07

    Note that in the above screen fragment "^L" means insert a control-L sequence. In vi you can do that by typing control-V control-L.

    注意:上述显示的"^L"是一个控制序列,在vi中,你可以通过输入Ctrl-V 然后Ctrl-L来得到此字符。
  5. 生成ISO映象
    我们需要将改光盘制作成 ISO-9660 格式的光盘映象,通过如下命令来实现
    cd disk /
    mkisofs -o ../cdrom.iso -A 'ISOLINUX' -V 'ISOLINUX' /
     -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot /
     -boot-load-size 4 -boot-info-table .

  这样我们就能得到一个自己定制好的linux 发行版安装光盘。(T002)

 

你可能感兴趣的:(制作Linux发行版系统光盘的方法介绍)