天天看點

伺服器系統用mbr分區,Linux硬碟GPT分區和MBR分區

之是以想到寫這篇,是因為本人在折騰Linux系統的過程中,有多次掉入硬碟分區的陷阱的經曆。最近幾天,再一次掉入坑中,折騰了兩天才從坑中爬出來。經過多方查詢資料,終于弄明白了硬碟分區的一些概念。下面将其記錄下來,以警示來者。 說起我自己掉坑的經曆

之是以想到寫這篇,是因為本人在折騰Linux系統的過程中,有多次掉入硬碟分區的陷阱的經曆。最近幾天,再一次掉入坑中,折騰了兩天才從坑中爬出來。經過多方查詢資料,終于弄明白了硬碟分區的一些概念。下面将其記錄下來,以警示來者。

說起我自己掉坑的經曆,無不與WinXP和Linux的激烈碰撞有關。多年前,我就開始在一台電腦上同時安裝WinXP和Linux,隻要遵守先安裝WinXP再安裝Linux的順序,就不會出問題,Linux的安裝程式會自動識别多系統,安裝完成後可順利啟動多系統。有一天,我覺得單用Linux就夠了,于是就格了整個硬碟安裝了Linux。又有一天,我覺得還是要用WinXP,于是就重新安裝WinXP(不要對我說虛拟機,多年前我的電腦還隻有256M記憶體,虛拟機根本跑不動),結果發現,WinXP的安裝程式沒辦法對硬碟進行分區了。這個坑是由Linux中的LVM引起的,WinXP識别不了LVM分區,那個時代的WinPE、DOS工具箱中的所有工具都沒辦法識别LVM,而那時我對Linux的了解又隻停留在隻會在安裝系統的時候分區,根本不知道Linux系統中還有fdisk、parted這樣的工具,是以折騰了許久才從坑裡面爬出來。多年後的現在,我又一次掉入了坑中。我工作時用的電腦是WinXP系統(天朝國情,你懂的),為了幹點私活,我又裝了個Ubuntu上去了,這兩個系統一直相安無事。直到有一天,我把Ubuntu系統又折騰挂了,于是重裝,因為在分區的時候不小心選擇了預設的“清除整個盤并安裝Ubuntu”,然後硬碟就被整個格掉了,WinXP就沒有了。我當時想,這多大點兒事,我再裝個WinXP不就完了嗎。但是問題來了,無論我怎麼安裝,WinXP系統就是啟動不了。後來才整明白,這個坑是硬碟采用了GPT分區引起的。那為什麼我讓Ubuntu自動分區它就分成了GPT分區呢?這也怪這台惠普的工作用機比較奇葩,它即支援legacy BIOS,也支援EFI,當原來WinXP存在時,它用的當然是MBR分區(msdos分區),是以安裝Ubuntu時就是使用的MBR分區,而後來Ubuntu自動分區時,它看到主機闆支援EFI,就自動把硬碟整成GPT分區了。我也是折騰了幾天才明白這個道理,最後終于在Ubuntu LiveCD的parted程式的幫助下,使用一個mklabel msdos指令把硬碟從GPT分區更改為MBR分區,然後再按順序安裝WinXP和Ubuntu,才算是從坑裡面爬出來。

對于那些長期管理大型機房和大存儲容量的伺服器的朋友,對于硬碟分區,他們肯定是早就做好了功課。不會像我這樣,直到碰到問題才會去學習相關的知識。對于硬碟分區的這些知識,我總結如下(隻是簡單總結,具體内容請大家自行搜素):

1、傳統的BIOS隻支援從MBR分區的硬碟啟動。MBR分區的分區表儲存在硬碟的第一個扇區,而且隻有64位元組,是以最多隻能有四個表項。也就是說,我們隻能把硬碟分為4主分區,或者分成小于等于3個主分區再加一個擴充分區。擴充分區又可以分為多個邏輯分區。MBR分區的優點就是簡單,大家都用,是以大家都懂的嘛,很多作業系統都可以從MBR分區的硬碟啟動。缺點就是MBR分區不能識别大于2T的硬碟空間,也不能有大于2T的分區;

