2015年6月7日 星期日

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

Fedora 22 已經釋出幾個星期了,這次 ISO 的改版只有增加兩個『工作站』的『網路安裝光碟』。要建立「適用 Fedora 22 的『可選版本 USB 安裝隨身碟』」應該不是太難,過程也和以前差不多。話說如此,也做個記錄方便製做 USB 安裝隨身碟時快些。
  這個記錄中,『工作站』用的光碟仍是『Live 光碟』,記錄如下:
這個程序主要是由前文的程序修改而來,為方便讀者參考,將前文相關內容複製過來,以求完整。部份截圖可能仍為舊版,請讀者包涵。

一、下載開機檔案

下載的檔名列表如下:
CPU版本分類網路
需求
網路
頻寬
選用 / 燒錄之 ISO 檔檔案大小
32-bit工作站--Fedora-Live-Workstation-i686-22-3.iso1.4 GB
必需Fedora-Workstation-netinst-i386-22.iso535 MB
伺服器--Fedora-Server-DVD-i386-22.iso2.3 GB
必需Fedora-Server-netinst-i386-22.iso535 MB
64-bit工作站--Fedora-Live-Workstation-x86_64-22-3.iso1.4 GB
必需Fedora-Workstation-netinst-x86_64-22.iso469 MB
伺服器--Fedora-Server-DVD-x86_64-22.iso2.2 GB
必需Fedora-Server-netinst-x86_64-22.iso469 MB
其中,
  • 『工作站』版有『Live 光碟』(檔名有 Live)及『網路安裝光碟』(檔名有 netinst)兩個版,
  • 『伺服器』版則有「DVD 安裝光碟」(檔名有 DVD)及「網路安裝光碟」。
請依需要下載適當版本,以製做「可選版本 USB 安裝隨身碟」,
  • 『工作站』及『伺服器』版都依 CPU 下載適當該 ISO 檔,及其網路安裝光碟。
下列步驟以 Fedora 22 在上表中所列的版本為例。

二、格式化 USB 隨身碟

開啟「磁碟公用程式」
  • Fedora 14:從「應用程式」→「系統工具」→「磁碟公用程式」
  • Fedora 18 ~ 21:從「應用程式」→「附屬應用程式」→「磁碟」
開啟「磁碟公用程式」。將 USB 隨身碟分割成一個「分割區」,且格式化為 FAT 檔案系統(:Fedora 22 的 ISO 檔大小皆小於 4GB),名稱則可自定,最好是用英文(例:FedoraUSB),安裝時才不會出錯。記住這個名稱,待會要用

註一:『右上方的齒輪』是對磁碟的的操作,一般的隨身碟格式化選『MBR/DOS』即可。下方的『+/-』是建立/刪除分割區(若已無空間則僅有『-』)。『下方的雙齒輪』是對分割區的操作,格式化時可選擇 FAT 或 Ext4。
註二:建立分割區時,指定該分割區使用的,就可以依需求建立數個分割區。
註三:新買的隨身碟,其格式可能為 Fedora 無法正確辨認,這時下方的『+/-』符號可能不會出現,先按『右上方的齒輪』將隨身碟格式化為 MBR/DOS 後,就可增刪分割區了。
註四:分割區『FedoraUSB』因為是 FAT32 檔案系統,在有些 Fedora 版本格式化時,標籤會出現全部大寫『FEDORAUSB』。

所需要的 USB 隨身碟大小與安裝選項的版本數有關,以 Fedora 22 為例列表如下:
檔案存放目錄
(版本目錄)
ISO 檔案類型CPU 類型所佔空間置入 USB 中之方式
F22_WS_x86_64Live-Workstation64-bit約 1.5 GB用 UNetBootin 安裝,再搬至『版本目錄』
F22_WS_i386Live-Workstation32-bit約 1.3 GB用 UNetBootin 安裝,再搬至『版本目錄』
F22_SVR_x86_64Server-netinst64-bit約 469.8 MB用 UNetBootin 安裝,再搬至『版本目錄』
Server-DVD約 1.9 GB複製 ISO 檔至『版本目錄』
F22_SVR_i386Server-netinst32-bit約 534.8 MB用 UNetBootin 安裝,再搬至『版本目錄』
Server-DVD約 2.0 GB複製 ISO 檔至『版本目錄』
建立好的分割區要先掛載成功後,才可以進行下一步驟。

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

