其實去年初就曾利用過年期間玩了下在 USB 隨身碟安裝與設定多系統啟動。不過當時都是在 Windows 7 環境下設定的,且偏以可驅動的 Live OS ISO 檔 (如 WinPE、Puppy Linux),以及工具碟為主。(當時研究心得可參考文後「延伸閱讀」的鏈結。)
因為今年我設定了要利用閒暇時間學習 Linux 的底層架構,也包括了學習使用 C++ 的程式撰寫@Linux 的目標;同時我也希望出外時可以只帶 USB 碟,內裝了我可以上網瀏覽、文書處理、開發環境等的行動平台,所以安裝套較輕量如 Puppy Linux,並可以把變動永續 (persistent)寫入到 USB 隨身碟內,而不僅只是 Live 那種唯讀而已。
經過兩三天的實作設定,終於可以作到:
- 在 USB 碟切割多個磁區 (partition)。
- 安裝 Arch Linux 於某一磁區,且可以啟動與寫入變動等。
- 可驅動 Puppy Linux ISO 檔,並且可以將所有操作的變動寫回 USB 磁區內。
- 可利用 Grub2 驅動各磁區的系統,包括上述 Arch Linux、Puppy Linux、各類 Live ISO 檔 OS等。
我想就對上述的列表,個別整理成主題,來分享下關於實作的心得與個人的註記備忘。本篇就先針對如何安裝 Grub2 於 USB MBR 以及基本的 grub.cfg 設定。同時注意下以下的設定僅先針對 Legacy BIOS 環境下,而並針對 EFI 環境,不過設定仍為類似的步驟。
準備 USB 隨身碟
最好使用 32G 以上空間的隨身碟,USB 2.0 or 3.0 均可。我自己是使用這款 Super Talent USB3.0 64GB 讀速130M隨身碟(終保),當時是買來要玩暗黑3,但現在已不玩該遊戲。
準備 Grub2 安裝與設定環境所使用的 Host 系統
使用 Grub2 的原因是現今主流 Linux OS 均支持新一代的開機管理程式,而且它可以支持從 MBR (Legacy) 或 EFI (Advance) 開機啟動,且可以驅動多種檔案系統與多類型的 OS,彈性極大。
要將 Grub2 寫入到 USB 開機區,需要準備已安裝有 Grub2 程式的主機 (Host)環境。以前我是使用 Windows 7 環境,不過後來發現到使用 Linux 系統並使用命令列模式來設定,反而較簡單。
關於如何在 Windows 環境下建置 Grub2,可以參考這一篇:
o [分享] Windows定製Grub2(包括BIOS和UEFI、自定義Grub2路徑)。
而個人所使用的作業環境則為 Arch Linux,因為它的 Grub2 設定文件整理得很好,容易找到相關的參考文件。
我是安裝 Arch Linux 於 Vmware 虛擬機上,如此相對方便設定與測試。關於如何安裝 Arch Linux 於 Vmware/Virtual Box 等虛擬機器內,有太多文章可以參考,例如底下這篇就寫得相當好:
o A Guide to Installing Arch in VirtualBox。