视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
cdlinux
2025-09-26 22:09:14 责编:小OO
文档
目录

安装

如何“安装 ”CDlinux?

如何把 CDlinux 集成到我自己的光盘上?

如何把 CDlinux 安装到硬盘上?

如何把 CDlinux 安装到 U 盘上?

简介:CDlinux 的命令行参数

定制

简介:CDlinux 的结构

如何向 CDlinux 里添加其它软件?

如何为 CDlinux 制作一个“包”(package)?

如何为 CDlinux 制作一个“模块”(module)?

如何按照我自己的口味定制 CDlinux?

配置

如何配置网络?

如何配置 RAID 设备?

如何配置鼠标?

使用

如何读/写中、日、韩文?

如何与其它计算机交换数据?

如何改变分区大小、修改分区表?

如何修复被损坏了的分区表?

如何从 ext2 文件系统中恢复被误删除的文件?

LILO/GRUB 被 Windows 覆盖了,如何修复?

Windows 9x 覆盖了 NT/2k/XP 的引导记录,“双启动菜单”不见了,如何修复?

NT/2k/XP 的管理员密码丢了,怎么办?

安装

如何“安装” CDlinux?

    CDlinux 是个从光盘启动、运行的小 Linux,是以一个标准的 ISO 文件的形式发布的。所以最简单的“安装”方法是:把这个 ISO 文件刻录到光盘上,用它启动机器就是了。

    当然,你也可以把 CDlinux 安装到硬盘或 U 盘、USB 移动硬盘上(请参见下文)。

如何把 CDlinux 集成到我自己的光盘上?

    CDlinux 本身很小,0.4.9 只有不到 17 兆,这比一张刻录盘的容量差多了。所以,如果有兴趣的话,你可以自己动手,把 CDlinux 与其它软件集成到一起,不必单刻一张盘。还可以与其它系统一起做成多启动光盘。具体操作既可以在 Linux 下进行,也可以在 Windows 下进行:

用 Linux 的方法 (以下操作可以在 CDlinux 也可以在一般的 Linux 系统中进行)

    首先要把 CDlinux 的内容从 ISO 镜像里展出来,先挂载它:

        # mount -o loop CDlinux-x.x.x.iso /some/where

    这样 CDlinux 里的具体内容就都在 /some/where 目录下了。假设你已经把其它要刻到盘上的软件都放到了 /mycd 目录下,现在把 CDlinux 也拷到那个目录里:

        # cp -p -r /some/where/* /mycd

    接下来 cd /mycd,打开 mkisofs.sh 文件,根据你自己的具体情况进行必要的修改,存盘退出。最后,执行:

        # ./mkisofs.sh

    生成新的光盘镜像,缺省情况下新镜像是 /tmp/1.iso。现在就可以它刻录出来了。

    注意,通过以上步骤做出的光盘启动时会直接进入 CDlinux,启动效果和原来的 ISO 镜像是一样的。如果你想制作带菜单的多启动光盘,还需要用到 ISOlinux (SYSlinux 的一个组件) 等其它工具,至于如何使用它们,请参见它们各自的文档。

用 Windows 的方法

    这个我不太熟,不过我想也不会太麻烦。只要注意以下几点就行了:

∙可以用 WinRAR 来提取光盘镜像里 CDlinux 的内容; 

∙CDlinux 是通过 boot/CDlinux/CDlinux.img 这个 2.88M 软盘镜像来启动的; 

∙请保持 CDlinux 的目录结构,不要改动; 

∙不要改变文件/目录名的大小写。 

如何把 CDlinux 安装到硬盘上?

    Linux 本身功能非常强大又非常灵活,CDlinux 也继承了这一点,所以稍加定制就可以把它安装到各种各样的设备上。并且仅仅把 CDlinux 安装到硬盘上就有很多种方案可选,这里我们只介绍一种方案:把 CDlinux 安装到一个 Windows FAT 分区里,用 loadlin 来启动它。

    在以下的说明中,我们假设你的 Windows 的“C: 盘”是 FAT16 或者 FAT32 格式的,并且它对应 Linux 下的 /dev/hda1。我们将把 CDlinux 安装到“C: 盘”上。