在「終端機」中,先切換成 root 身份,在提示符號後,鍵入 unetbootin 以執行 UNetbootin,將『網路安裝光碟』及『Live 光碟』的映像檔複製到 USB 隨身碟,
上圖中的 Fedora-Server-netinst-x86_64-22.iso 是在步驟一的過程中,所下載的光碟映像檔。按【確定】後等待一段時間,讓 UNetbootin 建立、複製必要的目錄、檔案。當出現【現在重新開機】及【結束】兩個按鈕時,就是製做完成。
因為要製作『多版本 USB 安裝隨身碟』,按【退出】鈕後,接著進行下一步驟。

註一:Fedora 的預設安裝中,並未包含 UNetbootin,可以用『yum install unetbootin』這個命令加裝此套件。
註二:如果只要安裝一個「Fedora 22 工作站」版(不需多版本),做完這個步驟就可以了。

四、搬移啟動及安裝檔

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

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

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

:根目錄中有些檔案不一定是需要的,想再節省一些空間的話,在複製最後一個版本,可將根目錄中的檔案都刪除。

六、修改 Linux 開機啟動命令

在 USB 隨身碟的根目錄中,尋找檔名為『syslinux.cfg』的檔案,這是 USB 隨身碟啟動後,第一個跳出的選單畫面的設定檔。為節省篇幅,較詳細的說明請讀者參考之前的發文(列於篇末),在這裏直接將修改後內容貼上來,方便讀者應用:
default menu.c32
prompt 0
menu title Fedora 22 Multiple Installation USB Flash Drive
timeout 100
menu color disabled 1;36;44 #c00090f0 #00000000 std
menu separator # insert an empty line

label ubnentry1
menu label ^1) Start Fedora 22 Live (Workstation x86_64)
kernel /F22_WS_x86_64/isolinux/vmlinuz0
append initrd=/F22_WS_x86_64/isolinux/initrd0.img root=live:LABEL=FedoraUSB rd.live.dir=/F22_WS_x86_64/LiveOS rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
label ubnentry2
menu label ^2) Start Fedora 22 Live (Workstation i386)
kernel /F22_WS_i386/isolinux/vmlinuz0
append initrd=/F22_WS_i386/isolinux/initrd0.img root=live:LABEL=FedoraUSB rd.live.dir=/F22_WS_i386/LiveOS rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0
menu separator
label ubnentry3
menu label ^3) Install Fedora 22 (Server x86_64)
kernel /F22_SVR_x86_64/images/pxeboot/vmlinuz
append initrd=/F22_SVR_x86_64/images/pxeboot/initrd.img repo=hd:LABEL=FedoraUSB:/F22_SVR_x86_64 quiet
label ubnentry4
menu label ^4) Install Fedora 22 (Server i386)
kernel /F22_SVR_i386/images/pxeboot/vmlinuz
append initrd=/F22_SVR_i386/images/pxeboot/initrd.img repo=hd:LABEL=FedoraUSB:/F22_SVR_i386 quiet
menu separator
menu begin ^Troubleshooting
menu title Troubleshooting
label basic64
menu label ^1) Start Fedora 22 Live in basic VGA mode (WS, x86_64)
kernel /F22_WS_x86_64/isolinux/vmlinuz0
append initrd=/F22_WS_x86_64/isolinux/initrd0.img root=live:LABEL=FedoraUSB rd.live.dir=/F22_WS_x86_64/LiveOS rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 nomodeset
label basic32
menu label ^2) Start Fedora 22 Live in basic VGA mode (WS i386)
kernel /F22_WS_i386/isolinux/vmlinuz0
append initrd=/F22_WS_i386/isolinux/initrd0.img root=live:LABEL=FedoraUSB rd.live.dir=/F22_WS_i386/LiveOS rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 nomodeset
menu separator
label check64
menu label ^3)Test this media & start Fedora 22 Live (x86_64)
kernel /F22_WS_x86_64/isolinux/vmlinuz0
append initrd=/F22_WS_x86_64/isolinux/initrd0.img root=live:LABEL=FedoraUSB rd.live.dir=/F22_WS_x86_64/LiveOS rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 rd.live.check
label check64
menu label ^4)Test this media & start Fedora 22 Live (i386)
kernel /F22_WS_x86_64/isolinux/vmlinuz0
append initrd=/F22_WS_i386/isolinux/initrd0.img root=live:LABEL=FedoraUSB rd.live.dir=/F22_WS_i386/LiveOS rootfstype=auto ro rd.live.image quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 rd.live.check
menu separator
label local
menu label Boot from ^local drive
localboot 0xffff
menu separator
label returntomain
menu label Return to ^main menu.
menu exit
menu separator
menu separator
label sibsaidinblog
menu label http://sibsaidinblog-tw.blogspot.com
menu disable
menu end
menu separator
menu separator
label sibsaidinblog
menu label http://sibsaidinblog-tw.blogspot.com
menu disable
上例中,所製做的『可選版本 USB 安裝隨身碟』,包含:
  • 適用 64 位元 CPU 的「工作站」及「伺服器」
  • 適用 32 位元 CPU 的「工作站」及「伺服器」
