Chinaunix首页 | 论坛 | 博客
  • 博客访问: 499425
  • 博文数量: 176
  • 博客积分: 4045
  • 博客等级: 上校
  • 技术积分: 2491
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-19 11:23
文章分类

全部博文(176)

文章存档

2011年(7)

2009年(12)

2008年(157)

我的朋友

分类:

2008-05-15 16:50:08

在很多场合,现有的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. 具体参考
    大致方法如下
    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 发行版安装光盘。

阅读(320) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~