定制CDlinux_极夜•潜_百度空间

CDlinux 是高度可定制的。它由以下两部分构成:

1. “基本”部分:一张 2.88M 软盘镜像,CDlinux.img
2. “附加”部分:其它附加的“包”和“模块”

“基本”部分就是一张 VFAT 格式的 2.88M 软盘镜像。上面包含了内核和一些最基本的软件,包括:bash (1.14.7)、bftpd (一个小 ftp 服务器)、busybox、bzip2、e2fsprogs、file、find、gawk、grep、gzip、midnight commander (4.1.35)、portmap、sed、tar 和 vim (5.8) 等。如果只是需要一个最基本的 Linux 环境,你可以把 CDlinux 的其它内容统统删掉,只保留这一个文件,一样跑得不错。

“附加”部分包括其它一些有用的工具软件,这些软件被打成了“包”(package) 或者“模块”(module),放在 extra/ 目录下。启动时,CDlinux 会自动到 extra/ 目录下查找并安装它们。

虽然 CDlinux 只需 CDlinux.img 这一个文件就能跑起来,不过功能上就大打折扣了。所以{zh0}还是保留这些附加的包和模块。当然,你也可以向 extra/ 目录里添加你需要的软件,把那些你用不到的删掉,自己定制一个 CDlinux 版本。
    CDlinux 很小,所以有很多有用的软件并没有被集成进来。不过你可以自己定制它,加上你需要的软件。可以把软件做成一个“包”或者一个 “模块”加进来。具体用哪种格 式,取决于软件的大小、是否需要初始化。小的、不需初始化的软件可以做成“包”;反之,{zh0}做成“模块 ”。比如,你可以把 F-PROT 做成一个“模块”添加到 extra/目录下,这样你就可以用 CDlinux 来杀毒了。(F-PROT 是个非常简洁、功能非常强大的杀毒软件,之所以没有集成到 CDlinux 的发行版中,是因为我不知道它的 license 是否允许。)

为 CDlinux 添加软件的注意事项
  • CDlinux 是用 gcc-2.95.3 编译的,链接的是 glibc-2.2.5。你添加的软件{zh0}也是编译、链接自同样的环境;
  • 如果你加的软件需要其它的,CDlinux 没有提供的库,请把这些库也一起添加进来。

做一个包非常简单,所谓“包”就是一个标准的 .tar.gz 文件。关于这个 .tar.gz 文件里的目录结构,你可以参考 extra/ 目录下已有的那些“xxx-cdl.tgz”文件。制作时只需注意以下几点:
  • “包”的文件名必须是“xxx-cdl.tgz”,否则将被忽略,不会被安装;
  • 如果愿意,你还可以为你的包加上一个简短的说明,并把它存为 zxh/SPEC。启动时 CDlinux 会自动把它集成到 /var/log/packages 里。关于 SPEC 的格式,请参照已有的“xxx-cdl.tgz”文件;
  • zxh/ 目录里除了 SPEC 以外的所有其它内容都将被忽略,不被安装;
  • CDlinux 是在一个小 RAM 磁盘里运行的,所以请尽量把包做得小一点。像 man 和 docs 等文档都可以放到 zxh/ 目录下,这样它们就不会被安装,你以后要查阅起来也比较方便。
  • “模块”的文件名必须是“xxx-cdl.md”,否则将被忽略,不会被安装;
  • 必须为模块指定一个挂载点。方法是把挂载点写到一个叫“.mount_point”的文件里,并把该文件放到 cramfs 的根目录下。“.mount_point”文件的具体格式可以参考 extra/ 下已有的“xxx-cdl.md”文件;
  • 如果该软件需要执行一些初始化操作,可以把初始化程序或脚本命名为“.init”放到 cramfs 的根目录下,并将起属性设置为可执行。启动时 CDlinux 会自动找到并执行 .init;
  • 缺省情况下,CDlinux 会尽量把“模块”都加载到内存中,内存不足时才以“loop”方式加载“模块 ”。如果你想省出更多内存来运行程序,可以在内核命令行里加上 “CDL_LOOP”参数,来强迫 CDlinux 以“loop”方式加载所有模块;
  • cramfs 是一种只读文件系统,并且不记录文件的时间信息。
    如果 CDlinux 的缺省状态不合你的胃口,你可以自己动手定制它。定制的办法有难有易:

“难”的办法是挂上 initrd 直接修改。CDlinux 的 initrd 是一个标准的 ext2 镜像,可以直接挂载、修改,没有问题。不过我还是推荐你尽量使用下面的“简单”办法。

“简单”的办法是,把修改的内容放到 extra/system-extra-cdl.tgz 文件里。比如,若是修改了 /etc/profile,把修改过的文件存为 system-extra-cdl.tgz 下的 /etc/profile。这样 CDlinux 启动时会自动用新的 /etc/profile 把旧的覆盖掉。另外,如果需要的话,你还可以在 system-extra-cdl.tgz 文件里加上个 /etc/rc.d/rc.local 脚本,以执行你需要的一些初始化操作。下面是一些具体的例子:

修改 bash 的命令行提示符

修改 CDlinux 原来的 /etc/profile 文件中带“PS1=”的哪些行,把修改后的结果保存到 system-extra-cdl.tgz 里,仍为 /etc/profile。
把 bash 的命令行编辑模式由 emacs 改为 vi

编辑 /etc/inputrc,加上“set +o vi”,把新文件存到 system-extra-cdl.tgz 里,仍为 /etc/inputrc。

让 CDlinux 自动挂载 C: 盘

编辑 /etc/fstab,把新文件存到 system-extra-cdl.tgz 里。

让 CDlinux 自动加载非即插即用 ISA 设备的驱动

假设你有一块老 NE2000 兼容 ISA 网卡,非即插即用,IO 地址是 0x300。为了让 CDlinux 能自动识别它,可以新创建一个脚本,在里面加上“modprobe ne io=0x300”,然后把它存为 system-extra-cdl.tgz 里的 /etc/rc.d/rc.local。

让把 CDlinux 设置成一个简单的网关/防火墙

修改 iptables-x.x.x-cdl.tgz 包,加上个 /etc/rc.d/init.d/IPTABLES 脚本,在这个脚本里设置网关/防火墙的规则。关于该脚本的格式,请参照 extra/dcron-x.x.x-cdl.tgz 包。
事实上 CDlinux 启动时会自动查找 /etc/rc.d/init.d/ 下的可执行文件,并运行它们。这有点像 sysvinit 的机制,只不过 CDlinux 不支持运行级的概念。

摘自:http://www.cdlinux.info/archive/0.4/howto-cn.html


郑重声明:资讯 【定制CDlinux_极夜•潜_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——