用 Linux 的方法 (以下操作可以在 CDlinux 也可以在一般的 Linux 系统中进行)

    首先,挂上 CDlinux 的 ISO 镜像和 C: 盘:

        # mount -o loop CDlinux-x.x.x.iso /mnt/cdrom

        # mount /dev/hda1 /mnt/win

    (如果你不想装到 C: 盘上,或者你的 C: 盘不是 /dev/hda1,请对上述命令做相应的修改)

    然后把 extra/ 目录下的内容拷贝到 C: 上:

        # mkdir /mnt/win/CDlinux

        # cp -r /mnt/cdrom/boot/CDlinux/extra /mnt/win/CDlinux

    接下来,把内核和 initrd 也拷到 C: 盘:

        # mount -o loop /mnt/cdrom/boot/CDlinux/CDlinux.img /mnt/floppy

        # cp /mnt/floppy/bzImage /mnt/floppy/CDlinux.gz /mnt/win/CDlinux

    最后,下载 loadlin (~10k) 并把它展到 C: 盘上:

        # tar -C /mnt/win/CDlinux -zxf loadlin.tgz

    (这步把“loadlin.exe”和一个“autoboot.bat”批处理文件拷贝到 /mnt/win/CDlinux 目录里。请检查“autoboot.bat”文件,并根据你自己的具体情况做相应的修改。)

    现在,可以重启到纯 DOS 环境,用以下命令来启动 CDlinux 了:

        C:

        CD CDlinux

        AutoBoot

    注意,以上步骤只是一个简单的例子,这里的假设可能和你的情况并不一致。所以,在操作时别忘了根据自己的具体情况做必要的修改。另外请参考“简介:CDlinux 的命令行参数”和“简介:CDlinux 的结构”。 

如何把 CDlinux 安装到 U 盘上?

    把 CDlinux 安装到 U 盘也有多种方案可选。我们还是只说一种:安装到 U 盘上的一个 FAT 分区里,并用 SYSlinux 来启动。

    在以下的说明中,我们假设你的 USB 盘(U 盘或 USB 移动硬盘)被设定为硬盘模式。上面的第一个分区是 FAT12、FAT16、或者 FAT32 格式的,并且它对应 /dev/sda1。

用 Linux 的方法 (以下操作可以在 CDlinux 也可以在一般的 Linux 系统中进行)

    首先,在 USB 盘上安装 syslinux:

        # syslinux /dev/sda1

    挂载 CDlinux 的 ISO 镜像和 USB 盘:

        # mount -o loop CDlinux-x.x.x.iso /mnt/cdrom

        # mount /dev/sda1 /mnt/win

    (如果你的 USB 盘不是 /dev/sda1,请做相应的修改)

    然后,把 extra/ 目录下的内容拷贝到 USB 盘上:

        # mkdir /mnt/win/CDlinux

        # cp -r /mnt/cdrom/boot/CDlinux/extra /mnt/win/CDlinux

    接下来,把内核和 initrd 也拷过去:

        # mount -o loop /mnt/cdrom/boot/CDlinux/CDlinux.img /mnt/floppy

        # cp /mnt/floppy/bzImage /mnt/floppy/CDlinux.gz /mnt/win

    最后,下载 syslinux 的配置文件 (~2k) 并把它展到 USB disk 盘上:

        # tar -C /mnt/win -zxf syslinux-cfg.tgz

    (这一步将把“syslinux.cfg”和一些显示信息等文件拷贝到 /mnt/win 目录下。不要忘了先检查一下“syslinux.cfg”,并根据你自己的具体情况做相应的修改。)

    现在可以把你的 BIOS 设置成从 USB-HDD 或者 USB-zip 启动。(具体设为那种和你的 BIOS 及 USB 盘有关,试一下就知道了。)

    注意,以上步骤只是一个简单的例子,这里的假设可能和你的情况并不一致。所以,在操作时别忘了根据自己的具体情况做必要的修改。另外请参考“简介:CDlinux 的命令行参数”和“简介:CDlinux 的结构”。 

