|
|
简介
很多人都用过或听说过 Knoppix,只需一张光盘,就能够让我们在任何场所,随心所欲地
使用 Linux,打破了操作系统只能先安装再使用的传统概念。Knoppix 最初的设计用途是
教学,但随着 LiveCD 不断发展,现在已经有非常广泛的应用,包括:系统演示,系统急
救,网络防火墙,产品宣传,游戏,等等。
虽然已经有众多的 LiveCD 供我们挑选,但有时要寻找到一张完全满足个人需要的版本还
是很难。没关系,因为绝大多数 LiveCD 采用的都是开放源码的自由软件,我们完全可以
自己动手修改,按自己要求制作 LiveCD。
确定目标
首先,要定一个目标,明确 LiveCD 的用途。下面列出将要制作的 LiveCD 必须具备的功
能:
· 支持中文,要能看,能写中文。
· 硬件识别能力强,能识别大多数网络设备,可以连上 LAN,也可以拨号使用。
· 要有网络浏览器,方便从 WebMail 查阅邮件。
· 要能打开 MS Word doc 和 pdf 格式的文件。
· 容量不超过 200M,可以刻录到 MiniCD 上,便于携带。
按照上面的要求,经过寻找和比较,选定 Morphix 作为定制 LiveCD 的基础。它与
Debian,Knoppix 一脉相承,并采用模块化设计,可以让我们用模块方式组合 LiveCD。
定制步骤
制作 LiveCD 我采用的系统是 Debian。在制作前先确认系统中有没有 mkisofs 这个命令
,如果没有,需要安装 mkisofs 这个 Debian 软件包。另外还需要安装 cloop-utils 软
件包,用于压缩模块。
下面按照先后顺序,开始制作 LiveCD。
1. 经过筛选,我选择在 MorphixCombined-LightGUI-0.5-pre4.iso 基础上进行修改。首
先下载这张 LiveCD。
2. 修改 /etc/apt/sources.list,增加 Morhpix 源,以安装相应制作工具。
# morphix
deb http://www.morphix.org/debian ./
Morphix 提供的制作工具都以 morphix- 开头,针对不同的用途,它还有一个
morphing-tools 包,可以安装所有的制作工具。在以下的操作中,我们只需要其中的
解压和压缩模块工具: morphix-modulebuilder 和 morphix-moduleextractor。使用
这两个工具时要注意,它们采用 /tmp 作为临时目录,而且要占用大量磁盘空间。
3. 将 iso 文件里面的内容复制到硬盘。
# mount -o loop MorphixCombined-LightGUI-0.5-pre4.iso tmp/cd
# cp -a tmp/cd/* iso/Morphix
# umount tmp/cd
4. 修改 MainModule
MainModule 里面主要包含与应用相关的程序,我们修改它要达到两个目的,一是增加
中文 locale 支持,二是根据需要安装和删除应用程序。
□ 解压 MainModule
# module-extract iso/Morphix/mainmod/light.mod mod/light
□ 挂载 /proc
# mount --bind -t proc /proc mod/light/proc
□ chroot
# chroot mod/light
□ 添加中文 locale。这张 Morphix LiveCD 里面, locale 只有 C 和 POSIX,所
以要修改 /etc/locale.gen 文件,包含下列内容
en_US ISO-8859-1
en_US.UTF-8 UTF-8
zh_CN GB2312
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
然后执行 locale-gen 命令生成新的 locale。
□ 修改 resolv.conf,以便通过网络更新。比如我这里用
# echo "nameserver 202.96.134.133" > /etc/resolv.conf
□ 更改默认的 debian 软件包源指向自己最快的镜像。如,添加
deb http://debian.cn99.com/debian unstable main contrib non-free
deb http://debian.cn99.com/debian-non-US unstable/non-US main contrib non-free
□ 更新软件包。按照自己的定制要求,添加和删除软件包。
# apt-get update
# apt-get remove --purge 不需要的软件
# apt-get upgrade
# apt-get clean
□ 清理空间
为了方便清理,先安装 deborphan 这个工具,然后用下面命令清理无用的软件
包:
# deborphan | xargs apt-get -y --purge remove
清除软件包缓存
# cd /var/lib/apt/lists/
# rm -f *
# touch lock
# cd /var/cache/apt/
# rm -f *
# cd /var/tmp/
# rm -f *
为了节约空间,可以将 /usr/share/locale 目录下,不使用语言的 mo 文件删除
。在 /usr/share/doc, /usr/share/man 下面也有这样的文件,也可以删除。
□ 更新文件名数据库
# deborphan | xargs apt-get -y --purge remove
□ 恢复开始时做的修改
# rm /etc/resolv.conf
# touch /etc/resolv.conf
# umount /proc
□ 压缩 MainModule
# module-builder -t ext3 mod/light iso/Morphix/mainmod/light.mod
5. 修改 MiniModule
MiniModule 是在 MainModule 之后加载,可以将一些额外的内容加载到系统里面,也
可以覆盖 MainModule 中的内容。我们利用这一特性,修改 LiveCD 默认用户 morph
的设置,以实现系统的中文化支持。做法很简单,就是把自己 $HOME 下的 .bashrc
这样的设置文件,复制到 /home/morph 里面。
与 MainModule 类似,也需要一番解压,修改,压缩的过程。
□ 解压 MiniModule
# module-extract iso/Morphix/minimod/new-light4.mod mod/new-light4
□ 解压后的 MiniModule 里面有两个目录: files 和 morphix。其中 files 目录下
面是 tar 压缩包,保存有 /home/morph 目录下配置文件。为了在 LiveCD 启动
后加载中文环境,使用 fcitx 输入法,我们需要修改 .xinitrc 文件,增加以下
内容,并将它链接到 .xsession:
export LANG=zh_CN.UTF-8
export LC_CTYPE=zh_CN.UTF-8
export XMODIFIERS=@im=FCITX
export GTK_IM_MODULE="fcitx"
fcitx &
这个压缩文件里,还可以放入其他一些软件的配置,比如 FireFox 的常用扩展。
□ 压缩 MiniModule
# module-builder mod/newe-light4 iso/Morphix/minimod/new-light4.mod
6. 与中文相关的软件包
Morphix 模块化设计的一个主要目的在于重用性。所以在 MainModule 里面我们不放
入与中文相关的软件,而将他们放在 LiveCD 根目录下的 deb 目录里面。系统启动的
时候,这些软件包会自动安装。
现在,我将 fcitx 输入法,ttf-arphic-newsung 中文字体,firefox 中文界面,以
及 xpdf 中文支持的相关的软件包复制到 iso/Morphix/deb 目录下面。
7. 修改 bootsplash
LiveCD 启动时的画面也能定制,将它们换成与自己 LiveCD 主题匹配的说明或自己喜
欢的图像。这些图像是以 jpeg 格式保存,但 bootsplash 当前只支持 16bit 色,如
果你选用的 jpeg 是 24bit 色,需要先进行转换处理。
下面是采用 netpbm 软件包里面的工具完成转换工作。
jpegtopnm image24.jpg |ppmtojpeg > image16.jpg
这些启动画面图像保存在 LiveCD 根目录 boot/miniroot.gz 文件里面,将它解压,
挂载到一个临时目录
# gzip -d miniroot.gz
# mount -o loop miniroot tmp/miniroot
启动时的图像和设置就保存在 bootsplash 目录中,我们可以修改 config 中的配置
文件,也可以直接替换 images 目录下面的文件。
8. 压制 iso 文件
定制工作完成,用下面命令就可以生成 iso 文件
# mkisofs -pad -l -r -J -v -V "SoForge LiveCD" -b boot/grub/iso9660_stage1_5 -c base/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table -hide -rr -moved -o SoForge.iso iso/Morphix
参考资料
1. Morphix: http://www.morphix.org
2. Morphix HowTo: All.pdf
3. GNU GRUB Manual: http://www.gnu.org/software/grub/manual/
4. Bootsplash: http://www.bootsplash.org/
后记
这里只讲述了制作 Linux LiveCD 的步骤,有关 LiveCD 的原理和 GNU/Linux 的基础知识
、 Mophix 模块设计并没有涉及。这方面的一些内容可以从上面参考资料链接中找到。
按照上述步骤制作的 LiveCD 可以从这里下载。但我希望你还是自己动手,因为制作
LiveCD 的确不是一件很难的事情。假如照着上面文章的步骤,你做的 LiveCD 不能用,请
发邮件到 jungle@soforge.com 与我联络,我们一起讨论来改进。
这篇文章会不断更新到 http://www.soforge.com/Linux/livecd.html |
|