2012年11月28日 星期三

安裝 Fedora 方法(三):可選版本 USB 安裝隨身碟

USB 隨身碟的讀寫速度較 DVD-ROM 或網路都要快上許多,而且安裝任務完成後,又可以再格式化做別的用途。因此用 USB 隨身碟來安裝 Fedora 是一個方便又聰明的選擇。
    但是,若常常要在不同的電腦安裝 Fedora 時,而電腦的 CPU 又不相同時(例:有 64-bit 和 32-bit),用前文 “安裝 Fedora 方法(二):以 USB 隨身碟開機”,可能就要準備兩個 USB 隨身碟了。萬一,又要安裝不同的 Fedora 版本(例:有些安裝 Fedora 14,有些要安裝 Fedora 17),那就不知道要準備幾個 USB 隨身碟了。現在的 USB 隨身碟的容量愈來愈大,是否可以將不同版本的 Fedora 都裝在同一個 USB 隨身碟中,當從 USB 隨身碟開機後,再從選單選擇想安裝的版本。
    筆者遍查資料,再經過一翻嘗試,終於找到方法:可以在一個 USB 隨身碟裏,放入數個版本的 Fedora,當從 USB 隨身碟開機後,再由選單選擇欲安裝的版本。
為方便讀者不用回前文查詢,與前文重覆的步驟仍然保留。

一、下載開機檔案

下載的檔名再列表如下:
CPU光碟機網路
需求
網路
頻寬
選用 / 燒錄之 ISO 檔
32-bitDVD-ROM--Fedora-??-i386-DVD.iso
32-bitCD-ROM必需Fedora-??-i386-netinst.iso
64-bitDVD-ROM--Fedora-??-x86_64-DVD.iso
64-bitCD-ROM必需Fedora-??-x86_64-netinst.iso
上表中的『??』為 Fedora 的版本編號。請依需要下載適當版本,下列步驟以 Fedora 14 和 Fedora 17 為例。

:Fedora 14 以前的版本,設定方法應該都相似;而 Fedora 15 以後的版本則應和 Fedora 17 相似。

二、製作可開機的 USB 隨身碟

開啟「磁碟公用程式」
  • Fedora 14:從「應用程式」→「系統工具」→「磁碟公用程式」
  • Fedora 17:從「應用程式」→「附屬應用程式」→「磁碟」
開啟「磁碟公用程式」。將 USB 隨身碟格式化成類型為 FAT 的檔案系統,名稱則可自定,最好是用英文(例:FedoraU),安裝時才不會出錯。記住這個名稱,待會要用
    接著,先切換成 root 身份,再用 unetbootin 將『網路安裝 CD』的映像檔複製到 USB 隨身碟
其中的 Fedora-17-i386-netinst.iso 是步驟一中,所下載的光碟映像檔。按【確定】後等待一段時間,讓 unetbootin 建立必要的檔案、目錄。當出現【現在重新開機】及【退出】兩個按鈕時,就是製做完成。
因為要製作『多版本 USB 安裝隨身碟』,按【退出】鈕後,接著進行下一步驟。

注意:Fedora 的預設安裝中,並未包含 unetbootin,可以用『yum install unetbootin』這個命令加裝此套件。

三、搬移啟動及安裝檔

用『檔案管理』程式查看 USB 隨身碟的內容,
可以看見在上一個步驟中,unetbootin 放入了兩種檔案:
  • 根目錄:一些 USB 隨身碟開機的檔案,與 Linux 安裝的版本無關。
  • 子目錄:『網路安裝 CD』的 Linux 啟動檔案,這些檔案是從 netinst.iso 取出,且關係到將來安裝的 Fedora 版本。
因為要在這個 USB 隨身碟中,同時放入數個不同 Fedora 版本的安裝檔案,就應將這些檔案分置在不同目錄。
    在 USB 隨身碟的根目錄下,建立一個名為『Fxx_xxxx』的『版本目錄』,再將前一步驟中新增加的『根目錄』中的三個檔案及所有『子目錄』,以 Fedora 17 i386 為例,其『版本目錄』為『F17_i386』:
  • 根目錄:syslinux.cfg、ubnfilel.txt 和 ubnpathl.txt 三個檔案。
  • 子目錄:images、isolinux 和 LiveOS 三個目錄。(有時會有四個子目錄,都要搬過去)
搬到新建的『版本目錄』,即『F17_i386』中,如下圖所示:
此時,根目錄中應是只剩幾個『系統檔案』,讀者可以不必理會它。

四、複製其它版本的安裝檔案

重覆步驟二、三,直到 unetbootin 複製妥最後一個版本時,在搬移前先暫停一下。最後一個版本的搬移過程有些不同,要留些檔案不搬移,否則 USB 隨身碟也開不了機。
  • 根目錄:除了 syslinux.cfg 這個檔案用複製外,ubnfilel.txt 和 ubnpathl.txt 兩個檔案都搬至『版本目錄』。
  • 子目錄:新增的子目錄,如同步驟三之操作,也都搬至『版本目錄』。
這個步驟很繁瑣,操作時要小心。看在將來安裝的方便上,這些辛苦應該是值得的。

五、修改 Linux 開機啟動命令

在 USB 隨身碟的根目錄中,尋找檔名為『syslinux.cfg』的檔案,這是 USB 隨身碟啟動後,第一個跳出的選單畫面的設定檔。用文字編輯器(例:gedit)打開它做些修改,每個安裝選項的內容,大致相同都為四列:
label ubnentry2
menu label ^Install or upgrade Fedora
kernel /images/pxeboot/vmlinuz
append initrd=/images/pxeboot/initrd.img root=UUID=4585-EA6C quiet
或加上幾個 Linux 啟動參數,如:
label ubnentry3
menu label Install Fedora in ^basic graphics mode.
kernel /images/pxeboot/vmlinuz
append initrd=/images/pxeboot/initrd.img root=UUID=4585-EA6C xdriver=vesa nomodeset quiet
其中,各列首文字都是『選單程式』用以辨識的保留字,
label:選單程式用以識別各選項項目用,只要名稱不重覆就不會出錯。
menu label:安裝時,選單程式顯示的選項名稱,『^』後的字母是『快速選擇鍵』。
kernel:各版本安裝時,第一個載入的檔案 vmlinuz,是 Linux 的『作業系統核心』。
append:在 Linux 核心之後,接著載入的模組,包含驅動程式、檔案系統等。
以 Fedora 17 的 i386 版本為例,上述的兩個選單的『選項內容』改為
label ubnentry2
menu label ^Install or upgrade Fedora 17 i386
kernel /F17_i386/images/pxeboot/vmlinuz
append initrd=/F17_i386/images/pxeboot/initrd.img repo=hd:LABEL="FedoraU":/F17_i386 quiet
及用顯示卡的 VESA 相容模式安裝的參數列
label ubnentry3
menu label Install Fedora 17 i386 in ^basic graphics mode.
kernel /F17_i386/images/pxeboot/vmlinuz
append initrd=/F17_i386/images/pxeboot/initrd.img repo=hd:LABEL="FedoraU":/F17_i386 xdriver=vesa nomodeset quiet
若是正在製作 Fedora 14 i386 的安裝檔案,取代的文字(repo=……)則改為
stage2=hd:LABEL="FedoraU":/F14_i386

六、修改各版本的安裝檔案

在步驟三中所搬移的子目錄之檔案,都是與各安裝版本有關。正常的安裝過程中,都是假設安裝相關的檔案(包含子目錄中的)之所在位置是相對於 USB 隨身碟的『根目錄』,在步驟三的搬移操作後,這是前提已經不符合了。因此,這些指示安裝檔案的設定檔都要加以修改,共有三個檔案。
版本\檔案 ubnfilel.txtubnpathl.txtBOOTX64.conf
或 BOOT.conf
F14_i386需修改需修改需修改
F14_x86_64需修改需修改需修改
F17_i386需修改需修改-
F17_x86_64需修改需修改需修改
其中,
  • ubnfilel.txt 和 ubnpathl.txt 位於各『版本目錄』中,
  • BOOTX64.conf 則在各『版本目錄』下的『EFI/BOOT』目錄中。
修改的方式很簡單,只要在原本目錄或檔案前面,將『版本目錄』這個新建目錄名稱加上即可。比較難的部份是有哪幾個檔案需要修改,筆者試驗後的結果:每個『版本目錄』中只有2~3個檔案要修改而已,以 Fedora 17 x86_64 為例:
  • ubnfilel.txt 和 ubnpathl.txt 檔,第一列的修改為:
    LiveOS/TRANS.TBL=》F17_x86_64/LiveOS/TRANS.TBL
    isolinux=》F17_x86_64/isolinux
    其它各列也做一樣的修改。
  • BOOTX64.conf 則略複雜些,要修改好幾個地方,分別在以 splashimage,kernel,和 initrd 為首的三列命令的檔案名稱前,要加上『版本目錄』名稱。以 Fedora 17 x86_64 為例:
    #debug --graphics
    default=0
    splashimage=/F17_x86_64/EFI/BOOT/splash.xpm.gz
    timeout 5
    hiddenmenu
    titleFedora 17
    findiso
    kernel F17_x86_64/images/pxeboot/vmlinuz root=hd:LABEL="FedoraU":/F17_x86_64
    initrd F17_x86_64/images/pxeboot/initrd.img
    titleTest this media & start Fedora
    findiso
    kernel F17_x86_64/images/pxeboot/vmlinuz root=hd:LABEL="FedoraU":/F17_x86_64 quiet rd.live.check
    initrd F17_x86_64/images/pxeboot/initrd.img

七、將 DVD.ISO 複製到 USB 隨身碟

一般而言,安裝時使用 DVD.iso 是安裝時的最佳選擇。因此,在這個步驟中,要將 DVD.iso 複製到 USB 隨身碟的『版本目錄』中。以篇末的『懶人包』為例,有這四個 iso 檔:
版本目錄名CPUFedora 版本複製之 DVD.iso 檔名
F14_i38632-bitFedora 14Fedora-14-i386-DVD.iso
F14_x86_6464-bitFedora 14Fedora-14-x86_64-DVD.iso
F17_i38632-bitFedora 17Fedora-17-i386-DVD.iso
F17_x86_6464-bitFedora 17Fedora-17-x86_64-DVD.iso
將來安裝的過程,就會和用 DVD.iso 開機、安裝相同。

注意:若 USB 隨身碟容量不夠,這些版本的 DVD.iso 不一定要同時放進 USB 隨身碟,只要保留『版本目錄』結構,暫時不安裝 DVD.iso 先移除,要安裝的 DVD.iso 再放進,即可彈性使用這個『多版本 USB 安裝隨身碟』。

八、以 USB 隨身碟開機、安裝

在電腦的 BIOS 裏,將開就順序設定為『USB 隨身碟』第一優先,打開電源後電腦就會從 USB 隨身碟開機。
    在安裝選單中,挑選適當的項目,通常的選擇為
Install or upgrade Fedora  ??  ???

Install Fedora  ??  ???  in basic graphics mode.
後者只有在前一選項的『圖形化安裝程式』不能正常執行時,才去選擇它。當開始安裝後,各位讀者看到的步驟,應該和用 DVD 光碟片安裝相同,就不再贅述。

九、懶人包

學習 Linux 是不能偷懶的,而這個『多版本 USB 安裝隨身碟』想要作成『懶人包』也是不太容易。就提供筆者的『幾個修改好的設定檔案』,連同它們的目錄架構,只要解開壓縮檔,將原本的檔案蓋過去就可以,應該也算是『懶人包』的一種吧!若讀者製作的版本不同,就麻煩自己修改,或是提出來討論。

『懶人包』說明:

  • 適用同時放入四個版本的 Fedora 之用,為 Fedora 14 和 17 版,CPU 都包含 32 位元和 64 位元。
  • 本篇所有『搬移』、『複製』的步驟都做完後,不需修改任何設定檔案,將『懶人包』解壓縮,複製到 USB 隨身碟即可。
  • 『懶人包』下載連結。(Google 雲端硬碟.分享)

後記:


已測試版本:

  • Fedora: 14, 17

1 則留言:

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)