哭泣之剑 2008-4-29 18:19
DVD 版 Linux 安裝光碟製作
DVD 版 Linux 安裝光碟製作[b]準備工具[/b]
[list][*]Redhat CDs (以 Redhat Enterprise Linux 3 ES 為例, 共有三片)[*]與光碟相同版本之環境 (以 RHEL 3 ES 為例, 製作時環境也需為 RHEL 3 ES)[/list][b]需要工具[/b]
[list][*]anaconda-runtime 套件組[*]anaconda 套件組[*]mkisofs[/list][b]參考來源[/b]
[list][*][url=http://www.linuxjournal.com/comment/reply/6473][color=#0000ff]http://www.linuxjournal.com/comment/reply/6473[/color][/url][*][url=http://www.php5.idv.tw/blog/y**oy/][color=#0000ff]http://www.php5.idv.tw/blog/y**oy/[/color][/url][*][url=https://www.redhat.com/archives/fedora-list/2003-August/msg00140.html][color=#0000ff]https://www.redhat.com/archives/fedora-list/2003-August/msg00140.html[/color][/url][/list]之前小弟為了測試不同的 Server 型態, 在兩三台機器重新安裝了 Redhat 好幾次, 後來發現, 裝一次 RHEL 一共要動用 4 片光碟片, 感覺不是很好, 又麻煩, 每次事情做到一半又要被中斷然後再換片, 實在有點麻煩, 後來才想到要製作 DVD 版本的 Redhat 安裝光碟, 這次小弟以 Redhat Enterprise Linux 3 ES (以下稱 RHEL) 為例, 相信其它的 Redhat 系應該都是差不多的作法。
環境的需求
要製做 RHEL DVD 光碟片, 環境上最少也要是 RHEL 的環境, 因為在製作的同時會需要使用到一些特有的模組, 不過在此小弟偷偷告訴大家, 我在製作的過程中, 是以 CentOS 4.0 來做的, 要做的修改就是把 anaconda-runtime 及 anaconda 這兩個套件裝成 RHEL 3 的, 否則在製作的過程中會發生問題, 另一個問題是 library 的問題, 如果你不想要重新安裝 RHEL 的 library 的話, 那麼就從別的地方 copy 過來就 OK 了!
複製檔案
首先要準備好那 4 片安裝光碟, 然後都一同複製到資料夾下. 我們先建立一個工作資料夾, 本例為 /burn/rhel3es
[table=75%][tr][td][root@nbcentos burn]# mkdir /burn/rhel3es[/td][/tr][/table]再複製光碟裡的每個檔案, 現在拿出第一片光碟出來, 然後執行以下指令
[table=75%][tr][td][root@nbcentos burn]# mount /dev/cdrom /mnt/cdrom; cp -rf /mnt/cdrom/* /burn/rhel3esPKTLinux联盟
[root@nbcentos burn]# cp -rf /mnt/cdrom/.diskinfo /burn/rhel3esPKTLinux联盟
[root@nbcentos burn]# umount /mnt/cdrom[/td][/tr][/table]等第一片 copy 完成之後, 再拿出第二片出來
[table=75%][tr][td][root@nbcentos burn]# mount /dev/cdrom /mnt/cdrom; cp -rf /mnt/cdrom/RedHat/RPMS/* /burn/rhel3es/RedHat/RPMS/PKTLinux联盟
[root@nbcentos burn]# umount /mnt/cdrom[/td][/tr][/table]再來的第三, 第四片請重複上面的動作.
刪除 TRANS.TBL
[table=75%][tr][td][root@nbcentos burn]# cd /burn/rhel3esPKTLinux联盟
[root@nbcentos rhel3es]# find ./-name TRANS.TBL | xargs rm -f[/td][/tr][/table]修正 .diskinfo* 檔
[table=75%][tr][td][root@nbcentos burn]# vi /burn/rhel3es/.diskinfoPKTLinux联盟
_________________PKTLinux联盟
1065565780.808209PKTLinux联盟
Red Hat Enterprise Linux 3PKTLinux联盟
i386PKTLinux联盟
1,2,3,4 [i]<- 本來為 1, 修改為 1,2,3,4 (如果你原本只有三片就輸入 1,2,3)[/i]PKTLinux联盟
RedHat/basePKTLinux联盟
RedHat/RPMSPKTLinux联盟
RedHat/pixmapsPKTLinux联盟
_________________PKTLinux联盟
[root@nbcentos burn]# [/td][/tr][/table]修正 hdlist* 檔
[table=75%][tr][td][root@nbcentos burn]# /usr/lib/anaconda-runtime/genhdlist /burn/rhel3es/[/td][/tr][/table]複製開機資訊
複製開機資訊的目的是我們需要這片 DVD 能夠直接安裝, 所以需要使用到 isolinux 目錄下的 .bin 和 .cat 檔, 記得一定要另外 copy 出來, 不然會出錯.
[table=75%][tr][td][root@nbcentos burn]# cd /burnPKTLinux联盟
[root@nbcentos burn]# cp -rf /burn/rhel3es/isolinux ./[/td][/tr][/table]建立 ISO 檔
[table=80%][tr][td][root@nbcentos burn]# cd /burnPKTLinux联盟
[root@nbcentos burn]# mkisofs -A "RHEL3es_i386_DVD" -V "REHL3es_i386_DVD" \PKTLinux联盟
> -J -R -v -T \PKTLinux联盟
> -o rhel3es.iso -b isolinux/isolinux.bin -c isolinux/boot.cat \PKTLinux联盟
> -no-emul-boot -boot-load-size 4 -boot-info-table \PKTLinux联盟
> rhel3ePKTLinux联盟
PKTLinux联盟
... 略 ...PKTLinux联盟
55.23% done, estimate finish Sat Apr 9 23:29:37 2005PKTLinux联盟
55.48% done, estimate finish Sat Apr 9 23:29:40 2005PKTLinux联盟
55.74% done, estimate finish Sat Apr 9 23:29:40 2005PKTLinux联盟
56.00% done, estimate finish Sat Apr 9 23:29:38 2005PKTLinux联盟
... 略 ...PKTLinux联盟
PKTLinux联盟
Total translation table size: 535686PKTLinux联盟
Total rockridge attributes bytes: 964580PKTLinux联盟
Total directory bytes: 2544532PKTLinux联盟
Path table size(bytes): 12646PKTLinux联盟
Done with: The File(s) Block(s) 1926144PKTLinux联盟
Writing: Ending pad block Start Block 1928448PKTLinux联盟
Done with: Ending pad block Block(s) 16PKTLinux联盟
Max brk space used 760000PKTLinux联盟
1928464 extents written (3766 Mb)PKTLinux联盟
PKTLinux联盟
[root@nbcentos burn]#[/td][/tr][/table]建立 md5sum
[table=75%][tr][td][root@nbcentos burn]# /usr/lib/anaconda-runtime/implantisomd5 -f /burn/rhel3es.isoPKTLinux联盟
Inserting md5sum into iso image...PKTLinux联盟
md5 = 95e91cdd85cce5b2496a4ec81e165faaPKTLinux联盟
Setting supported flag to 0PKTLinux联盟
[root@nbcentos burn]#[/td][/tr][/table]以上, 最後在 /burn/ 下會有一個 rhel3es.iso 的映像檔了.
*.diskinfo 修改這個檔, 其實也不知道為什麼要改裡頭的數字, 應該是要讓安裝程式知道所有的 rpm 都在同一張光碟吧, 這是從 [url=https://www.redhat.com/archives/fedora-list/2003-August/msg00140.html][color=#0000ff]https://www.redhat.com/archives/fedora-list/2003-August/msg00140.html[/color][/url] 參考來的.
*hdlist 是用來記錄 rpm 的標頭檔, 也記錄勒那個 rpm 在那一片光碟可以被取得, 所以要重新修改一下 hdlist 這個檔案, 參考來源是