▼

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 隨身碟分割成兩個「分割區」,分別格式化為 FAT 及 Ext4 檔案系統,名稱則可自定,最好是用英文(例: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.)