免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1719 | 回复: 0
打印 上一主题 下一主题

CDlinux HOWTOs 文档 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-10 14:42 |只看该作者 |倒序浏览
CDlinux HOWTOs 文档  CDlinux 0.4.9
目录

安装

如何“安装 ”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 + SP2,修改密码功能已经不起作用,但清空密码还好使。)
    CDlinux 里带了很多实用工具,关于它们的用法的简短说明,可以参考 /var/log/packages。另外,许多软件的 man 手册和文档被放在了对应的“xxx-cdl.tgz”文件的 zxh/ 目录下,没有安装,你可以挂上 CDlinux 光盘,查阅这些文件。关于某个软件的具体用法,已经超出了这个 mini-HOWTO 的范围,请参考它们各自的文档。RTFM 可是一种很好的学习方法 :)

实战例子:
1, U盘半解决方法: copy \extra\*.* 到 Fat32的某盘
    进入CDLINUX后:
1)    cd /  必须要到根目录, 不然下面的安装不成功
2)    mount /dev/hda1 /path  把extra mount到相应位置, /dev/hda1 不是固定的.
3)       md-install /path/extra 安装*.md
4)       pkg-install /path/extra 安装*.tgz
2, VMware 虚拟主机, 建立时必须是linux或带网卡的虚拟选项, U盘要在虚拟机上使用, 按照以下步骤:
   1) Edit virtual machine settingsàaddàhard diskàuse a physical disk(for advanced users)àdevice 选择 PhysicalDrive1(U盘物理名称)
   2) 启动虚拟机后, 按F2进入BIOS 设置 SCSI的U盘的模拟硬盘启动.
3, 重认网卡: nic-detect 或 /etc/rc.d/rc.nic
   如有DHCP服务器 /etc/rc.d/init.d/DHCPCD start
   手工设置网卡: net-config
   Dns设置:  vi /etc/resolv.conf 增加 nameserver 61.144.56.101
4, 断点续存, 用ftp: lftpget –c
ftp://ip/paht/filenanme
5, Ftp服务器, 上传路径在/var/ftp, 可在/etc/passwd 上更改到其它路径, 注意要 读写的权限. 測試修改路徑後不是很成功.
6, SMB共享文件: mount –t smbfs –o userman=** //ip/remote’s_path /linus’s_paht
=========================
Usb 使用vmware方法
1, vmware àedit virtual machine settingsàadd hard disk(SCSI)指向usb盘
\\.\PhysicalDrive1
à
2, 进入vmware 的BIOS, 设置启动的为usb的SCSI盘
3, 进入MS-dos 基本模式
4, 1)进入 C盘, 进入 CDlinux, 运行 linux.bat
  2)cd / à mount /dev/hda1 /mnt/cdrom
  3)pkg-install /mnt/cdrom/extra
  4)md-install /mnt/cdrom/extra
  5)/etc/rc.d/rc.nic or net-config(手动配置网卡舆ip)
  6)/etc/rc.d/init.d/DHCPCD start
  7)vi /etc/resolv.conf   加入 nameserver 61.144.56.101
5, 测试



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13788/showart_73178.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP