CentOS Linux 5.x在GPT分區不能引導的解決方法
PS:昨天一客戶的項目要上線,機房在北京,對方也沒運維人員,我把CentOS 5.8系統安裝的詳細文檔給他們,剛進去安裝說報錯讀不到硬盤,發截圖過來一看,原來是GPT分區導致的問題,之前我遇到過大于2T的硬盤安裝系統時需要GPT分區,但是這臺機器硬盤沒超過2T,是另一個問題。經我分析是此機器之前安裝的Win 2008R2時采用了GPT分區,導致CentOS 5.8無法讀?。ǖ獵entOS 6.x默認就支持GPT),解決過程如下:
問題:
此機器安裝CentOS 5.8時提示:
Your boot partition is on a disk using the GPT partitioning Scheme but this machines cannot boot using GPT. |
如下圖:
解決方法:
1、用一個Linux的live CD,我這里使用了Ubuntu 12.04的live CD版本,下載地址:http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-desktop-amd64.iso
2、用live CD光盤啟動系統以后,執行:
查看硬盤的設備名稱:
fdisk -l
如果硬盤是/dev/sda,運行下面命令:
parted -s /dev/sda mklabel msdos
這樣就可以正常安裝CentOS 5.x了。
關于MBR與GPT分區管理:
目前我們可以接觸到的大部分x86架構的pc和服務器,還在采用上世紀遺傳下來的BIOS+MBR組合。 BIOS,基本輸入輸出系統 (Basic Input-Output System),是軟件與硬件之間的一個接口,可以把它看作一個翻譯在中文與英語之間,雖然兩者完全不同,不過可以讓大家了解 BIOS 所處的位置,BIOS 通常被寫入一塊 ROM 芯片連接在主板上,當然也有直接寫入北橋的,不過相當少見。 BIOS 幾乎是完全用匯編語言編寫,很大程度上決定了主板的性能及穩定性。
MBR,主引導記錄 (Master Boot Record),也就是我們常見的分區方法,不過管理員外的最終用戶很少知道它的存在,MBR 分區的標準決定了MBR只支持在2TB以下 (超過2TB的只能管理 2TB) 的硬盤中創建4個分區表項,要獲得更多分區,需要次級結構–擴展分區。擴展分區可以再次被分成一個或多個邏輯磁盤,也就是普通情況下的C盤以外的盤,或說***個分區以外的部分,有些情況下 Windows 里的C盤可能會是一個邏輯分區。
EFI,可擴展固件接口 (Extensible Firmware Interface),由英特爾 (Intel) 公司提出的一種替代 BIOS 的升級方案。 EFI 的位置很特殊,它不像是 BIOS 那樣自己即是固件又是接口,EFI 只是一個接口,位于操作系統與平臺固件之間。
GPT,全局***標識磁盤分區表 (GUID Partition Table),GUID,全局***標識符 (Globally Unique Identifier) 。GUID 分區表 (GPT) 是作為 Extensible Firmware Interface (EFI) 計劃的一部分引入的。當然,你也可以在 BIOS 的PC中使用 GPT 分區,雖然 GPT 來自以 EFI 計劃,但并不依賴于 EFI。GPT 相對于以往 PC 普遍使用的主引導記錄 (MBR) 分區方案更加靈活。比如可以超過 MBR 分區表項4個的限制,在 GPT 規范里對分區的數量幾乎是沒有限制的,大家在網上可以查到的128個實際上是 Windows 系統 (支持 GPT 的 Windows) 做出的限制,Linux下沒這個限制。 GPT 對可管理磁盤大小也超過了 MBR 的2TB (1TB = 1024GB) 而達到了 18EB (1EB = 1024TB) 。在 MBR 分區方案中操作系統的引導是通過放在磁盤最開始 (***扇區) 里的 MBR (這里的 MBR 是指主引導記錄,而不是主引導記錄分區方案,兩者是同名的。我的猜測是為了與 GPT 分區方案區分,使用了主引導記錄引導方式的名字 MBR 來命名此種分區方案,我查不到確切的資料正明我的猜測是否正確,只能大家努力區分一下了。) 。把重要的信息 (如分區信息、目錄等) 放在某個扇區里是 MBR 分區方案的方法,而 GPT 把這個信息放到了分區里,Intel的解釋是這樣可以更加明確更加安全。 GPT 分區為了保護自己不受 MBR 方案下磁盤管理軟件的危害,在磁盤的最開始位置 (***個扇區) 建立了一個保護分區 (Protective MBR),這種分區的類型標識為 0xEE。蘋果系統Mac OS X下這個保護分區大小為 200MB,這個分區在 Window磁盤管理器里名字叫做 GPT 保護分區。這個分區可以讓不能識別 GPT 的磁盤管理軟件把 GPT 磁盤看成一個未知格式的分區,而不是錯誤地當成一個未分區的磁盤。
常用的 MS-DOS 分區表格式不能在一個大于 2TB 的設備上使用。要支持大于2TB的設備,GPT 分區表格式必須被使用,并且必須使用parted工具程序來創建和管理 GPT 分區。