最新消息:

<转>如何制作完全属于自己的livecd?

RamOs 大步 1108浏览 0评论

工具光盘制作笔记

创建时间:2003-06-02
文章属性:原创
文章提交:san   (san_at_xfocus.org)

一、重灌knoppix

knoppix是一个基于debian的在光盘运行的linux,关于knoppix重新定制网上有很多文章了,我其实只是自己做的记录而已。

1、解包ISO

没有空余的机器或空余的分区,只能用虚拟机来折腾。在VPC上添加一个新的linux系统,选好内存大小,硬盘映像文件,然后启动这个系统,在菜单CD   ->   Capture   Image...选择KNOPPIX_V3.2-2003-05-03-EN.iso就可以了。

启动选项输入knoppix   2进入字符模式,用fdisk给/dev/hda分一个区,5个G应该足够,然后用mkfs.ext2给/dev/hda1创建文件系统。再把这个分区mount上:

#   mount   -o   rw   /dev/hda1   /mnt/hda1

建立工作目录:

#   mkdir   /mnt/hda1/knx
#   mkdir   -p   /mnt/hda1/knx/master/KNOPPIX
#   mkdir   -p   /mnt/hda1/knx/source/KNOPPIX

如果机器没有足够内存应该建立一个swap文件,因为最后压缩文件系统的时候会暂时把压缩文件写入内存:

#   cd   /mnt/hda1/knx   ;   dd   if=/dev/zero   of=swapfile   bs=1M   count=750   ;   mkswap   swapfile   ;   swapon   swapfile

拷贝knoppix文件,cp的p参数是保持文件的所有属性,这里的拷贝会持续比较长时间。

#   cp   -Rp   /KNOPPIX/*   /mnt/hda1/knx/source/KNOPPIX

以下的拷贝是为了重新编译内核以后,重做iso以新内核启动。否则只需拷贝boot.img就可以了。

#   cd   /cdrom/KNOPPIX
#   cp   boot.img   boot.cat   KNOPPIX   /mnt/hda1/knx/master/KNOPPIX

进入chroot环境对knoppix进行大刀阔斧的裁剪了:

#   chroot   /mnt/hda1/knx/source/KNOPPIX

2、裁剪和替换

进入chroot环境后,mount上proc:

#   mount   -t   proc   /proc   proc

配置好网络准备就绪。由于是基于debian操作系统的,所有的软件包都通过apt系统来维护,所以可能需要修改/etc/apt/sources.list文件,使用速度较快的镜像站点。

然后用apt-get   --purge   remove   program的命令方式删除不需要的东东,减少空间可以装其他自己想要的东东。/usr/share/doc这个目录的东西也比较大,100多M,也剁了。

通过执行deborphan可以找到一些不再关联的包,这些也可以安全的删除。

由于希望knoppix适合honeynet   GenII的网桥,必须给内核打补丁:

#   apt-get   install   kernel-source-2.4.20
#   apt-get   install   kernel-patch-xfs
#   wget   http://users.pandora.be/bart.de.schuymer/ebtables/v2.0/v2.0./ebtables-v2.0.003_vs_2.4.20.diff
#   wget   http://users.pandora.be/bart.de.schuymer/ebtables/br-nf/bridge-nf-0.0.10-against-2.4.20.diff
#   tar   jxf   kernel-source-2.4.20.tar.bz2
#   cp   linux/.config   kernel-source-2.4.20/
#   rm   linux
#   ln   -s   kernel-source-2.4.20   linux
#   cd   linux
#   ../kernel-patches/all/apply/xfs
#   patch   -p1   <   ../ebtables-v2.0.003_vs_2.4.20.diff
#   patch   -p1   <   ../bridge-nf-0.0.10-against-2.4.20.diff

我们使用了knoppix的内核配置文件.config,这里要注意的是ebtables的补丁一定要在bridge-nf打,否则会出错误。

#   make   menuconfig

在内核选项里要把802.1d   Ethernet   Bridging及相关选项选上,其他的可以根据自己的需求更改定制,执行完这一步打上knoppix的内核补丁:

#   patch   -p1   <   ../knoppix-kernel.patch

然后编译内核:

#   make   dep
#   make   bzImage
#   make   modules
#   make   moduels_install

编译模块需要不少时间。安装完以后可以把konippix原来内核相关的东西删除:

#   rm   -rf   /usr/src/linux-2.4.20-xfs
#   rm   -rf   /lib/modules/2.4.20-xfs
#   rm   -rf   /boot/*
#   rm   /vmlinuz

把新的内核拷过去:

