2013年1月26日 星期六

適用 Fedora 18 的「可選版本 USB 安裝隨身碟」

延遲多次 Fedora 18 終於正式發佈,當然馬上下載安裝。基於保護地球資源,當然是選用 USB 的安裝方法。而製做 USB 安裝隨身碟的首選,當然是用 UNetbootin,參考前文 “安裝 Fedora 方法(二):以 USB 隨身碟開機” 或 “安裝 Fedora 方法(三):可選版本 USB 安裝隨身碟”,都會遇到一樣的問題,那就是 Fedora-18-XXXX-DVD.iso 這個檔案會複製失敗。
    查一下資料,大概是太久沒用 FAT32,竟發現自已都忘了這個檔案系統的規格,它的單一檔案大小被限制在 4GB,而 Fedora-18-XXXX-DVD.iso 這兩個檔案都是 4.3GB,所以不能使用 FAT32 檔案系統,那是否可以用別的檔案系統呢?例如:Linux 常用的 Ext4。結果,用 UNetbootin 製作好的 USB 安裝隨身碟不能開機,應該是 UNetbooting 的問題。
    上網查了一下資料,大都是建議使用「LiveUSB Creator」,筆者當然也試了,但不能使用多版本安裝。對於需要隨時選擇 x86_64 和 i686 這兩個安裝版本的筆者而言,是有些不方便。所幸,經過一翻嘗試,終於讓筆者找到製做這個『適用 Fedora 18 的多版本安裝隨身碟』的程序。
這個程序主要是由前文的程序修改而來,為方便讀者參考,將前文相關內容複製過來,以求完整。

一、下載開機檔案

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

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

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

開啟「磁碟公用程式」
  • Fedora 14:從「應用程式」→「系統工具」→「磁碟公用程式」
  • Fedora 18:從「應用程式」→「附屬應用程式」→「磁碟」
◆ 這裏和前文不同,請注意 ◆
開啟「磁碟公用程式」。 將 USB 隨身碟分割成兩個「分割區」,分別格式化為 FATExt4 檔案系統,名稱則可自定,最好是用英文(例:FedoraUBoot 及 FedoraUISO),安裝時才不會出錯。記住這個名稱,待會要用
註一:『右上方的齒輪』是對磁碟的的操作,一般的隨身碟格式化選『MBR/DOS』即可。下方的『+/-』是建立、刪除分割區(若已無空間則僅有『-』)。『下方的齒輪』是對分割區的操作,格式化時可選的擇 FAT 或 Ext4。
註二:建立分割區時,指定該分割區使用的,就可以依需求建立數個分割區。
註三:新買的隨身碟,其格式可能為 Fedora 無法正確辨認,這時下方的『+/-』符號可能不會出現,先按『右上方的齒輪』將隨身碟格式化為 MBR/DOS 後,就可增刪分割區了。

分割區的大小與要放幾個版本有關,最近幾個版本所佔空間的大小整理列表如下:
分割區檔案
系統
容 量用 途
編號標籤名稱
sdx1FedoraUBootFAT32每個版本約需 300 ~ 350 MB儲存開機啟動檔案,
需設定為「可開機」
sdx2FedoraUISOExt4每個 DVD.iso 約 3.3 ~ 4.3 GB儲存 ISO 檔
上表中的『sdx』是待會 UNetbootin 安裝開機啟動檔案時要用的,『 x 』是指 USB 分割後的「分割區」編號(由 a 開始,依序 b, c, ...)。接著,在「終端機」中,先切換成 root 身份,再提示符號後,以 unetbootin 執行 UNetbootin,將『網路安裝 CD』的映像檔複製到 USB 隨身碟,
其中的 Fedora-18-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 18 i386 為例,其『版本目錄』為『F18_i386』:
  • 根目錄:syslinux.cfg、ubnfilel.txt 和 ubnpathl.txt 三個檔案。
  • 子目錄:images、isolinux 和 LiveOS 三個目錄。(有時會有四個子目錄,都要搬過去)
搬到新建的『版本目錄』,即『F18_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 18 的 i386 版本為例,上述的兩個選單的『選項內容』改為
label ubnentry2
menu label ^Install or upgrade Fedora 18 i386
kernel /F18_i386/images/pxeboot/vmlinuz
append initrd=/F18_i386/images/pxeboot/initrd.img repo=hd:LABEL=FedoraUISO quiet
及用顯示卡的 VESA 相容模式安裝的參數列
label ubnentry3
menu label Install Fedora 18 i386 in ^basic graphics mode.
kernel /F18_i386/images/pxeboot/vmlinuz
append initrd=/F18_i386/images/pxeboot/initrd.img repo=hd:LABEL=FedoraUISO xdriver=vesa nomodeset quiet
若是正在製作 Fedora 14 i386 的安裝檔案,取代的文字(repo=……)則改為
stage2=hd:LABEL="FedoraUISO":/F14_i386
而且,在 FedoraUBoot 分割區的目錄 /F14_i386 和 /F14_x86_64,也要整個複製一份到 FedoraUISO 分割區的根目錄,才不會在安裝過程中,因找不到檔案而出錯。

注意:append 這列文字中,末修正前為『inst.stage2=hd:LABEL=……』,要依上述說明依版本改為『repo=hd:LABEL=……』或『stage2==hd:LABEL=……』。

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

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

七、將 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
F18_i38632-bitFedora 18Fedora-18-i386-DVD.iso
F18_x86_6464-bitFedora 18Fedora-18-x86_64-DVD.iso
將來安裝的過程,就會和用 DVD.iso 開機、安裝相同。製做好的『多版本 USB 安裝隨身碟』會有兩個「分割區」,檔案目錄如下圖所示。

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

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

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

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

九、懶人包

由於有太多東西要測試,『懶人包』就過幾天再上傳了。

後記


已測試版本:

  • Fedora: 14, 18

3 則留言:

  1. "開啟「磁碟公用程式」。將 USB 隨身碟分割成兩個「儲存區」"
    這句話可以請詳細解說一下,操作不太順利(我用Fedora 17 Fedora18)

    回覆刪除
    回覆
    1. 謝謝提醒!
      『磁碟公用程式』(Fedora 17 以後稱為『磁碟』)的詳細操作需要很多截圖,有些佔篇幅,所以當時將之帶過去、省略了。補上一個截圖,並加上簡單說明,先墊一下。
      改天把詳細操作整理好後,再另外發個文。

      刪除
    2. 謝謝你囉
      已經完成切割!

      刪除

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