▼

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.)