烧制一个RedHat的CD之mini-HOWTO Morten Kjeldgaard, mok@imsb.au.dk 和 Peter von der Ahe, pahe+rhcd@daimi.au.dk, 李冬(翻译)lidong@wh.027.net v1.29, 1999年9月22日 _________________________________________________________________ 本文介绍了如何根据Red Hat Linux的发行版本制作等同于Red Hat所发行的商业 版本的CD。在这里将要介绍发行版本的结构,以及包括更新RPM包在内的流程。前 提是拥有一个好的网络连接,以及一个CD刻录机。 _________________________________________________________________ 1. 概述 2. Anatomy of the Red Hat FTP site * 2.1 顶级目录 * 2.2 "RedHat" 目录 -- 发行版本的核心 * 2.3 "更新"目录 3. RPM包 4. 获取你的发行版本的本地拷贝 5. 混合更新 * 5.1 更改文件保护模式 * 5.2 更换更新的RPM包 * 5.3 创建一个新的hdlist文件 * 5.4 comps 文件 6. 最后: 烧制CD * 6.1 制作可自行启动的CD 7. 从CD中安装 8. 关于本文档 * 8.1 相关文档 * 8.2 感谢 9. 声明 _________________________________________________________________ 1. 概述 有一些原因可能会促使你制作自己的CD。可能你还不够富有,想节省 [1]Red Hat发行版本之50美元的费用。或者,你想制作一个包括了所有最新的更新的版本 的CD发行。这是一个重要的原因,因为每次在Red Hat有了一个重要的发行版本之 后,总有一些更新,而其中有一些和安全是有关的,有关情况请查询 [2]errata page. 2. Anatomy of the Red Hat FTP site 以Linux社区的精神,Red Hat Software将其应用于不同平台上的Linux发行版本 放在其FTP站点上提供下载,这都可以从顶级发行目录中获得。 2.1 顶级目录 RedHat Linux 6.0的顶级目录( [3]pub/redhat/redhat-6.0) 包括了不同平台的 发行版本,而其中一个目录包括了自从发行之后的更新以及程序包的更正。 SRPMS/ alpha/ i386/ sparc/ 在这个文件中,我们以i386版本为例。在本文中所给出的程序几乎可以在所 有Red Hat支持的平台上工作, (Alpha, SPARC, ppc等),但是我们仅在i386平台 上进行了测试。(作者愿意听取一些额外的意见),i386目录的根目录如下: -rw-r--r-- 1 root root 18391 Mar 19 1999 COPYING -rw-r--r-- 1 root root 3187 Apr 19 19:56 README -rw-r--r-- 1 root root 2751 Sep 19 1997 RPM-PGP-KEY drwxr-xr-x 5 root root 1024 Sep 12 08:03 RedHat/ -rwxr--r-- 1 root root 2048 Apr 20 14:33 boot.cat drwxr-xr-x 7 root root 1024 Sep 17 08:04 doc/ drwxr-xr-x 6 root root 1024 Aug 3 16:17 dosutils/ drwxr-xr-x 2 root root 1024 Aug 3 16:02 images/ -rw-r--r-- 1 root root 222789 Sep 17 08:04 ls-lR -rw-r--r-- 1 root root 32371 Sep 17 08:04 ls-lR.gz drwxr-xr-x 4 root root 1024 Sep 17 08:04 misc/ doc 目录包括了丰富的文档信息。更重要的事是,RedHat安装指南的HTML版本可 以在 [4]doc/rhmanual/manual/找到。另外,还有一些FAQ以及整个HOWTO 和mini-HOWTO的全集。 images 目录包括了必须要拷贝到软盘中启动软盘的映像文件。在大多数最新的发 行版本中(6.0),有两个磁盘映像。启动映像被称之为boot.img,这是在 从CD-ROM中直接安装时所必需的。如果从一个本地硬盘安装,NFS装载磁盘或 者FTP是必须的,这个时候就需要补充磁盘映像supp.img 。请看 [5]从CD安装 参 照详细信息。 misc 目录包括了源代码,以及一些为安装所需要的可执行文件。 2.2 "RedHat" 目录 -- 发行版本的核心 目录树种最为重要的部分就是RedHat目录。 drwxr-xr-x 2 root root 23552 Aug 3 16:02 RPMS/ drwxr-xr-x 2 root root 1024 Aug 3 16:02 base/ -rw-r--r-- 1 root root 0 Jan 19 1999 i386 drwxr-xr-x 5 root root 1024 Sep 11 08:03 instimage/ RPMS 目录包括了Red Hat发行版本的主要部分,其中包括了一个RPM(Redhat Package Manager)文件的集合。一个RPM包典型地包括了可执行文件以及相关的 配置文件和文档。请看 [6]RPM包 参照详细信息。 base 目录包括了不同的在安装过程中所需要的文件。例如, comps 文件,定义 了在"Choose packages to install" 阶段中定义的的components (包组).请看 [7]组件文件得到更多的信息以及使用信息。另外一个在base 目录的重要的文件 是hdlist 文件,其中包括了全部在 RPMS 目录的的头部区域。 这意味著所有在RPM包的相互关联性可以通过阅读 hdlist 文件获得,而并不必要 阅读所有的的RPM包,这对FTP方式的安装来说是非常便利的。 hdlist 的另外一个用途就是映像包名到文件名,例如 以perl 代替 perl-5.004-6.i386.rpm。这意味著如果你想从RedHat进行混合式更新的话(请看 [8]混合更新)或者假如你自己的报到RPMS目录的话 ,你需要更新hdlist,这在稍 候的 [9]产生hdlist文件部分中将要介绍。 instimage 目录包含了一个基本的文件系统,其中包括了安装过程中所需要的一 些程序和共享库。 2.3 "更新"目录 /pub/redhat/updates 目录包括了自从版本3.0.3之后所有的RedHat发行办的更新 。这是用来找到因为各种原因被更新的软件包的所在。你应当特别注意安全方面 的更新。无论何时有了一个补丁,在RedHat's errata页中总可以找到。 在updates 目录中最重要的文件有: drwxrwxr-x 8 ftpuser ftpusers 8192 Aug 18 08:05 5.1/ drwxrwxr-x 9 ftpuser ftpusers 8192 Sep 18 08:07 5.2/ drwxrwxr-x 9 ftpuser ftpusers 8192 Sep 18 08:07 6.0/ lrwxrwxrwx 1 ftpuser ftpusers 3 Aug 25 13:14 current -> 6.0/ 每一个目录的结构都类似于在 [10]顶级目录所描述的一样。 3. RPM包 Red Hat发行版本的主要部分包括了一套RPM (Redhat Package Manager)包。一个 典型的包括二进制可执行文件以及相关的配置文件和文档。 [11]rpm程序是一个 强大的包管理器,它可被用作安装、查询、校验、更新、删除以及建立以RPM格式 的软件包。Rpm 方便地维护了一个所有被安装的软件包的数据库,因此被安装的 软件的信息可以随时被获取。 发行版本中的二进制RPM文件在系统运行其发行版本本身的时候被建立。这一点很 重要,因为大多数的包内的程序依赖于共享库。从RedHat version 5.0开始 ,GNU标准的C库版本2(纯64位)就开始被使用了。这个版本的库通常被称 为tt/glibc/ 或者在Linux中:tt/libc 6/。所有的在发行版本中的可执行文件与 这个库相链接。如果你试图从一个不同的发行版本中安装二进制文件,他们很可 能不能工作,除非你为了向后兼容性安装了libc5包。 RPM包的名字包括了后缀.arch.rpm,其中arch 是一种结构,对于Intel平台的二 进制文件来说包含有i386 的值。你安装的包必须符合机器中共享库的版本。 [12]rpm 在确认情况确实如此的时候通常工走得很好。然而,通过使用Redhat安 装启动磁盘,可以确认正确的RPM包之集合被安装在机器上。 如果你发现一个RPM包没有在安装工程中被安装的你的系统中,不要绝望!在任何 时候(作为根用户),你都可以安装RPM包,例如: rpm --install WindowMaker-0.18-1b.i386.rpm 你甚至可以直接从Internet直接安装,只要你知道一个RPM包的URL: rpm --install ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm RPM包的另外一个版本包括了建立二机制文件的源代码。这些包有后缀如: .src.rpm ,并且存放在tt/SRPMS/ 的目录中。这些包在安装CD中部是必要的。而 且事实上,在一个74分钟的CD中叶没有足够的空间来存放这些文件。当然,你可 以制作一个单独的包含SRPM的CD。 4. 获取你的发行版本的本地拷贝 你需要可以通过配有一个CD刻录机的计算机可以读写的的一份存放在可写的磁盘 中发行版本的拷贝。如果你想混合最新的更新版本,那么这个目录还需要可以被 一个Linux机器上获取,这可以是一个本地磁盘,另外的机器上一个NFS装载的磁 盘,或者是JAZ盘。 你可以从一个Redhat CD拷贝发行版本,或者从ftp获取。如果你选择使用ftp的话 ,那么获取正确的发行版本的拷贝的最好办法是使用mirror 包 Mirror是一个复杂的用于比较远端站点上和本地目录中的内容。它使用ftp用于获 取远端而非本地站点的文件,并且删除那些不在原段站点上的存在于本地站点的 文件。mirror包可以以一个RPM包从 [13]rufus.w3.org。获取,或者从其他的一 些站点获取。 制作你的mirror配置文件的本地拷贝 mirror.redhat,同时在文件的顶部编辑相 关的一些内容。在default部分之后,定义了这些包: package=updates site=ftp.sunsite.auc.dk exclude_patt=(alpha/|sparc/|SRPMS/) remote_dir=/disk1/ftp.redhat.com/pub/redhat/updates/6.0 local_dir=/jaz/updates/6.0 package=dist site=ftp.sunsite.auc.dk exclude_patt=(alpha/|sparc/|SRPMS/) remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-6.0 local_dir=/jaz/redhat-6.0 以下的命令将要下载整个RedHat目录树到你的本地磁盘之中。*请慎思!* ,在你 做这个工作之前,你要大概下传大约500MB的数据。 mirror -pdist mirror.redhat 这将镜像Red Hat FTP到你的本地磁盘之中。一个Red Hat发行版本的内容不会在 发行之中改变。因此你只需要现在这个包: 只有一次!。所有对发行版本的改变 都在 updates目录中。这样,如果你想要保持一个随时更新的Red Hat发行版本的 更新版,你只需要保持 updates 目录位最新的就可以了。这个工作使用命令: mirror -pupdates mirror.redhat 你可以定期地来做这个工作,比如说,每星期一次,通过一个cron脚本。这 个RedHat发行版本在全世界的大多数的FTP服务器上都是可以可以做到的,他们每 天从主站点: [14]ftp://ftp.redhat.com/pub进行更新。你应当选择一个靠近你 的FTP站点。请参考 [15]RedHat FAQ。 5. 混合更新 为了混合更新,你需要由一个从一台Linux机器上拥有对发行目录的写权限, 以 及安装一个 [16]rpm 。这里需要进行三步工作。 1. 更改文件保护模式 2. 更换更新的RPM包 3. 产生hdlist文件 If you maintain a mirror of the updates directory, you can at any time produce a CD including the current updates by repeating these steps. 如果你在 updates 目录维护一个镜象的话,那么你可以在任何时候通过重复这些 步骤制作CD。 5.1 更改文件保护模式 在安装过程中,有些文件直接从从CD运行。但是不幸的是,FTP程序并不是总是保 留被复制的文件和目录的保护模式。这样,就有必要确定程序是否有程序 、SHELL脚本和共享库执行权限,这需要在目录被烧制到CD之前完成。通过运行在 发行版的本地拷贝的 updatePerm 脚本可以做到这一点: _________________________________________________________________ #!/bin/bash RHVERSION=6.0 LIST=/tmp/er3hd3w25 CDDIR=/jaz/redhat-${RHVERSION} # Find all directories, and make sure they have +x permission find $CDDIR -type d -exec chmod -c 755 {} \; # Find all files that are executables, shell or perl scripts find $CDDIR -type f | file -f - | grep -v RPM \ | egrep -i 'executable|perl|bourne|shell' | cut -f1 -d: > $LIST # Find shared libraries find $CDDIR -name \*.so >> $LIST # Make them executable while read file do if [ ! -x $file ] ; then chmod -c 755 $file fi done < $LIST /bin/rm $LIST exit 0 _________________________________________________________________ 5.2 更换更新的RPM包 下面的这个脚本叫做 updateCD ,其功能为从更新目录中复制所有的文件到 RPMS 目录。这个脚本用了一些巧妙的RPM技巧来确定在UPDATES目录下的哪个包更 新。就的包被移到 ${OLD} 目录中。 _________________________________________________________________ #! /bin/bash # This script updates rpms in a RedHat distribution found in $RPMDIR. # The old rpms will be placed in $OLDDIR. # The new rpms should be located in $UPDDIR. # The new images are in $IMGDIR # The images to be updated are in $OMGDIR # The architechture is $ARCH. RHVERSION=6.0 ARCH=i386 CDDIR=/jaz/redhat-${RHVERSION} RPMDIR=${CDDIR}/${ARCH}/RedHat/RPMS UPDDIR=${CDDIR}/updates/${ARCH} IMGDIR=${CDDIR}/updates/images/${ARCH} OMGDIR=${CDDIR}/${ARCH}/images OLDDIR=${CDDIR}/old if [ ! -d $OLDDIR ] ; then echo making directory $OLDDIR mkdir $OLDDIR fi allow_null_glob_expansion=1 for rpm in ${UPDDIR}/*.rpm ; do NAME=`rpm --queryformat "%{NAME}" -qp $rpm` unset OLDNAME for oldrpm in ${RPMDIR}/${NAME}*.rpm ; do if [ `rpm --queryformat "%{NAME}" -qp $oldrpm` = "$NAME" ]; then OLDNAME=$oldrpm; break fi done if [ -z "$OLDNAME" ]; then echo $NAME is new cp -pv $rpm $RPMDIR else if [ `basename $rpm` != `basename $OLDNAME` ]; then mv $OLDNAME $OLDDIR cp -pv $rpm $RPMDIR fi fi done # Copy new boot image files to the right place... for newfile in ${IMGDIR}/* ; do file=${OMGDIR}/$(basename ${newfile}) if [ $newfile -nt $file ] ; then cp -pv $newfile $file fi done exit 0 _________________________________________________________________ RedHat 6.0的重要注意事项: 一些RPM包,特别是kernel和kernel-smp包,需要文件名但不是在包名中包括文件 的平台名称,例如,“kernel”包需要如下所示: kernel-2.2.5-22.i386.rpm kernel-2.2.5-22.i586.rpm kernel-2.2.5-22.i686.rpm 但是对于所有这三个执行rpm -qp 返回的都是"kernel"作为包名。 如你所看到,这种情况“迷惑”了 updateCD 脚本,其结果是只有最后一个得到 正确的拷贝。先前的两个虽然被拷贝了,但是被移到了 $OLD 目录中。另外 ,RedHat还应当给予其不同的名称。现在最好的解决办法就是在运行了updateCD 之后手工地移动这些包。(感谢Kyle B. Ferrio kyle@U.Arizona.EDU) Joshua Sarro 提供了一个PERL脚本叫做updateMirror.pl可 以用来处理这种情况。你可以从 [17]http://imsb.au.dk/~mok/linux/doc/updateMirror.pl获得这个脚本。 5.3 创建一个新的hdlist文件 当从CD安装的时候,CD中的安装程序需要依靠文件RedHat/base/hdlist 来描述哪 个包可以在CD中获得。hdlist 文件可以通过程序misc/src/install/genhdlist所 创建。这个程序必须有以发行本的根目录到其的绝对路径作为唯一参数运行。以 下是updateHdlist ,用于调用这个程序。 _________________________________________________________________ #!/bin/bash RHVERSION=6.0 ARCH=i386 echo generating hdlist... CDDIR=/jaz/redhat-${RHVERSION} GENHDDIR=${CDDIR}/${ARCH}/misc/src/install chmod u+x ${GENHDDIR}/genhdlist chmod 644 ${CDDIR}/${ARCH}/RedHat/base/hdlist ${GENHDDIR}/genhdlist ${CDDIR}/${ARCH} || echo "*** GENHDLIST FAILED ***" exit 0 _________________________________________________________________ 注意:当在RedHat/RPMS混合了更新之后,你的发行版的拷贝不再是一个RED HAT 发行版站点的镜象。事实上,它更新!这样,如果你试图镜象这个发行版,已经 被更新的旧版本的RPM将被再一次下载,而更新的版本将被删除。 RedHat 5.2的重要注意事项 如果用RedHat version 5.2 或者更早的版本发行,如果在 RedHat/RPMS 包含了 非 RPM文件的话, genhdlist将会崩溃!这会导致一些问题。因为在5.2的版本中 ,在 RedHat/RPMS 中有一些非RPM文件叫做ls-lR以及ls-lR.gz ,这样,你必须 从这个目录中移除所有的非RPM文件。或者,你可以使用下列的一个补丁于 misc/src/install/genhdlist.c ,然后从新编译。这个补丁可以似得genhdlist 忽略任何非RPM的文件。 _________________________________________________________________ *** genhdlist.c.orig Fri Nov 27 12:08:13 1998 --- genhdlist.c Fri Nov 27 12:08:20 1998 *************** *** 12,23 **** --- 12,26 ---- #define FILENAME_TAG 1000000 + /* Not used apparently... + int tags[] = { RPMTAG_NAME, RPMTAG_VERSION, RPMTAG_RELEASE, RPMTAG_SERIAL, RPMTAG_FILENAMES, RPMTAG_FILESIZES, RPMTAG_GROUP, RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, RPMTAG_DESCRIPTION, RPMTAG_SUMMARY, RPMTAG_PROVIDES, RPMTAG_SIZE, RPMTAG_OBSOLETES }; int numTags = sizeof(tags) / sizeof(int); + */ int main(int argc, char ** argv) { char buf[300]; *************** *** 26,34 **** --- 29,39 ---- struct dirent * ent; int fd, rc, isSource; Header h; + /* not used int count, type; int i; void * ptr; + */ if (argc != 2) { fprintf(stderr, "usage: genhdlist \n"); *************** *** 74,79 **** --- 79,85 ---- rc = rpmReadPackageHeader(fd, &h, &isSource, NULL, NULL); + if (!rc) { headerRemoveEntry(h, RPMTAG_POSTIN); headerRemoveEntry(h, RPMTAG_POSTUN); headerRemoveEntry(h, RPMTAG_PREIN); *************** *** 110,115 **** --- 116,122 ---- headerWrite(outfd, h, HEADER_MAGIC_YES); headerFree(h); close(fd); + } } errno = 0; _________________________________________________________________ 5.4 comps 文件 comps 文件定义了包如何在安装的时候捆绑在一起,在RED HAT发行版中,根据他 们提供的功能,例如: * Printer Support * X Window System * GNOME * KDE * Mail/WWW/News Tools * ... * Kernel Development * Extra Documentation 有时候在安装的过程中,用户被提示"Components to install",有的包被预先选 择,而有的包则没有,在组件列表中的最后一个项目叫做“everything”。根 据RED HAT的稳当,选择所有的的包大概需要接近1G的自由磁盘空间。 在对话框中,还有一个选项允许用户确切地选择需要安装的包。手工定制安装或 者在组件列表中选择“everyting”是你除了修改RedHat/base/comps file之外唯 一可以使你的包被安装的办法。 comps 文件的格式现在用一个头描述组件的格式,然后是一个空行。 0.1 在这个之后,组件被列出,用空行分离。 . . EOF 每个组件有如下的定义: (0|1) (--hide)? ... end 在每个组件的名称,给出0或者1。1表示这个组件被默认的选取,而0则相反。选 项"--hide" 表示你看不到该条目,除非你选择“专家(expert)”安装。第一个组 件被称为“BASE”,这是一个特别的组件。因此它必须 而且不在对话框里出现。 (这意味著你不能去初这个基本的安装)。 然后跟著的是属于该组件的RPM包的列表,注意在RPM文件中 存放的是包名,而不 是包的文件名的任何一个部分(尽管经常是一样的) 通过将你的包加入到 comps文件中,你可以定制你自己的发行版本,同时确认你 的包被默认地安装。有一件需要注意的事情是你的包的相互依赖性。但是在这里 ,你的就是你的!:-)。有一个警告:当心不要添加或者移除文件中的空格。检查 已存在的comps 文件。(制作原文件的一个拷贝),然后看它是如何被做成的。 (或者检查i386/misc/src/install/pkgs.c 查看文件是如何被分解的细节) 6. 最后: 烧制CD 我们假设在你的系统中有一个可以工作的CD刻录机并且你知道如何使用它。我们 在这里讲述一些关于烧制CD的细节。如果你在一个LINUX系统中烧制你的CD,你可 以安装优秀的 [18]XCDroast包。在 XCDRoast,打开 Rock Ridge扩展,以 及TRANS.TBL 文件的制作。 确认CD的top 目录包括至少如下的目录和文件 COPYING RPM-PGP-KEY README RedHat/ 以下的目录可以根据情况而添加 doc/ gnome/ misc/ dosutils/ images/ 6.1 制作可自行启动的CD (这一部分需要感谢Dawn Endico dawn@math.wayne.edu). 既然XCDroast不支持制 作可自行启动的磁盘,你需要一些其他的工具。例如 [19]mkisofs和 [20]cdrecord,你可以从 [21]ftp://contrib.redhat.com获得这些软件的RPM包 的最新版本。 你需要制作被刻写在CD上的一个映像文件。这个文件大约有500M或者更多。因此 请确认你有足够多的自由空间并且,如果必要的话,在以下的命令中切换 到redhat.img 目录中。你可能需要作为一个根拥护使用mount 或者cdrecord。 制作磁盘映像 切换目录至你的镜象,也是你的CD的根目录。例如redhat-6.0/i386 mkisofs -v -R -T -J -V "Red Hat 6.0" -b images/boot.img -c boot.cat -o /tmp/red hat.img . 一些版本的mkisofs 没有-J 选项。这个选项可以被忽略,因为它所定义 的Joliet扩展为了在CD在WINDOWS中的可读性更强而不被安装程序使用。 测试映像 will be wrong. 如果你还不够放心,你可以通过装载的方式检查你的新的磁盘影象。如果你忘记 更改文件的许可,或者设置rock ridge扩展,那么将会产生明显的错误。因为这 样的文件和目录结构将是错误的。 mount -t iso9660 -o ro,loop=/dev/loop0 /tmp/redhat.img /mnt/cdrom 当你完成了这个工作之后,不要忘了卸载之。 umount /mnt/cdrom 烧制磁盘 确认你正确地设置了你的设备的速度,这个命令是为了4X的CDR,而你可能拥有的 是1X或者2X的驱动器。 cdrecord -v speed=4 dev=0,0 /tmp/redhat.img 7. 从CD中安装 当从一个新的CD中安装的时候,你首先需要制作一个可启动的磁盘。注意:使用 新的,MS-DOS格式的磁盘!使用一个旧、有问题的磁盘可能在安装过程中导致问 题。 在一个LINUX系统中,你可以通过dd 命令来制作磁盘。 dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k 在一个运行DOS或者WINDOWS-9X的系统中,你需要使用RAWRITE.EXE程序,该程序 可以在 dosutils 目录中找到。 关闭你想进行安装的或者系统升级的计算机,插入你的启动磁盘或者新制的烧制 的CD,然后让机器从磁盘启动。关于安装过程的详细信息请看有关的文档, Installation-HOWTO 或者Bootdisk-HOWTO ,这些都可以在 doc/HOWTO 目录中找 到。 8. 关于本文档 这个稳当的最新版本的 SGML 可以在 of [22]http://imsb.au.dk/~mok/linux/doc/RedHat-CD.sgml ( [23]HTML version)获得。 你可以通过如下的一些代码似的你的主页联接到REDHAT-CD mini HOWTO RedHat CD mini-howto
8.1 相关文档 Ed Schlunder 写了一个fix-rhcd 的使用工具可以使你检查你自 己的Red Hat Linux发行版的镜象,例如文件大小、名称、许可以及从Red Hat官 方ftp站点的符号连接 "ls -lNR"。所有错误的许可都会被更改以符合ls 列表, 详见 [24]fix-rhcd homepage。 Rod Smith 写了一个<<自己做RED HAT安装指南>> ,其中就包括了如何制作RedHat安装CD的有关知识。其中特别描述了如何从 非UNIX系统中烧制CD,你可以在 [25]http://members.bellatlantic.net/~smithrod/rhjol.html找到该文。 由 所写的法文版的 ``Comment graver un CD de la RedHat 5.x a partir de fichiers telecharges sur Internet...'' 可以在 [26]http://linuxfr.org/docs/article/gravure-CD-RH51.html找到。 芬兰的 Jussi Torhonen 所说的 [27]Howto make a homebrew 是关于可启动的 RedHat Linux 5.2 CD-ROM. 8.2 感谢 除了上述的人员之外,我们要感谢下列的人员: * Lars Christensen * Thomas Duffy * Dawn Endico * Seva * Michael Thomas Cope * Charles J. Fisher 9. 声明 While the given information in this document is believed to be correct, the authors assume no responsibility whatsoever for any damage to hardware and/or software, or any loss of data resulting from the procedures outlined in this document. 本文中所给的信息被确认为正确的。作者对因此而造成的硬件及(或)软件的损 害不负任何责任,也不对因在本文中所述之流程引起的数据丢失负责! References 1. http://www.redhat.com/ 2. http://www.redhat.com/corp/support/errata 3. ftp://ftp.redhat.com/pub/redhat/redhat-6.0/ 4. http://www.redhat.com/corp/support/manuals/RHL-6.0-Manual/install-guide/manual 5. file://localhost/tmp/zh-sgmltools.9784/RedHat-CD-HOWTO.txt.html#sec-install 6. file://localhost/tmp/zh-sgmltools.9784/RedHat-CD-HOWTO.txt.html#sec-rpm 7. file://localhost/tmp/zh-sgmltools.9784/RedHat-CD-HOWTO.txt.html#sec-comps 8. file://localhost/tmp/zh-sgmltools.9784/RedHat-CD-HOWTO.txt.html#sec-updates 9. file://localhost/tmp/zh-sgmltools.9784/RedHat-CD-HOWTO.txt.html#sec-new-hdlist 10. file://localhost/tmp/zh-sgmltools.9784/RedHat-CD-HOWTO.txt.html#sec-top-level 11. http://www.rpm.org/ 12. http://www.rpm.org/ 13. http://rufus.w3.org/linux/RPM/mirror.html 14. ftp://ftp.redhat.com/pub 15. http://www.redhat.com/support/docs/rhl/RedHat-FAQ/RedHat-FAQ-12.html#ss12.1 16. http://www.rpm.org/ 17. http://imsb.au.dk/~mok/linux/doc/updateMirror.pl 18. http://www.fh-muenchen.de/rz/xcdroast 19. ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ 20. http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html 21. ftp://contrib.redhat.com/ 22. http://imsb.au.dk/~mok/linux/doc/RedHat-CD.sgml 23. http://imsb.au.dk/~mok/linux/doc/RedHat-CD.html 24. http://www.ajusd.org/~edward/fix-rhcd/ 25. http://members.bellatlantic.net/~smithrod/rhjol.html 26. http://linuxfr.org/docs/article/gravure-CD-RH51.html 27. http://www.iwn.fi/~jt/cd/