#   cp   System.map   /boot/System.map-2.4.20
#   cp   arch/i386/boot/bzImage   /boot/vmlinuz-2.4.20
#   cd   /boot
#   ln   -s   System.map-2.4.20   System.map
#   ln   -s   vmlinuz-2.4.20   vmlinuz
#   cd   /
#   ln   -s   boot/vmlinuz-2.4.20   vmlinuz

必须用新内核重新编译cloop.o模块:

#   cd   /tmp
#   wget   http://www.knopper.net/download/knoppix/cloop_0.68-2.tar.gz
#   tar   xzf   cloop_0.68-2.tar.gz
#   cd   cloop-0.68
#   make   KERNEL_DIR=/usr/src/linux

由于knoppix通过boot.img来启动系统,必须修改之,按ALT+F2进入另外一个非chroot的shell,把boot.img拷过来:

#   cp   /mnt/hda1/knx/master/KNOPPIX/boot.img   /mnt/hda1/knx/source/KNOPPIX/var/tmp

在chroot的shell环境下进行修改。

#   cd   /tmp
#   mkdir   boot   mroot
#   mount   boot.img   boot   -t   msdos   -o   loop=/dev/loop0
#   cp   boot/miniroot.gz   .
#   gzip   -d   miniroot.gz
#   mount   miniroot   mroot   -t   ext2   -o   loop=/dev/loop1
#   cp   /tmp/cloop-0.68/cloop.o   /tmp/mroot/modules/

由于我的内核较大,索性把scsi光驱支持去掉,这样启动的时候速度也会快不少:

#   rm   -rf   /tmp/mroot/modules/scsi

修改/tmp/mroot/linuxrc,设置SCSI_MODULES= " "。

其实可以用winimage把boot.img扩大,那么这些东西就可以轻易的放入,用多个启动映像文件,多一种选择更好。注意映像文件名要使用8.3格式,后面提到的diskemu只能使用这个格式。

把miniroot打包回去:

#   umount   /tmp/mroot
#   gzip   -9   miniroot
#   cp   miniroot.gz   boot/

把新的内核映像也拷回去:

#   cp   /boot/vmlinuz-2.4.20   /tmp/boot/vmlinuz

修改/tmp/boot目录下syslinux.cfg文件的DEFAULT   vmlinuz设置,把lang=us改为lang=cn   2,把下面所有的lang=us改为lang=cn。这样knoppix重新启动的时候默认把语言属性改为中文,而且默认使用字符模式,没有必要一启动就 进入xwindow。

还可以修改/tmp/boot下的boot.msg、f2、logo.16这几个标记。这个新的boot.img就可以把knoppix引导到新的内核, 先重新灌装,然后在新的内核下安装与内核相关的驱动。退出chroot环境,用新的boot.img重新制作iso:

#   cp   /mnt/hda1/knx/source/KNOPPIX/var/tmp/boot.img   /mnt/hda1/knx/master/KNOPPIX/boot.img
#   cd   /mnt/hda1/knx/  
#   mkisofs   -pad   -l   -r  
; -J   -v   -V   "KNOPPIX "   -b   KNOPPIX/boot.img   -c   KNOPPIX/boot.cat   -hide-rr-moved   -o   /mnt/hda1/knx/knoppix.iso   /mnt/hda1/knx/master  

制作iso速度比较快,把/mnt/hda1/knx/knoppix.iso传到自己的系统里面,然后用这个iso启动虚拟机。

3、更新和安装新的驱动

重新启动后可以用uname   -a看看是否已经是新内核。

增强对无线网卡的支持。默认linux是不支持atmel芯片的无线网卡,需要另外安装,这里使用是非官方发布版本:

#   chroot   /mnt/hda1/knx/source/KNOPPIX
#   cd   /tmp
#   wget   http://atmelwlandriver.sourceforge.net/snapshots/atmelwlandriver-ss-20030507.tar.gz
#   tar   xzf   atmelwlandriver-ss-20030507.tar.gz
#   cd   atmelwlandriver
#   make   config
Build   all   [y/N]   <--   这里选y把所有的驱动都编译了。
#   make   all
#   make   install

对于orinoco的驱动linux自带内核模块,但默认的驱动不支持无线网卡的monitor模式,airsnort主站提供了相应补丁,可以通过给pcmcia-cs打补丁,也可以通过给orinoco驱动打补丁,这样更简单一些:

#   cd   /tmp
#   wget   http://ozlabs.org/people/dgibson/dldwd/orinoco-0.13b.tar.gz
#   wget   http://airsnort.shmoo.com/orinoco-0.13b-patched.diff
#   tar   xzf   orinoco-0.13b.tar.gz
#   cd   orinoco-0.13b
#   patch   -p1   <   ../orinoco-0.13b-patched.diff
#   make
#   make   install

