燒制一個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/