2、GPT分區的硬碟可以解決以上MBR分區的所有缺點,,它沒有4個主分區的限制,想分幾個主分區就可以分幾個主分區,它可以識别大于2T的硬碟空間,每個分區的大小也可以超過2T。但是它的缺點是需要作業系統支援。比如隻有WinXP 64位、Win Vista、Win 7和Win 8和比較新的Linux發行版支援GPT分區的硬碟。而且,如果沒有EFI的支援的話,以上系統也隻能将GPT分區的硬碟當成資料盤,不能從GPT分區的硬碟啟動;

3、要從GPT分區的硬碟啟動,則主機闆使用EFI、硬碟使用GPT分區、作業系統支援GPT和EFI這三個條件缺一不可。目前比較新的64位Linux系統和Win8系統都是支援EFI的,是以都是需要從GPT分區的硬碟啟動的。現在的電腦主機闆已經逐漸抛棄legacy BIOS,而隻支援EFI了。(像我的工作機這樣的過渡産品将越來越少。)目前很多預裝Win8的筆記本的主機闆幾乎都隻支援EFI了。是以,學習GPT和EFI的相關知識勢在必行;

4、以上分區政策都是固定分區。硬碟分區一旦完成,則分區的大小不可改變,如果要改變分區的大小的話,隻有重新分區。而且由于沒有辦法把多個硬碟分到一個區,是以再怎麼分,每個分區的大小都有限。是以我們需要一種動态分區的東西。LVM就是這樣一個東東,它叫邏輯卷管理。使用LVM的機制是這樣的:首先把硬碟分區或者整塊硬碟标記為一個實體卷(PV),然後再建立一個卷組(VG),把一個或多個實體卷加入卷組,最後對卷組進行分區,每一個分區稱為一個邏輯卷(LV)。LVM的優點就是可以随時向卷組中添加實體卷擴充卷組的大小,以可以動态調整邏輯卷的大小。這在伺服器中尤其有用,比如說有一個原本有100個使用者的伺服器,其/home目錄下就會有100個使用者的主目錄,如果給他們每人配置設定20G的空間的話,就會占滿一個2T的硬碟,如果這時再來100個使用者怎麼辦?如果使用LVM就可以順利解決這個問題,我們可以再加一個3T的硬碟,然後把這個硬碟加入卷組就可以擴大卷組的大小,然後再調整/home所在的邏輯卷的大小即可。LVM既可以搭配MBR使用,也可以搭配GPT使用。

下面通過Ubuntu 14.04安裝過程中自動分區的政策來驗證以上知識點。首先,對于隻支援legacy BIOS的電腦,安裝Ubuntu時分區選項如下:

伺服器系統用mbr分區,Linux硬碟GPT分區和MBR分區

這時,不選擇啟動LVM的選項。安裝完作業系統後,使用parted程式檢視硬碟分區,通過檢視/etc/fstab檔案來了解哪個分區對應哪個檔案系統,如下圖:

伺服器系統用mbr分區,Linux硬碟GPT分區和MBR分區

通過上面圖檔中parted程式中的print指令的輸出可以看出,硬碟的分區表類型為msdos,也就是MBR分區。硬碟分為一個主分區sda1和一個擴充分區sda2,主分區sda1占20.4G,擴充分區sda2隻有1072M,擴充分區中隻有一個邏輯分區sda5。通過/etc/fstab可以看出主分區sda1挂載到根目錄,邏輯分區sda5為交換空間。

上面的分區方案是最簡單最常用的一種。下面來看看啟用LVM是什麼效果。在選擇分區方案的界面選擇開啟LVM的選項,如下圖:

伺服器系統用mbr分區,Linux硬碟GPT分區和MBR分區