之所以想到寫這篇,是因為本人在折騰Linux系統(tǒng)的過程中,有多次掉入硬盤分區(qū)的陷阱的經(jīng)歷。最近幾天,再一次掉入坑中,折騰了兩天才從坑中爬出來。經(jīng)過多方查詢資料,終于弄明白了硬盤分區(qū)的一些概念。下面將其記錄下來,以警示來者。
說起我自己掉坑的經(jīng)歷,無不與WinXP和Linux的激烈碰撞有關(guān)。多年前,我就開始在一臺電腦上同時安裝WinXP和Linux,只要遵守先安裝WinXP再安裝Linux的順序,就不會出問題,Linux的安裝程序會自動識別多系統(tǒng),安裝完成后可順利啟動多系統(tǒng)。有一天,我覺得單用Linux就夠了,于是就格了整個硬盤安裝了Linux。又有一天,我覺得還是要用WinXP,于是就重新安裝WinXP(不要對我說虛擬機(jī),多年前我的電腦還只有256M內(nèi)存,虛擬機(jī)根本跑不動),結(jié)果發(fā)現(xiàn),WinXP的安裝程序沒辦法對硬盤進(jìn)行分區(qū)了。這個坑是由Linux中的LVM引起的,WinXP識別不了LVM分區(qū),那個時代的WinPE、DOS工具箱中的所有工具都沒辦法識別LVM,而那時我對Linux的了解又只停留在只會在安裝系統(tǒng)的時候分區(qū),根本不知道Linux系統(tǒng)中還有fdisk、parted這樣的工具,所以折騰了許久才從坑里面爬出來。多年后的現(xiàn)在,我又一次掉入了坑中。我工作時用的電腦是WinXP系統(tǒng)(天朝國情,你懂的),為了干點私活,我又裝了個Ubuntu上去了,這兩個系統(tǒng)一直相安無事。直到有一天,我把Ubuntu系統(tǒng)又折騰掛了,于是重裝,因為在分區(qū)的時候不小心選擇了默認(rèn)的“清除整個盤并安裝Ubuntu”,然后硬盤就被整個格掉了,WinXP就沒有了。我當(dāng)時想,這多大點兒事,我再裝個WinXP不就完了嗎。但是問題來了,無論我怎么安裝,WinXP系統(tǒng)就是啟動不了。后來才整明白,這個坑是硬盤采用了GPT分區(qū)引起的。那為什么我讓Ubuntu自動分區(qū)它就分成了GPT分區(qū)呢?這也怪這臺惠普的工作用機(jī)比較奇葩,它即支持legacy BIOS,也支持EFI,當(dāng)原來WinXP存在時,它用的當(dāng)然是MBR分區(qū)(msdos分區(qū)),所以安裝Ubuntu時就是使用的MBR分區(qū),而后來Ubuntu自動分區(qū)時,它看到主板支持EFI,就自動把硬盤整成GPT分區(qū)了。我也是折騰了幾天才明白這個道理,最后終于在Ubuntu LiveCD的parted程序的幫助下,使用一個mklabel msdos命令把硬盤從GPT分區(qū)更改為MBR分區(qū),然后再按順序安裝WinXP和Ubuntu,才算是從坑里面爬出來。
對于那些長期管理大型機(jī)房和大存儲容量的服務(wù)器的朋友,對于硬盤分區(qū),他們肯定是早就做好了功課。不會像我這樣,直到碰到問題才會去學(xué)習(xí)相關(guān)的知識。對于硬盤分區(qū)的這些知識,我總結(jié)如下(只是簡單總結(jié),具體內(nèi)容請大家自行搜素):
1、傳統(tǒng)的BIOS只支持從MBR分區(qū)的硬盤啟動。MBR分區(qū)的分區(qū)表保存在硬盤的第一個扇區(qū),而且只有64字節(jié),所以最多只能有四個表項。也就是說,我們只能把硬盤分為4主分區(qū),或者分成小于等于3個主分區(qū)再加一個擴(kuò)展分區(qū)。擴(kuò)展分區(qū)又可以分為多個邏輯分區(qū)。MBR分區(qū)的優(yōu)點就是簡單,大家都用,所以大家都懂的嘛,很多操作系統(tǒng)都可以從MBR分區(qū)的硬盤啟動。缺點就是MBR分區(qū)不能識別大于2T的硬盤空間,也不能有大于2T的分區(qū);
2、GPT分區(qū)的硬盤可以解決以上MBR分區(qū)的所有缺點,它沒有4個主分區(qū)的限制,想分幾個主分區(qū)就可以分幾個主分區(qū),它可以識別大于2T的硬盤空間,每個分區(qū)的大小也可以超過2T。但是它的缺點是需要操作系統(tǒng)支持。比如只有WinXP 64位、Win Vista、Win 7和Win 8和比較新的Linux發(fā)行版支持GPT分區(qū)的硬盤。而且,如果沒有EFI的支持的話,以上系統(tǒng)也只能將GPT分區(qū)的硬盤當(dāng)成數(shù)據(jù)盤,不能從GPT分區(qū)的硬盤啟動;
3、要從GPT分區(qū)的硬盤啟動,則主板使用EFI、硬盤使用GPT分區(qū)、操作系統(tǒng)支持GPT和EFI這三個條件缺一不可。目前比較新的64位Linux系統(tǒng)和Win8系統(tǒng)都是支持EFI的,所以都是需要從GPT分區(qū)的硬盤啟動的?,F(xiàn)在的電腦主板已經(jīng)逐漸拋棄legacy BIOS,而只支持EFI了。(像我的工作機(jī)這樣的過渡產(chǎn)品將越來越少。)目前很多預(yù)裝Win8的筆記本的主板幾乎都只支持EFI了。所以,學(xué)習(xí)GPT和EFI的相關(guān)知識勢在必行;
4、以上分區(qū)策略都是固定分區(qū)。硬盤分區(qū)一旦完成,則分區(qū)的大小不可改變,如果要改變分區(qū)的大小的話,只有重新分區(qū)。而且由于沒有辦法把多個硬盤分到一個區(qū),所以再怎么分,每個分區(qū)的大小都有限。所以我們需要一種動態(tài)分區(qū)的東西。LVM就是這樣一個東東,它叫邏輯卷管理。使用LVM的機(jī)制是這樣的:首先把硬盤分區(qū)或者整塊硬盤標(biāo)記為一個物理卷(PV),然后再創(chuàng)建一個卷組(VG),把一個或多個物理卷加入卷組,最后對卷組進(jìn)行分區(qū),每一個分區(qū)稱為一個邏輯卷(LV)。LVM的優(yōu)點就是可以隨時向卷組中添加物理卷擴(kuò)展卷組的大小,以可以動態(tài)調(diào)整邏輯卷的大小。這在服務(wù)器中尤其有用,比如說有一個原本有100個用戶的服務(wù)器,其/home目錄下就會有100個用戶的主目錄,如果給他們每人分配20G的空間的話,就會占滿一個2T的硬盤,如果這時再來100個用戶怎么辦?如果使用LVM就可以順利解決這個問題,我們可以再加一個3T的硬盤,然后把這個硬盤加入卷組就可以擴(kuò)大卷組的大小,然后再調(diào)整/home所在的邏輯卷的大小即可。LVM既可以搭配MBR使用,也可以搭配GPT使用。