CDlinux-0.5.9的安装和使用简介

上周,为了找到一个能在486上运行的带X的linux发行版,我又试了一些发行版,其中有一个据说是华裔博士做的CDlinux的最新版CDlinux-0.5.9。

从CDlinux的上述主页上可知,这个发行版定位于系统维护,并且全面支持简体中文。

下面简单说一下我是怎么把CDlinux怎样装到硬盘和U盘上和配置 ADSL、怎样制作包(package)和模块(module)的。

不知是怎么一回事,我简单按照主页上的方法不能成功把CDlinux装到硬盘或U盘上(我初步怀疑是作者更新了软件却没有更新相应的文档),文档支持的缺乏是CDlinux被网友提及较突出的问题。

1、把CDlinux-0.5.9装到硬盘上:

我试了一下,fat32和ext2都行,ntfs不行,其它的没试。把下载下来的CDlinux-0.5.9解开,linux可以直接用mount -o loop CDlinux-0.5.9.iso /mnt/isofile打开里面的文件,把里面的整个boot目录拷贝到某个硬盘分区的根目录下。主页上介绍的是用loadlin程序在纯DOS下引导,因为我的机器上有现成的linux的grub引导程序,就直接用grub来引导了。直接在/boot/grub/menu.lst中添加下面一项:

title CDlinux: LANG=zh_CN.UTF8

root (hd0,8)
kernel /boot/CDlinux/autoboot/bzImage vga=791 CDL_LANG=zh_CN.UTF8
initrd /boot/CDlinux/autoboot/CDlinux
boot

关于“ root (hd0,8)”是我的机器上的配置,指的是第一个硬盘的hda9。你需要根据自己的情况修改。关于硬盘分区在linux下的表示,请搜索有关网页。

或者你可以在linux下用root用户执行命令fdisk -l,找到你安装cdlinux的分区,如是第一个硬盘的hdaN,那么就是root (hd0,N-1),如果是第二个硬盘的hdbN,那么就是 root (hd1,N-1)。

2、安装在U盘里:

我的U盘是一个分区,fat32 格式。按照主页的说明,在SYSlinux上下载了能在各种操作系统下制作可启动U盘的程序,最新版的是syslinux-3.52.zip。解开这个文件,选择相应操作系统的syslinux命令来制作可启动U盘。如Linux下用unix目录下的:syslinux /dev/sda1,Windows下用win32目录下的:syslinux.exe D: (根据你的分区情况作相应修改)。

然后,把整个boot目录拷贝到U盘分区的根目录下。再在CDlinux主页上下载syslinux 的配置文件并把里面的文件展开到根目录下,然后根据你的情况修改里面的syslinux.cfg文件,我把里面的“kernel bzImage”全部替换成"kernel /boot/CDlinux/autoboot/bzImage",把"initrd=CDlinux.gz"全部替换成“initrd=/boot/CDlinux/autoboot/CDlinux”,实际就是现在U盘里的相应文件。

于是,当你把电脑设为从U盘启动,就可以使用了。

3、注意,CDlinux启动时好像会把扩展的包什么的(如firefox,中文locale,中文字体等等)加到内存里,如果你的内存小,可能要删除一些这样的包才行(我没试过)。如,我把CDlinux-0.5.9装在一台486DX100 + 24M,根本就启动不了,好像提示不能把映像加载到内存中。当然,CDlinux的定位本来就不是说用于低配置电脑运行,而是系统维护。

4、配置ADSL连接。

CDlinux自动启动DHCP客户端,在使用DHCP的局域网中可以不用配置。如果用ADSL上网,用pppoe-setup就可以配置了(好像要sudo),程序会问你一些参数,如ADSL用户名,密码,DNS(一般是自动从ISP获取的就填server)。配置好后,pppoe-start就启动连接了,关闭用pppoe-stop。

5、制作包(package):

先看作者主页的how-to内容。这里以替换CDlinux-0.5.9原有的fcitx输入法为例,原有的是没有五笔输入法的,现在要换上有五笔的。我原来在redhat linux 9.0下编译安装了一个fcitx3.1,先把系统中有关fcitx的文件找到,我用的是find命令,你也可手工找。

find /usr -iname “*fcitx*” -exec tar rfv “fcitx.tar” {} \;