共四個版本。

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

本例中 Fedora 22 的「工作站」版使用『Live DVD』,完成以上步驟後就可以安裝,不需要再複製 DVD.iso 檔。而「伺服器」版在前述的步驟中,只安裝它的『網路安裝光碟』。若用它安裝需要連上網路,則安裝所需時間就和網路頻寬有絕對的關係。
  一般而言,安裝時使用 DVD.iso 是安裝時的最佳選擇。因此,在這個步驟中,只要將「伺服器」版的 DVD.iso 複製到 USB 隨身碟的『版本目錄』中即可,以 Fedora 22 為例,需複製的 ISO 為:
版本目錄複製之 DVD.iso 檔名檔案大小
F22_WS_i386Fedora-Live-Workstation-i686-22-3.iso約 1.4 GB
F22_WS_x86_64Fedora-Live-Workstation-x86_64-22-3.iso約 1.4 GB
F22_SVR_i386Fedora-Server-DVD-i386-22.iso約 2.3 GB
F22_SVR_x86_64Fedora-Server-DVD-x86_64-22.iso約 2.2 GB
將來安裝的過程,就會和用 DVD 開機、安裝相同。

注意一:若 USB 隨身碟容量不夠,這些版本的 DVD.iso 不一定要同時放進 USB 隨身碟,暫時不安裝 DVD.iso 先移除,要安裝的 DVD.iso 再放進,即可彈性使用這個『多版本 USB 安裝隨身碟』。
注意二:若是 USB 隨身碟容量還是不足,製做『工作站』的步驟中可使用『網路安裝版』而不是『Live 光碟』,將會佔用更少的 USB 空間。當然,syslinux.cfg 這個的內容要跟著修改。

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

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

Install Fedora 22 (Server ???)
第一個選項是「工作站」,而第二個選項是「伺服器」。若「工作站」的 Live 光碟因『顯示卡』的驅動程式不能正確載入,而在開機後不能正常執行『圖形化桌面』時,就選擇『Troubleshooting』,有適用較舊『顯示器』用的驅動程式。
Start Fedora 22 Live in basic graphics mode (WS ???)
當開始安裝後,各位讀者看到的步驟,應該和用 DVD 光碟片安裝相同,就不再贅述。

九、相關發文


已測試版本:

  • 製作 USB 隨身碟之系統:Fedora 21
  • USB 隨身碟之安裝系統 :Fedora 21

參考資料:

沒有留言:

張貼留言

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