简介: CDlinux 的命令行参数

    为了让 CDlinux 更灵活,不但能从光盘启动,还能从其它各种设备启动;并且不但能把模块挂载到内存中(ramdisk),为了节约内存,还可以自动用“ loop”方式挂载模块,我们定义了下述三个内核命令行参数:

    CDL_DEV=:

      告诉 CDlinux 在哪个设备上可以找到附加的“包”和“模块”

      缺省值:/dev/cdrom

      例子: CDL_DEV=/dev/hda1

    CDL_DIR=:

      extra/ 目录在 CDL_DEV 的文件系统的那个目录下?

      缺省值:boot/CDlinux, CDlinux, zxh/CDlinux

      例子: CDL_DIR=APPs/CDlinux

    CDL_LOOP:

      是否强制以“loop”方式加载“模块”?

      缺省值:否,尽量把“模块”挂载到内存里。

      例子: CDL_LOOP

    以上这三个参数都是可选的,正常从光盘启动时可以一个也不加,使用缺省值即可。如果模块太多或者太大,CDlinux 会自动以“loop”方式加载它们。不过这样一来,在 CDlinux 运行时就不能把光盘拿出来了。

定制

简介: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 这一个文件就能跑起来,不过功能上就大打折扣了。所以最好还是保留这些附加的包和模块。当然,你也可以向 extra/ 目录里添加你需要的软件,把那些你用不到的删掉,自己定制一个 CDlinux 版本。

如何向 CDlinux 里添加其它软件?

    CDlinux 很小,所以有很多有用的软件并没有被集成进来。不过你可以自己定制它,加上你需要的软件。可以把软件做成一个“包”或者一个 “模块”加进来。具体用哪种格式,取决于软件的大小、是否需要初始化。小的、不需初始化的软件可以做成“包”;反之,最好做成“模块 ”。比如,你可以把 F-PROT 做成一个“模块”添加到 extra/目录下,这样你就可以用 CDlinux 来杀毒了。(F-PROT 是个非常简洁、功能非常强大的杀毒软件,之所以没有集成到 CDlinux 的发行版中,是因为我不知道它的 license 是否允许。)

为 CDlinux 添加软件的注意事项

∙CDlinux 是用 gcc-2.95.3 编译的,链接的是 glibc-2.2.5。你添加的软件最好也是编译、链接自同样的环境; 

∙如果你加的软件需要其它的,CDlinux 没有提供的库,请把这些库也一起添加进来。

如何为 CDlinux 制作一个“包”(package)?

    做一个包非常简单,所谓“包”就是一个标准的 .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/ 目录下,这样它们就不会被安装,你以后要查阅起来也比较方便。

如何为 CDlinux 制作一个“模块”(module)?

    如果要添加的软件比较大,可以把它做成一个“模块”。“模块”就是一个标准的 cramfs 镜像,制作起来比做“包”稍麻烦一些,需要用 mkfs.cramfs 命令。“模块”具体结构请参考 extra/ 目录下已有的“xxx-cdl.md”文件。CDlinux 启动时自动到 extra/ 下查找这些“xxx-cdl.md”,并自动挂载它们。

制作模块时的的注意事项

∙“模块”的文件名必须是“xxx-cdl.md”,否则将被忽略,不会被安装; 

∙必须为模块指定一个挂载点。方法是把挂载点写到一个叫“.mount_point”的文件里,并把该文件放到 cramfs 的根目录下。“.mount_point”文件的具体格式可以参考 extra/ 下已有的“xxx-cdl.md”文件;

∙如果该软件需要执行一些初始化操作,可以把初始化程序或脚本命名为“.init”放到 cramfs 的根目录下,并将起属性设置为可执行。启动时 CDlinux 会自动找到并执行 .init; 

∙缺省情况下,CDlinux 会尽量把“模块”都加载到内存中,内存不足时才以“loop”方式加载“模块 ”。如果你想省出更多内存来运行程序,可以在内核命令行里加上 “CDL_LOOP”参数,来强迫 CDlinux 以“loop”方式加载所有模块;

∙cramfs 是一种只读文件系统,并且不记录文件的时间信息。

如何按照我自己的口味定制 CDlinux?

    如果 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 不支持运行级的概念。

配置

如何配置网络?

    CDlinux 可以自动检测很多常见的以太网卡,不过为了让它小一点,更多网卡的驱动没有编到内核里,而是做成了内核模块。启动时,CDlinux 会试图自动检测你的网卡,但如果内核已经识别了一块或者一块以上网卡,CDlinux 就会跳过网卡自动检测。

    启动以后如果你想自己动手检测网卡,可以执行:

    # nic-detect

    这是个简单的脚本文件,目前功能还不是很完善,在检测过程中甚至可能会造成死机!所以请小心使用。如果出现了什么错误,烦请通知作者,多谢!

    CDlinux 里带了 DHCPC 程序,如果你所在的网络里有 DHCP 服务器的话,会自动配置好你的 IP 地址、网关、域名服务器等。你也可以自己动手用如下命令来配置 IP、DNS 等:

        # net-config

    设置代理服务器可以用:

        # proxy-config

    修改网卡的 MAC 地址:

        # mac-fake

