Linux 磁碟分割 UEFI 邏輯分割 MBR GPT

Linux磁區配置從頭開始 搞定MBR、GPT與UEFI

2015-01-13
本文將以手動指令操作的方式來做示範,讓大家能夠清楚地分辨UEFI、GPT分割與Linux的搭配及其運作方式,進而能更順暢地操作Linux這個免費又好用的作業系統。
首先是syslinux,syslinux所需的分割區很簡單,只須切割出需要的分割區即可,以「/dev/sda」為例,先使用「mkpart primary ext4 0GB 6GB」切割出第一個6GB的分割區,其中0GB指分割起始區,6GB則是分割結束區,這個分割區就給所有Linux系統使用。

接著切出swap分割區,使用指令「mkswap primary linux-swap 6GB 7GB」,亦即建立一個1GB大小的swap分割區。切割完後,無須進行任何儲存動作,使用「quit」離開parted,就可以完成硬碟分割動作。然後,可使用cgdisk工具來檢視分割狀況,例如使用「cgdisk /dev/sda」就可以看到如圖3的畫面。


▲圖3 利用cgdisk工具來檢視分割狀況。

在Arch Linux中當然也可以使用cgdisk進行分割,這裡使用parted是因為它是各個Linux發行版中比較普遍且都會有的工具。分割並進行分割區格式化後,再使用pacstrap指令安裝基本系統base,記得要額外安裝syslinux與gptfdisk這兩個軟體。

安裝並設定好Arch Linux基本系統後,最後在arch-chroot狀態下,使用指令「syslinux-install_update -i -a -m」就可以安裝好syslinux開機管理員,如圖4所示。


▲圖4 安裝syslinux開機管理員。

最後,記得要編輯「/boot/syslinux/syslinux.cfg」設定檔,將實際的root分割區UUID設定好,如圖5所示。


圖5 編輯「/boot/syslinux/syslinux.cfg」設定檔。

到這裡,就完成了syslinux在GPT分割表的安裝與設定。重新開機後,應該就會看到syslinux的開機管理畫面,如圖6所示。


▲圖6 syslinux開機管理畫面。

其實可以發現,透過syslinux開機,GPT分割表只要分割出所要的分割區,然後掛載安裝系統即可,不像MBR還必須設定開機分割區。

但如果是使用GRUB,首先GRUB需要是2.0以上版本,本文所使用的GRUB都是2.0版以上,GRUB在傳統BIOS開機模式下若使用GPT分割,需要另外建立一個分割區,型態為BIOS Boot Partition,這個分割區依使用的開機管理員而不同,最小從31KB起跳,使用GRUB時建議大概1MB大小就夠了。同時,這個BIOS Boot Partition不需要是第一個分割區,但是這分割區一定要在磁碟起始算起2TB之內,GRUB會將core.img嵌入在這個分割區內。

因此在使用GRUB時,先使用「mklabel non-fs 0MB 2MB」指令建立起第一個分割區作為BIOS Boot Partition使用,接著執行「set 1 bios_grub on」將剛建立的第一個分割區設為BIOS Boot Partition型態,之後再分別建立系統分割區與swap分割區。

如果是使用gdisk建立分割,BIOS Boot Partition的編號為ef02。建好的磁碟分割同樣使用「cgdisk /dev/sda」指令來檢視整個分割表配置,如圖7所示。


▲圖7 使用「cgdisk /dev/sda」指令檢視分割表配置。

建好格式化分割區並掛載系統分割區到「/mnt」後,接著使用pacstrap安裝基本系統base與grub到「/mnt」中,然後在安裝grub時使用「grub-install --target=i386-pc --recheck --debug /dev/sda」指令便可以將GRUB安裝到「/dev/sda」中。最後使用「grub-mkconfig -o /boot/grub/grub.cfg」指令產生grub.cfg設定檔。

至此,便完成了GRUB在GPT分割表的安裝。歸納GRUB與syslinux的不同之處就是,差別在一個BIOS Boot Partition的建立。

UEFI搭配GPT

接著談到UEFI開機,使用UEFI開機當然就只能搭配GPT分割表,因為VirtualBox在UEFI開機與Linux的開機管理程式搭配有問題,因此筆者使用家裡一台有UEFI的實體電腦來進行,將Arch Linux開機ISO檔安裝到USB碟中,準備以USB碟開機。電腦開機後,快速按下〔F11〕功能鍵以進入開機選單中,如圖8所示。


▲圖8 按下〔F11〕鍵盤鍵進入開機選單。

從中可以看到Generic USB Flash Disk 0有兩個選項,一個是USB,一個是UEFI,這兩個都是Arch Linux開機USB碟開機,只是「USB:」開頭那個是以傳統BIOS開機,而「UEFI:」開頭的當然就是以UEFI模式開機,因此選擇「UEFI:」開頭的開機,開機時可以發現Arch Linux開機光碟的開機畫面就不太一樣,如圖9所示。


▲圖9 選擇Arch Linux archiso x86_64 UEFI CD選項開機。

筆者試過目前幾個主流的Linux發行版開機媒體,都同時支援傳統BIOS開機及UEFI開機這兩種模式,建議在使用一般實體電腦開機時,記得檢查一下系統的設定是否是使用UEFI開機,因為若要使用UEFI開機的方式進入Linux系統,在安裝時就必須是以UEFI模式開機進行安裝,有些電腦可能預設關閉UEFI模式。

傳統BIOS開機及UEFI開機畫面會不太一樣,傳統BIOS開機會進入開機媒體所安裝的開機管理員,而UEFI開機則須選擇進入UEFI內的開機媒體選擇畫面,這是需要特別留意的地方。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!