然后把fcitx.tar在一个文件夹A中解开,得到fcitx的文件;再把CDlinux原有的boot/CDlinux/lang/zh_CN.UTF8/fcitx-3.3.1-cdl.tgz 在一个文件夹B中解开。然后,对照B中的文件内容,把A中的文件拷过来替换掉对应的文件。我这样做的目的是尽量减小体积。实际上,就用A中的全部文件打成一个包应该没有问题。这样,我去掉了A中的二笔等等输入法和帮助文件。B中应有目录etc,home,usr/local/bin,usr/local/share...。然后在B中用命令“ tar cfvz fcitx-wb-3.1-cdl.tgz ./* ”把其中的文件压缩成一个tgz包放回/boot/CDlinux/lang/zh_CN.UTF8中就行了。
6、制作模块(module)

先看作者主页的how-to内容。现在为CDlinux-0.5.9制作模块的关键是要知道现在的主页上介绍的用 mkfs.cramfs制作模块文件的方法是过时的,CDlinux-0.5.9现在新用了一个squashfs的文件格式(用file filename可以得到原文件格式等信息),需要用mksquashfs命令制作,如果你的系统中没有这个命令,到squashfs的主页下载一个。

还有一个要点是要知道在CDlinux-0.5.9中:/usr, /lib 等等系统目录不可写的,/usr/local可写,/etc也可写,其它的没试。

这里以我从DSL上下的opera852的模块制作为例,简述模块的制作。

用“ tar xfvz opera852.dsl ”命令解开opera852的文件到目录temp下,去掉DSL包专有的home和tmp目录,把 opt/opera852下面的bin, lib, share目录移到temp中,去掉opt目录。这时temp目录下有etc , bin, lib, share, usr目录。

把文件作一些需要的修改,我把etc下的opera6rc 作了一下修改如下(指定locale目录和启用xft字体):

; Put any default settings here that are overridable by users

[User Prefs]
Language Files Directory=/opt/opera852/share/opera/locale/
Force DPI=96

Enable Xft Fonts=1

用“ mount -t squashfs -o loop firefox-2.0.0.6-cdl.md /mnt/squash ”命令把CDlinux原有firefox模块挂载到/mnt/squash目录,把里面的3个隐藏文件.autoreg, .mount_point, .init,拷贝到temp目录下,并仿照着改写成需要的样子。

.autoreg不知是做什么的,空文件,没动;

.mount_point中的内容:

# .mount_point: indicates where to mount this image

/opt/opera852

.init文件的内容:

#!/bin/sh
#
# .init: init script for this module (optional)

MyDir=`dirname $0`
LnkDir=/usr/local

[ -d $LnkDir/bin ] || mkdir -p $LnkDir/bin
[ -d $LnkDir/lib ] || mkdir -p $LnkDir/lib
[ -d $LnkDir/etc ] || mkdir -p $LnkDir/etc

ln -sf $MyDir/bin/opera $LnkDir/bin/opera
ln -sf $MyDir/etc/opera6rc $LnkDir/etc/opera6rc

cd $MyDir/usr/lib
for i in libXm.so.*; do
ln -sf $MyDir/usr/lib/$i $LnkDir/lib/`basename $i`
done

然后,到temp目录的上级目录下,执行命令:“ mksquashfs temp opera-8.52-cdl.md ”就做了一个opera的模块文件opera-8.52-cdl.md。把这个模块文件放在/boot/CDlinux/extra目录下就行了。

7、CDlinux可以做什么

据主页上说,主要是用于系统维护,而且,CDlinux的扩展性很好,你把按你的需要对其进行改造。

8、CDlinux的缺点

一个比较突出的问题是文档少。关于扩展包制作没有详细的示例,而CDlinux本身的技术实现几乎没有提及。作为我见过的唯一的华人的成气候的mini型linux发行版,文档的丰富很关键。像DSL,deli等等发行版都有专门维护的文档和交流论坛。而我好像还没有发现CDlinux有交流论坛。关于cdlinux的文章基本上都分散在各个linux论坛或个人博客中。不信,你google一下“cdlinux”。

9、疑问:

1)、有没有办法避免系统启动加载太多的东西,并且改造成中文版的486可用的带X的linux发行版,像DSL, deli等等?

如有错漏还请指点一二,谢谢。

9 thoughts on “CDlinux-0.5.9的安装和使用简介”

  1. 照着你的安照到硬盘的方法做了,但是进入之好说找不到文件,不知是什么回事?
    还是不太会怎么给CDlinux添加软件,能再举一个例子吗?

    可以通过一些方式联系到你吗?还有一些关于 CDlinux的问题想请教。

  2. 你说的情况太模糊,不知道具体你是怎么做的?具体的出错信息是什么?你的目录结构是怎样的?你制作的是什么软件包?是模块还是包?是哪个软件包?出错信息是怎样的?

    我用的是0.5.9版的cdlinux,这里以装在FAT32分区中为例。在根目录的其中一个目录的目录结构是这样的:
    (我用的这个分区的挂载点是这样的:/media/winapp/,在windows则是E:\)
    那么cdlinux中的一些目录的路径在linux中应该是这样的:
    /media/winapp/boot/CDlinux/autoboot
    /media/winapp/boot/CDlinux/extra
    /media/winapp/boot/CDlinux/lang

    在Windows下应该是这样的:
    E:\boot\CDlinux\autoboot
    E:\boot\CDlinux\extra
    E:\boot\CDlinux\lang

    我没有试过其它软件包的制作,你可以先制作我说的两个软件包,练习一下。

    我的电子邮件: mdx-xx#tom.com

    欢迎交流探讨。

  3. Pingback: pingback
  4. 你好你的blog真不错.
    抱歉占用你10分钟,我想用CDlinux的最新版CDlinux-0.5.9来维护Redhat AS3 的系统,主要是查杀病毒.可我用CDlinux-0.5.9光驱正常启动后,进入CDlinux-0.5.9系统,但我不知道怎样来查杀病毒对原有的Redhat AS3 的系统,能否给我些建议和帮助,感谢!

  5. 我没有在cdlinux上面杀过毒,你可以试试这样:
    先以root用户把你想要杀毒的分区挂载到当前系统下,如:mount /dev/hda7 /mnt/hda7,然后以root用户执行杀毒命令。

  6. 我想把boot\CDlinux\autoboot\CDlinux解开,但用WINIMAGE无法打开,在0.4.9版上是可以打开CDlinux.img的,这个版不知道如何搞?

  7. 我知道0.5.9版的模块是以squahfs 的这种新的文件格式制作的。在Linux 下挂载这种格式的压缩文件的命令如: mount -t squashfs -o loop firefox-2.0.0.6-cdl.md /mnt/squash ,然后在目录 /mnt/squash里面就有了这个压缩文件里的内容。

    我估计你说的这个 boot\CDlinux\autoboot\CDlinux 文件也是采用了新的文件格式 squahfs制作的,如果是在windows下面,试着用新版的解压缩软件看能不能打开?

  8. Pingback: pingback
  9. 看着CDLinux不错,软件也不是很旧。
    其实我用过最快的linux系统,属DSL了。但是太陈旧了!根本没法用嘛。升级也不好升,服了。

Comments are closed.