如何配置 RAID 设备?

    SCSI 和 RAID 设备的驱动都做成了内核模块,CDlinux 不能自动检测它们,你需要自己加载它们的驱动(内核模块)。下面这个例子假设你有一个基于 AHA1542 芯片的 SCSI 卡,上面连了两个 SCSI 盘,分别是 /dev/sda、/dev/sdb。并且通过软件 RAID 把 /dev/sda1 和 /dev/sdb1 做成了一个 RAID0 设备。可以通过如下命令来驱动它:

    # modprobe aha1542

    # modprobe raid0

    # mdadm -A /dev/md0 /dev/sda1 /dev/sdb1

    好了,现在你可以通过 /dev/md0 来访问这个 RAID0 设备了。

如何配置鼠标?

    用 mouse-config 命令。(支持绝大多数 COM/PS2/USB 鼠标)

使用

如何读/写中、日、韩文?

    用 CCE:

       cce    - 中文 (简体)

       cceb5  - 中文 (繁体)

       ccejis - 日文

       cceksc - 韩文

    在 CCE 里,可以用“Ctrl+空格”或“Ctrl+Shift”切换输入法。(如果你不需要中、日、韩文支持,可以把 extra/cce-x.x.x-cdl.tgz 文件删掉,没有问题。)

如何与其它计算机交换数据?

    CDlinux 里已经带了 ftp、ssh1 和 nfs3 客户端/服务器。缺省状态下 ftp 和 ssh 服务器已经启动。所以最简单的交换数据的方法就是用 ftp 和 scp。

    缺省状态下 nfs 服务器没有 export 任何资源,你需要先编辑、修改一下 /etc/exports,指定 export 哪些目录,和 export 的方式,然后执行:

        # /etc/rc.d/init.d/UNFSD restart

    CDlinux 里还带了 nfs 和 samba 的客户端。要挂载 nfs 资源:

        # mount -t nfs xx.xx.xx.xx:/exported/resource /some/where

    挂载 samba 资源:

# mount -t smbfs -o username=xx //machine_name/resource_name /some/where

如何改变分区大小、修改分区表?

    请使用“parted”或者“resize2fs”等。

如何修复被损坏了的分区表?

    用“gpart”。(这个版本已打过 reiserfs-3.6 补丁,可以放心使用)

如何从 ext2 文件系统中恢复被误删除的文件?

    用“e2undel”。

LILO/GRUB 被 Windows 覆盖了,如何修复?

    安装 Windows 9x 会覆盖硬盘的主引导记录,导致原来安装的 Linux 无法启动,这时你可以启动 CDlinux 来进行修复。

    首先,挂上 Linux 的根分区,比如说 /dev/hda5:

  # mount -t ext2 /dev/hda5 /mnt/local

    然后,假设你是用 LILO 来引导的:

  # lilo -r /mnt/local

    如果不成功,可以再试试:

  # chroot /mnt/local /sbin/lilo

    如果还是不行,再仔细找找原因,比如是不是上面 LILO 的路径不对等。耐心点,只要 Linux 的分区没有被破坏,一定可以恢复的。如果你是用 GRUB 来引导系统的,方法也和上面的类似。LILO/GRUB 的具体使用方法,请参考它们各自的文档。

Windows 9x 覆盖了 NT/2k/XP 的引导记录,“双启动菜单”不见了,如何修复?

    假设你的“C: 盘”是 /dev/hda1,格式是 FAT32,新装的 Windows 98 破坏了 XP 的引导记录,现在只能进 98 了。这种情况可以试试用 CDlinux 来修复:

        # ms-sys -2 /dev/hda1

    关于 ms-sys 的具体用法,请参见它的文档。

NT/2k/XP 的管理员密码丢了,怎么办?

    如果忘了 NT/2k/XP 的管理员密码,想再找回来是很难的。不过你可以用 CDlinux 再强行重设一个密码,或者干脆把密码清空。执行:

        # nukent

    然后按提示操作。(注意:对于较新版本的 Windows,如 Windows XP + SP1,修改密码功能已经不起作用,但清空密码还好使。)下载本文

显示全文
专题