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