LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 4277|回复: 15

中文 Linux LiveCD 的制作

[复制链接]
发表于 2005-4-27 16:14:59 | 显示全部楼层 |阅读模式
简介

很多人都用过或听说过 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
发表于 2005-4-27 16:36:36 | 显示全部楼层
能不能在已有的liveCD的基础上再修改呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-27 16:42:55 | 显示全部楼层
Post by macaco
能不能在已有的liveCD的基础上再修改呢?


如果你是说我修改过的这张,当然可以。
回复 支持 反对

使用道具 举报

发表于 2005-4-27 19:14:16 | 显示全部楼层
好的~~~
回复 支持 反对

使用道具 举报

发表于 2005-4-27 19:33:13 | 显示全部楼层
好贴。。慢慢学习
回复 支持 反对

使用道具 举报

发表于 2005-4-27 21:12:51 | 显示全部楼层
能否把自己用的系统做成livecd
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-27 21:20:49 | 显示全部楼层
Post by molucule
能否把自己用的系统做成livecd


把平时用的软件和配置文件放到 LiveCD 里面算不算?
回复 支持 反对

使用道具 举报

发表于 2005-4-27 21:24:50 | 显示全部楼层
好贴  受益ing
回复 支持 反对

使用道具 举报

发表于 2005-4-28 09:30:52 | 显示全部楼层
也想知道能否把自己用的系统做成livecd!!!
回复 支持 反对

使用道具 举报

发表于 2005-4-29 23:56:04 | 显示全部楼层
也想知道能否把自己用的系统做成livecd!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表