Linux硬碟GPT分區和MBR分區

來源:互聯網
上載者:User

   之所以想到寫這篇,是因為本人在折騰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時分區選項如下:

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

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

  上面的資料分割配置是最簡單最常用的一種。下面來看看啟用LVM是什麼效果。在選擇資料分割配置的介面選擇開啟LVM的選項,如下圖:

  安裝完作業系統後,還是通過parted程式和/etc/fstab來查看硬碟的分區及使用方式,如下圖:

  從圖中可以看出,分區表的類型還是msdos。硬碟還是只分了一個主要磁碟分割sda1和一個擴充分區sda2,但是主要磁碟分割sda1隻有255M,擴充分區sda2倒是有21.2G,同樣擴充分區只分為一個邏輯分區sda5,邏輯分區sda5佔用擴充分區中全部的21.2G空間,而且sda5的標誌是lvm,說明該分區被標記為一個物理卷(PV),它肯定是被加入到了一個卷組(VG)中。通過/etc/fstab檔案可以看出,主要磁碟分割sda1掛載到/boot,而根目錄和交換空間掛載的是兩個邏輯卷(LV)。

  通過LVM命令可以查看系統中卷組、物理卷和邏輯卷的資訊,如下圖:

  通過pvs和pvdisplay命令,可以看到系統中只有一個物理卷,那就是/dev/sda5,該物理卷加入到了卷組ubuntu-vg之中。通過vgs和vgdisplay命令可以看到系統中只有一個卷組,那就是ubuntu-vg,該卷組被分為兩個邏輯卷。

  再看下圖:

  通過lvs和lvdisplay命令可以看到卷組分為兩個邏輯卷,它們分別掛載到根目錄和交換空間。

  通過LVM命令還可以進行更多的操作,比如建立新的卷組,將新的物理卷加入到卷組,增大或減小邏輯卷的大小等等。具體用什麼命令,一個help即可搞定。

  最後,來看看在主板只支援EFI的情況下,Ubuntu如何分區。安裝的啟動介面如下:

  這個安裝介面和legacy BIOS系統下的安裝介面是不同的,傳統的安裝介面如下:

  在EFI模式下,還是選擇自動分區。安裝完作業系統後,使用parted和/etc/fstab來查看硬碟的分區和使用方式,如下圖:

  通過以上圖片可以看出,硬碟的分區表類型為gpt,硬碟分為三個區,都是主要磁碟分割。其中第1個分區sda1的大小是537M,檔案系統是fat32,其掛載的路徑是/boot/efi,而另外兩個分區一個掛載到根目錄,一個為交換空間。從上面的資訊我們不難推斷:只支援EFI的主板只能從GPT分區的硬碟啟動,而且該硬碟第1個分區必須為fat32檔案系統,該檔案系統中存放的是EFI需要的各種檔案。

  如果在安裝Ubuntu系統的時候不是選擇自動分區,而是選擇最後那個“其它選項”來自訂分區,會發現其實Ubuntu提供的自訂資料分割函數很有限。它沒辦法讓人選擇是使用MBR分區還是使用GPT分區,也沒有辦法選擇是否啟用LVM。如果需要更靈活的管理的話,還是只有點擊“試用Ubuntu”按鈕,進入LiveCD的Ubuntu系統後,使用parted命令和lvm命令手動管理硬碟分區。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。