linux-wlan-ng的驱动也更新一下:

#   cd   /tmp
#   wget   ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-0.2.1-pre5.tar.gz
#   tar   xzf   linux-wlan-ng-0.2.1-pre5.tar.gz
#   cd   linux-wlan-ng-0.2.1
#   make   config     <--   这里可以基本上把所有的驱动都加上
#   make   all
#   make   install

prism的芯片也能使用orinoco的驱动,如果确认一些网卡使用的是prism芯片可以修改/etc/pcmcia/config文件,使用的驱动改一下,比如Compaq   WL100的网卡原来使用orinoco的驱动,可以把它改成:

bind   "prism2_cs "

这样插入Compaq   WL100的网卡就会使用linux-wlan-ng的驱动,其它的网卡也可做类似修改,但你得知道网卡使用的芯片。

4、xwindow桌面环境的修改和汉化

KNOPPIX默认使用KDE作为桌面环境,这实在太大了。除了fluxbox、wmake、twm,删除了其它所有桌面环境,fvwm也是非常不错的, 直接用apt安装。使用fluxbox作为默认的桌面。输入法使用fcitx,非常不错,而且已经进了debian的sid,以后更新就方便了。修改 /etc/init.d/knoppix-autoconfig的1026行附近关于DESKTOP变量的赋值改为如下:

#   Also   read   desired   desktop,   if   any
DESKTOP= "$(getbootparam   desktop   2> /dev/null) "
#   Allow   only   supported   windowmanagers
case   "$DESKTOP "   in   fvwm|windowmaker|wmaker|fluxbox|twm)   ;;   *)   DESKTOP= "fluxbox ";   ;;   esac

knoppix关于xwindow的脚本实际执行的是/etc/X11/Xsession.d/45xsession,里面有启动各种桌面的函数,比如 startkde()。需要给fvwm添加一个类似的函数,完全拷贝startfluxbox()。startkde()完全可以删除以节省篇幅。

修改45xsession文件最后部分:

if   [   "$LANGUAGE "   =   "cn "   ];   then
export   XMODIFIERS=@im=fcitx
/usr/bin/fcitx   &
fi

case   "$DESKTOP "   in
            fvwm|FVWM)   startfvwm   ;;
fluxbox|FLUXBOX)   startfluxbox   ;;
windowmaker|wmaker|WINDOWMAKER|WMAKER)   [   "$FREEMEM "   -ge   "35000 "   ]   &&   startwindowmaker   ||   starttwm   lowmem   64;   ;;
                twm|TWM)   starttwm;       ;;
                            *)   starttwm   invalidwm;       ;;
esac

这个脚本还有许多地方可以修改,也许你还需要修改/etc/init.d/xsession脚本等等。

字体使用simsun,并且使用firefly的补丁,可以到这里下载:
http://debian.ustc.edu.cn/dev/

修改/etc/gtk/gtkrc.zh_CN:
style   "gtk-default-zh-cn "   {
fontset   =   "-misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1,
-misc-simsun-medium-r-normal--14-*-*-*-*-*-iso10646-1 "
}
class   "GtkWidget "   style   "gtk-default-zh-cn "

修改/etc/init.d/xsession,默认使用root用户启动X。

5、honeynet功能

#   mkdir   /honeynet
#   wget   http://honeynet.xfocus.net/papers/honeynet/tools/snort_inline.tgz
#   wget   http://honeynet.xfocus.net/papers/honeynet/tools/sebeksniff-2.0.1.tar.gz
#   wget   http://honeynet.xfocus.net/papers/honeynet/tools/sebek-linux-2.0.1.tar.gz

#   apt-get   install   swatch
#   apt-get   install   honeyd

以后再调整。

6、生成压缩文件系统

重灌前建议对系统做一遍升级和清理垃圾的工作。

#   apt-get   -u   upgrade   <-   这里要注意,有些服务型的软件会加上开机启动脚本,可以用update-rc.d删除。
#   apt-get   clean

更新关联:

#   updatedb
#   umount   /proc

退出chroot环境后压缩文件系统:

#   mkisofs   -R   -U   -V   "KNOPPIX.net   filesystem "   -P   "KNOPPIX   http://www.knoppix.net "/   -hide-rr-moved   -cache-inodes   -no-bak   -pad   /mnt/hda1/knx/source/KNOPPIX   |   nice   -5   /usr/bin/create_compressed_fs   -   65536   >   /mnt/hda1/knx/master/KNOPPIX/KNOPPIX

转载请注明:大步's Blog » <转>如何制作完全属于自己的livecd?

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
SiteMap