鳥哥的Linux私房菜2018簡(jiǎn)體化 第二章、主機(jī)規(guī)劃與磁盤分區(qū)(2)

2.2 磁盤分割

這一章在規(guī)劃的重點(diǎn)是為了要安裝Linux,那Linux系統(tǒng)是安裝在計(jì)算機(jī)元件的那個(gè)部分呢儒鹿?就是磁盤啦倦逐!所以我們當(dāng)然要來認(rèn)識(shí)一下磁盤先唬涧。我們知道一塊磁盤是可以被分割成多個(gè)分區(qū)的(partition)疫赎,以舊有的Windows觀點(diǎn)來看,你可能會(huì)有一顆磁盤并且將它分區(qū)成為C:, D:, E:盤對(duì)吧碎节!那個(gè)C, D, E就是分區(qū)(partition)啰捧搞。但是Linux的設(shè)備都是以文件的型態(tài)存在,那分區(qū)的文件名又是什么钓株?如何進(jìn)行磁盤分區(qū)实牡?磁盤分區(qū)有哪些限制陌僵?目前的BIOS與UEFI分別是啥轴合?MSDOS與GPT又是啥?都是我們這個(gè)小節(jié)所要探討的內(nèi)容啰碗短。

2.2.1 磁盤的連接方式與設(shè)備文件的關(guān)系

由第零章提到的磁盤說明受葛,我們知道個(gè)人計(jì)算機(jī)常見的磁盤接口有兩種,分別是SATA與SAS接口偎谁,目前(2015)的主流是SATA接口总滩。不過更老舊的計(jì)算機(jī)則有可能是已經(jīng)不再流行的IDE接口喔!以前的IDE接口與SATA接口在Linux的磁盤代號(hào)并不相同巡雨,不過近年來為了統(tǒng)一處理闰渔,大部分Linux distribution已經(jīng)將IDE接口的磁盤文件名也仿真成跟SATA一樣了!所以你大概不用太擔(dān)心磁盤設(shè)備文件名的問題了铐望!

時(shí)代在改變啊~既然IDE接口都可以消失了冈涧,那磁盤文件名還有什么可談的呢?嘿嘿正蛙!有岸焦!如同上一小節(jié)談到的乒验,虛擬化是目前很常見的一項(xiàng)技術(shù)愚隧,因此你在使用的機(jī)器很可能就是虛擬機(jī),這些虛擬機(jī)使用的“虛擬磁盤”并不是正規(guī)的磁盤接口锻全!這種情況下面狂塘,你的磁盤文件名就不一樣了!正常的實(shí)體機(jī)器大概使用的都是/dev/sd[a-]的磁盤文件名鳄厌,至于虛擬機(jī)環(huán)境下面荞胡,為了加速,可能就會(huì)使用/dev/vd[a-p]這種設(shè)備文件名喔部翘!因此在實(shí)際處理你的系統(tǒng)時(shí)硝训,可能得要了解為啥會(huì)有兩種不同磁盤文件名的原因才好!

例題:

假設(shè)你的主機(jī)為虛擬機(jī),里面僅有一顆VirtIO接口的磁盤窖梁,請(qǐng)問它在Linux操作系統(tǒng)里面的設(shè)備文件名是什么赘风?

答:

參考2.1.3小節(jié)的介紹,虛擬機(jī)使用VirtIO接口時(shí)纵刘,磁盤文件名應(yīng)該是/dev/vda才對(duì)邀窃!

再以SATA接口來說,由于SATA/USB/SAS等磁盤接口都是使用SCSI模塊來驅(qū)動(dòng)的假哎,因此這些接口的磁盤設(shè)備文件名都是/dev/sd[a-p]的格式瞬捕。所以SATA/USB接口的磁盤根本就沒有一定的順序,那如何決定它的設(shè)備文件名呢舵抹?這個(gè)時(shí)候就得要根據(jù)Linux核心偵測(cè)到磁盤的順序了肪虎!這里以下面的例子來讓你了解啰。

例題:

如果你的PC上面有兩個(gè)SATA磁盤以及一個(gè)USB磁盤惧蛹,而主板上面有六個(gè)SATA的插槽扇救。這兩個(gè)SATA磁盤分別安插在主板上的SATA1, SATA5插槽上,請(qǐng)問這三個(gè)磁盤在Linux中的設(shè)備文件名是什么香嗓?

答:

由于是使用偵測(cè)到的順序來決定設(shè)備文件名迅腔,并非與實(shí)際插槽代號(hào)有關(guān),因此設(shè)備的文件名如下:

1. SATA1插槽上的文件名:/dev/sda

2. SATA5插槽上的文件名:/dev/sdb

3. USB磁盤(開機(jī)完成后才被系統(tǒng)檢測(cè)到):/dev/sdc

通過上面的介紹后靠娱,你應(yīng)該知道了在Linux系統(tǒng)下的各種不同接口的磁盤的設(shè)備文件名了沧烈。OK!好像沒問題了呦像云!才不是呢~問題很大呦锌雀!因?yàn)槿绻愕拇疟P被分區(qū)成兩個(gè)分區(qū),那么每個(gè)分區(qū)的設(shè)備文件名又是什么苫费?在了解這個(gè)問題之前汤锨,我們先來復(fù)習(xí)一下磁盤的組成,因?yàn)楝F(xiàn)今磁盤的分區(qū)與他物理的組成很有關(guān)系百框!

我們?cè)谟?jì)算機(jī)概論談過磁盤的組成主要有盤片闲礼、機(jī)械臂、磁頭與主軸馬達(dá)所組成铐维,而數(shù)據(jù)的寫入其實(shí)是在盤片上面柬泽。盤片上面又可細(xì)分出扇區(qū)(Sector)與磁道(Track)兩種單位,其中扇區(qū)的物理量設(shè)計(jì)有兩種大小嫁蛇,分別是512Bytes與4KBytes锨并。假設(shè)磁盤只有一個(gè)盤片,那么盤片有點(diǎn)像下面這樣:

圖2.2.1睬棚、盤片組成示意圖

那么是否每個(gè)扇區(qū)都一樣重要呢第煮?其實(shí)整顆磁盤的第一個(gè)扇區(qū)特別的重要解幼,因?yàn)樗涗浟苏w磁盤的重要信息!早期磁盤第一個(gè)扇區(qū)里面含有的重要信息我們稱為MBR(Master Boot Record)格式包警,但是由于近年來磁盤的容量不斷擴(kuò)大撵摆,造成讀寫上的一些困擾,甚至有些大于2TB以上的磁盤分區(qū)已經(jīng)讓某些操作系統(tǒng)無法存取害晦。因此后來又多了一個(gè)新的磁盤分區(qū)格式特铝,稱為GPT(GUID partition table)!這兩種分區(qū)格式與限制不太相同啦壹瘟!

那么分區(qū)表又是啥鲫剿?其實(shí)你剛剛拿到的整顆硬盤就像一根原木,你必須要在這根原木上面切割出你想要的區(qū)段稻轨,這個(gè)區(qū)段才能夠再制作成為你想要的家具灵莲!如果沒有進(jìn)行切割,那么原木就不能被有效的使用澄者。同樣的道理笆呆,你必須要針對(duì)你的硬盤進(jìn)行分區(qū),這樣硬盤才可以被你使用的粱挡!

2.2.2 MSDOS(MBR)與GPT磁盤分區(qū)表(partition table)

但是硬盤總不能真的拿鋸子來切切割割吧?那硬盤還真的是會(huì)壞掉去俄精!那怎辦询筏?在前一小節(jié)的圖示中,我們有看到“開始與結(jié)束磁道”吧竖慧?而通常磁盤可能有多個(gè)盤片嫌套,所有盤片的同一個(gè)磁道我們稱為柱面(Cylinder),通常那是文件系統(tǒng)的最小單位圾旨,也就是分區(qū)的最小單位啦踱讨!為什么說“通常”呢砍的?因?yàn)榻鼇碛蠫PT這個(gè)可達(dá)到64bits紀(jì)錄功能的分區(qū)表痹筛,現(xiàn)在我們甚至可以使用扇區(qū)(sector)號(hào)碼來作為分區(qū)單位哩!厲害了廓鞠!所以說帚稠,我們就是利用參考對(duì)照柱面或扇區(qū)號(hào)碼的方式來處理啦!

也就是說床佳,分區(qū)表其實(shí)目前有兩種格式喔滋早!我們就依序來談?wù)勥@兩種分區(qū)表格式吧。

MSDOS(MBR) 分區(qū)表格式與限制

早期的Linux系統(tǒng)為了兼容于Windows的磁盤砌们,因此使用的是支持Windows的MBR(Master Boot Record,主引導(dǎo)紀(jì)錄區(qū))的方式來處理啟動(dòng)管理程序與分區(qū)表杆麸!而啟動(dòng)管理程序紀(jì)錄區(qū)與分區(qū)表則通通放在磁盤的第一個(gè)扇區(qū)搁进,這個(gè)扇區(qū)通常是512 Bytes的大小(舊的磁盤扇區(qū)都是512Bytes喔N敉贰)拷获,所以說,第一個(gè)扇區(qū)512 Bytes會(huì)有這兩個(gè)數(shù)據(jù):

主引導(dǎo)記錄區(qū)(Master Boot Record, MBR):可以安裝開機(jī)管理程序的地方减细,有446Bytes

分區(qū)表(partition table):記錄整顆硬盤分區(qū)的狀態(tài)匆瓜,有64Bytes

由于分區(qū)表所在區(qū)塊僅有64 Bytes容量,因此最多僅能有四組記錄區(qū)未蝌,每組記錄區(qū)記錄了該區(qū)段的啟始與結(jié)束的柱面號(hào)碼驮吱。若將硬盤以長(zhǎng)條形來看,然后將柱面以直條圖來看萧吠,那么那64Bytes的記錄區(qū)段有點(diǎn)像下面的圖示:

圖2.2.2左冬、磁盤分區(qū)表的作用示意圖

假設(shè)上面的硬盤設(shè)備文件名為/dev/sda時(shí),那么這四個(gè)分區(qū)在Linux系統(tǒng)中的設(shè)備文件名如下所示纸型,重點(diǎn)在于文件名后面會(huì)再接一個(gè)數(shù)字拇砰,這個(gè)數(shù)字與該分區(qū)所在的位置有關(guān)喔!

P1:/dev/sda1

P2:/dev/sda2

P3:/dev/sda3

P4:/dev/sda4

上圖中我們假設(shè)硬盤只有400個(gè)柱面狰腌,共分割成為四個(gè)分區(qū)除破,第四個(gè)分區(qū)所在為第301到400號(hào)柱面的范圍。當(dāng)你的操作系統(tǒng)為Windows時(shí)琼腔,那么第一到第四個(gè)分區(qū)的代號(hào)應(yīng)該就是C, D, E, F瑰枫。當(dāng)你有數(shù)據(jù)要寫入F盤時(shí),你的數(shù)據(jù)會(huì)被寫入這顆磁盤的301~400號(hào)柱面之間的意思丹莲。

由于分區(qū)表就只有64 Bytes而已光坝,最多只能容納四筆分區(qū)的記錄,這四個(gè)分區(qū)的記錄被稱為主要(Primary)或擴(kuò)展(Extended)分區(qū)甥材。 根據(jù)上面的圖示與說明盯另,我們可以得到幾個(gè)重點(diǎn)信息:

????其實(shí)所謂的“分區(qū)”只是針對(duì)那個(gè)64Bytes的分區(qū)表進(jìn)行設(shè)置而已!

????硬盤默認(rèn)的分區(qū)表僅能寫入四組分區(qū)信息洲赵;

????這四組分區(qū)信息我們稱為主要(Primary)或擴(kuò)展(Extended)分區(qū)鸳惯;

????分區(qū)的最小單位“通常”為柱面(cylinder)當(dāng)系統(tǒng)要寫入磁盤時(shí)板鬓,一定會(huì)參考磁盤分區(qū)表悲敷,才能針對(duì)某個(gè)分區(qū)進(jìn)行數(shù)據(jù)的處理。

咦俭令!你會(huì)不會(huì)突然想到后德,為啥要分區(qū)啊抄腔?基本上你可以這樣思考分區(qū)的角度:

1.數(shù)據(jù)的安全性:

因?yàn)槊總€(gè)分區(qū)的數(shù)據(jù)是分開的瓢湃!所以理张,當(dāng)你需要將某個(gè)分區(qū)的數(shù)據(jù)重整時(shí),例如你要將計(jì)算機(jī)中Windows的C盤重新安裝一次系統(tǒng)時(shí)绵患,可以將其他重要數(shù)據(jù)移動(dòng)到其他分區(qū)雾叭,例如將郵件、桌面數(shù)據(jù)移動(dòng)到D盤去落蝙,那么C盤重裝系統(tǒng)并不會(huì)影響到D盤织狐!所以善用分區(qū),可以讓你的數(shù)據(jù)更安全筏勒。

2.系統(tǒng)的性能考慮:

由于分區(qū)將數(shù)據(jù)集中在某個(gè)柱面的區(qū)段移迫,例如上圖當(dāng)中第一個(gè)分區(qū)位于柱面號(hào)碼1~100號(hào),如此一來當(dāng)有數(shù)據(jù)要讀取自該分區(qū)時(shí)管行,磁盤只會(huì)搜尋前面1~100的柱面范圍厨埋,由于數(shù)據(jù)集中了,將有助于數(shù)據(jù)讀取的速度與性能捐顷!所以說荡陷,分區(qū)是很重要的!

既然分區(qū)表只有記錄四組數(shù)據(jù)的空間迅涮,那么是否代表我一顆硬盤最多只能分區(qū)出四個(gè)分區(qū)废赞?當(dāng)然不是啦!有經(jīng)驗(yàn)的朋友都知道逗柴,你可以將一顆硬盤分區(qū)成十個(gè)以上的分區(qū)的蛹头!那又是如何達(dá)到的呢?在Windows/Linux系統(tǒng)中戏溺,我們是通過剛剛談到的擴(kuò)展分區(qū)(Extended)的方式來處理的啦!擴(kuò)展分區(qū)的想法是:既然第一個(gè)扇區(qū)所在的分區(qū)表只能記錄四筆數(shù)據(jù)屠尊,那我可否利用額外的扇區(qū)來記錄更多的分區(qū)信息旷祸?實(shí)際上圖示有點(diǎn)像下面這樣:

圖2.2.3、磁盤分區(qū)表的作用示意圖

Tips

實(shí)際上擴(kuò)展分區(qū)并不是只占一個(gè)區(qū)塊讼昆,而是會(huì)分布在每個(gè)分區(qū)的最前面幾個(gè)扇區(qū)來記載分區(qū)信息的托享!只是為了方便讀者記憶,鳥哥在上圖就將它簡(jiǎn)化了浸赫!有興趣的讀者可以到下面的鏈接瞧一瞧實(shí)際延伸分區(qū)的紀(jì)錄方式:

http://en.wikipedia.org/wiki/Extended_boot_record

在上圖當(dāng)中闰围,我們知道硬盤的四個(gè)分區(qū)記錄區(qū)僅使用到兩個(gè),P1為主要分區(qū)既峡,而P2則為擴(kuò)展分區(qū)羡榴。請(qǐng)注意,擴(kuò)展分區(qū)的目的是使用額外的扇區(qū)來記錄分區(qū)信息运敢,擴(kuò)展分區(qū)本身并不能被拿來格式化校仑。然后我們可以通過擴(kuò)展分區(qū)所指向的那個(gè)區(qū)塊繼續(xù)作分區(qū)的記錄忠售。

如上圖右下方那個(gè)區(qū)塊有繼續(xù)分割出五個(gè)分區(qū),這五個(gè)由擴(kuò)展分區(qū)繼續(xù)切出來的分區(qū)迄沫,就被稱為邏輯分區(qū)(logical partition)稻扬。同時(shí)注意一下,由于邏輯分區(qū)是由擴(kuò)展分區(qū)繼續(xù)分割出來的羊瘩,所以它可以使用的柱面范圍就是擴(kuò)展分區(qū)所設(shè)置的范圍喔泰佳!也就是圖中的101~400啦!

同樣的尘吗,上述的分區(qū)在Linux系統(tǒng)中的設(shè)備文件名分別如下:

P1:/dev/sda1

P2:/dev/sda2

L1:/dev/sda5

L2:/dev/sda6

L3:/dev/sda7

L4:/dev/sda8

L5:/dev/sda9

仔細(xì)看看逝她,怎么設(shè)備文件名沒有/dev/sda3與/dev/sda4呢?因?yàn)榍懊嫠膫€(gè)號(hào)碼都是保留給Primary或Extended用的嘛摇予!所以邏輯分區(qū)的設(shè)備名稱號(hào)碼就由5號(hào)開始了汽绢!這在MBR方式的分區(qū)表中是個(gè)很重要的特性,不能忘記喔侧戴!

MBR主要分區(qū)宁昭、擴(kuò)展分區(qū)與邏輯分區(qū)的特性我們作個(gè)簡(jiǎn)單的定義啰:

????主要分區(qū)與擴(kuò)展分區(qū)最多可以有四個(gè)(硬盤的限制);

????擴(kuò)展分區(qū)最多只能有一個(gè)(操作系統(tǒng)的限制)酗宋;

????邏輯分區(qū)是由擴(kuò)展分區(qū)持續(xù)切割出來的分區(qū)积仗;

????能夠被格式化后,作為數(shù)據(jù)存取的分區(qū)為主要分區(qū)與邏輯分區(qū)蜕猫。擴(kuò)展分區(qū)無法格式化寂曹;

????邏輯分區(qū)的數(shù)量依操作系統(tǒng)而不同,在Linux系統(tǒng)中SATA硬盤已經(jīng)可以突破63個(gè)以上的分區(qū)限制回右。

事實(shí)上隆圆,分區(qū)是個(gè)很麻煩的東西,因?yàn)樗且灾鏋閱挝坏摹斑B續(xù)”磁盤空間翔烁, 且擴(kuò)展分區(qū)又是個(gè)類似獨(dú)立的磁盤空間渺氧,所以在分區(qū)的時(shí)候得要特別注意。我們舉下面的例子來解釋一下好了:

例題:

在Windows操作系統(tǒng)當(dāng)中蹬屹,如果你想要將D與E盤整合成為一個(gè)新的分區(qū)侣背,而如果有兩種分區(qū)的情況如下圖所示,圖中的特殊顏色區(qū)塊為D與E盤的示意慨默,請(qǐng)問這兩種方式是否均可將D與E整合成為一個(gè)新的分區(qū)贩耐?

圖2.2.4、磁盤空間整合示意圖

答:

上圖可以整合:因?yàn)樯蠄D的D與E同屬于擴(kuò)展分區(qū)內(nèi)的邏輯分區(qū)厦取,因此只要將兩個(gè)分區(qū)刪除潮太,然后再重新創(chuàng)建一個(gè)新的分區(qū),就能夠在不影響其他分區(qū)的情況下蒜胖,將兩個(gè)分區(qū)的容量整合成為一個(gè)消别。

下圖不可整合:因?yàn)镈與E分屬主分區(qū)與邏輯分區(qū)抛蚤,兩者不能夠整合在一起。除非將擴(kuò)展分區(qū)破壞掉后再重新分區(qū)寻狂。但如此一來會(huì)影響到所有的邏輯分區(qū)岁经,要注意的是:如果擴(kuò)展分區(qū)被破壞,所有邏輯分區(qū)將會(huì)被刪除蛇券。因?yàn)檫壿嫹謪^(qū)的信息都記錄在擴(kuò)展分區(qū)里面嘛缀壤!

由于第一個(gè)扇區(qū)所記錄的分區(qū)表與MBR是這么的重要,幾乎只要讀取硬盤都會(huì)先由這個(gè)扇區(qū)先讀起纠亚。因此塘慕,如果整顆硬盤的第一個(gè)扇區(qū)(就是MBR與partition table所在的扇區(qū))物理實(shí)體壞掉了,那這個(gè)硬盤大概就沒有用了蒂胞!因?yàn)橄到y(tǒng)如果找不到分區(qū)表图呢,怎么知道如何讀取柱面區(qū)間呢?您說是吧骗随!下面還有一些例題您可以思考看看:

例題:

如果我想將一顆大硬盤“暫時(shí)”分區(qū)成為四個(gè)partitions蛤织,同時(shí)還有其他的剩余容量可以讓我在未來的時(shí)候進(jìn)行規(guī)劃,我能不能分區(qū)出四個(gè)Primary鸿染?若不行指蚜,那么你建議該如何分區(qū)?

答:

由于Primary+Extended最多只能有四個(gè)涨椒,其中Extended最多只能有一個(gè)摊鸡,這個(gè)例題想要分區(qū)出四個(gè)分區(qū)且還要預(yù)留剩余容量, 因此P+P+P+P的分區(qū)方式是不適合的蚕冬。因?yàn)槿绻褂玫剿膫€(gè)P免猾,則即使硬盤還有剩余容量,因?yàn)闊o法再繼續(xù)分區(qū)囤热,所 以剩余容量就被浪費(fèi)掉了掸刊。

假設(shè)你想要將所有的四個(gè)記錄都用光,那么P+P+P+E是比較適合的赢乓。所以可以用的四個(gè)partitions有3個(gè)主要及一個(gè)邏輯分區(qū),剩余的容量在擴(kuò)展分區(qū)中石窑。

如果你要分區(qū)超過4個(gè)以上時(shí)牌芋,一定要有Extended分區(qū),而且必須將所有剩下的空間都分配給Extended松逊,然后再以logical的分區(qū)來規(guī)劃Extended的空間躺屁。另外,考慮到磁盤的連續(xù)性经宏,一般建議將Extended的柱面號(hào)碼分配在最后面的柱面內(nèi)犀暑。

例題:

假如我的PC有兩顆SATA硬盤驯击,我想在第二顆硬盤分區(qū)出6個(gè)可用的分區(qū)(可以被格式化來存取數(shù)據(jù)之用),那每個(gè)分區(qū)在Linux系統(tǒng)下的設(shè)備文件名是什么耐亏?且分區(qū)類型各是什么徊都?至少寫出兩種不同的分區(qū)方式。

答:

由于P(primary)+E(extended)最多只能有四個(gè)广辰,其中E最多只能有一個(gè)∠窘茫現(xiàn)在題目要求6個(gè)可用的分區(qū),因此不可能分出四個(gè)P择吊。下面我們假設(shè)兩種環(huán)境李根,一種是將前四號(hào)全部用完,一種是僅花費(fèi)一個(gè)P及一個(gè)E的情況:

P+P+P+E的環(huán)境:

圖2.2.5几睛、分區(qū)示意圖

實(shí)際可用的是/dev/sdb1, /dev/sdb2, /dev/sdb3, /dev/sdb5,/dev/sdb6, /dev/sdb7這六個(gè)房轿,至于/dev/sdb4這個(gè)擴(kuò)展分區(qū)本身僅是提供來給邏輯分區(qū)創(chuàng)建之用。

P+E的環(huán)境:

圖2.2.6所森、分區(qū)示意圖

注意到了嗎囱持?因?yàn)?~4號(hào)是保留給主要/擴(kuò)展分區(qū)的,因此第一個(gè)邏輯分區(qū)一定是由5號(hào)開始的必峰!再次強(qiáng)調(diào)昂樘啤!所以/dev/sdb3, /dev/sdb4就會(huì)被保留下來沒有用到了吼蚁!

MBR分區(qū)表除了上述的主分區(qū)凭需、擴(kuò)展分區(qū)、邏輯分區(qū)需要注意之外肝匆,由于每組分區(qū)表僅有16Bytes而已粒蜈,因此可紀(jì)錄的信息真的是相當(dāng)有限的!所以旗国,在過去MBR分區(qū)表的限制中經(jīng)晨莶溃可以發(fā)現(xiàn)如下的問題:

????操作系統(tǒng)無法讀取到2.2T以上的磁盤容量!

????MBR僅有一個(gè)區(qū)塊能曾,若被破壞后度硝,經(jīng)常無法或很難恢復(fù)。

????MBR內(nèi)的存放開機(jī)管理程序的區(qū)塊僅446 Bytes寿冕,無法容納較多的程序代碼蕊程。

這個(gè)2.2TB限制的現(xiàn)象在早期并不會(huì)很嚴(yán)重。但是驼唱,近年來硬盤廠商動(dòng)不動(dòng)推出的磁盤容量就高達(dá)好幾個(gè)TB的容量藻茂!目前(2015)單一磁盤最大容量甚至高達(dá)8TB了!如果使用磁盤陣列的系統(tǒng),像鳥哥的一組系統(tǒng)中辨赐,用了24顆4TB磁盤搭建出磁盤陣列优俘,那在Linux下面就會(huì)看到有一顆70TB左右的磁盤!如果使用MBR的話…那得要2TB/2TB的割下去掀序,雖然Linux kernel現(xiàn)在已經(jīng)可以通過某些機(jī)制讓磁盤分區(qū)多過63個(gè)以上帆焕,但是這樣就得要割出將近40個(gè)分區(qū)~真要命…為了解決這個(gè)問題,所以后來就有GPT這個(gè)磁盤分區(qū)的格式出現(xiàn)了森枪!

????GUID partitiontable, GPT磁盤分區(qū)表(注1)

因?yàn)檫^去一個(gè)扇區(qū)大小就是512 Bytes而已视搏,不過目前已經(jīng)有4K的扇區(qū)設(shè)計(jì)出現(xiàn)!為了兼容于所有的磁盤县袱,因此在扇區(qū)的定義上面浑娜,大多會(huì)使用所謂的邏輯區(qū)塊位址(Logical Block Address,LBA)來處理。GPT將磁盤所有區(qū)塊以此LBA(默認(rèn)為512 Bytes喔J缴ⅰ)來規(guī)劃筋遭,而第一個(gè)LBA稱為L(zhǎng)BA0(從0開始編號(hào))。

與MBR僅使用第一個(gè)512 Bytes區(qū)塊來記錄不同暴拄,GPT使用了34個(gè)LBA區(qū)塊來記錄分區(qū)信息漓滔!同時(shí)與過去MBR僅有一個(gè)區(qū)塊,被干掉就死光光的情況不同乖篷,GPT除了前面34個(gè)LBA之外响驴,整個(gè)磁盤的最后33個(gè)LBA也拿來作為另一個(gè)備份!這樣或許會(huì)比較安全些吧撕蔼!詳細(xì)的結(jié)構(gòu)有點(diǎn)像下面的模樣:

圖2.2.7豁鲤、GPT分區(qū)表的結(jié)構(gòu)示意圖

上述圖示的解釋說明如下:

LBA0(MBR兼容區(qū)塊)

與MBR模式相似的,這個(gè)兼容區(qū)塊也分為兩個(gè)部份鲸沮,一個(gè)就是跟之前 446Bytes相似的區(qū)塊琳骡,儲(chǔ)存了第一階段的啟動(dòng)管理程序!而在原本的分區(qū)表的紀(jì)錄區(qū)內(nèi)讼溺,這個(gè)兼容模式僅放入一個(gè)特殊標(biāo)志的分區(qū)楣号,用來表示此磁盤為GPT格式之意。而不懂GPT分區(qū)表的磁盤管理程序怒坯,就不會(huì)認(rèn)識(shí)這顆磁盤炫狱,除非用戶有特別要求要處理這顆磁盤,否則該管理軟件不能修改此分區(qū)信息剔猿,進(jìn)一步保護(hù)了此磁盤喔毕荐!

LBA1(GPT表頭紀(jì)錄)

這個(gè)部份記錄了分區(qū)表本身的位置與大小,同時(shí)記錄了備份用的GPT分區(qū)(就是前面談到的在最后33個(gè)LBA區(qū)塊)放置的位置艳馒,同時(shí)放置了分區(qū)表的校驗(yàn)機(jī)制碼(CRC32),操作系統(tǒng)可以根據(jù)這個(gè)校驗(yàn)碼來判斷GPT是否正確。若有錯(cuò)誤弄慰,還可以通過這個(gè)紀(jì)錄區(qū)來取得備份的GPT(磁盤最后的那個(gè)備份區(qū)塊)來恢復(fù)GPT的正常運(yùn)行第美!

LBA2-33(實(shí)際紀(jì)錄分區(qū)信息處)

從LBA2區(qū)塊開始,每個(gè)LBA都可以記錄4個(gè)分區(qū)紀(jì)錄陆爽,所以在默認(rèn)的情況下什往,總共可以有4*32 =128個(gè)分區(qū)紀(jì)錄喔!因?yàn)槊總€(gè)LBA有512 Bytes慌闭,因此每個(gè)紀(jì)錄用到128 Bytes的空間别威,除了每個(gè)紀(jì)錄所需要的識(shí)別碼與相關(guān)的紀(jì)錄之外,GPT在每個(gè)紀(jì)錄中分別提供了64 bits來記載開始/結(jié)束的扇區(qū)號(hào)碼驴剔,因此省古,GPT分區(qū)表對(duì)于單一分區(qū)來說,它的最大容量限制就會(huì)在“264* 512 Bytes = 263* 1 KBytes = 233*TB = 8 ZB”丧失,要注意1ZB = 230TB啦豺妓!你說有沒有夠大了?

現(xiàn)在GPT分區(qū)默認(rèn)可以提供多達(dá)128筆紀(jì)錄布讹,而在Linux本身的核心設(shè)備紀(jì)錄中琳拭,針對(duì)單一磁盤來說,雖然過去最多只能到達(dá)15個(gè)分區(qū)描验,不過由于Linux kernel通過udev等方式的處理白嘁,現(xiàn)在Linux也已經(jīng)沒有這個(gè)限制在了!此外GPT分區(qū)已經(jīng)沒有所謂的主膘流、擴(kuò)展絮缅、邏輯分區(qū)的概念,既然每個(gè)紀(jì)錄都可以獨(dú)立存在睡扬, 當(dāng)然每個(gè)都可以視為是主分區(qū)盟蚣!每一個(gè)分區(qū)都可以拿來格式化使用喔!

Tips

鳥哥一直以為核心認(rèn)識(shí)的設(shè)備主要/次要號(hào)碼就一定是連續(xù)的卖怜,因此一直沒有注意到由于新的機(jī)制的關(guān)系屎开,分區(qū)已經(jīng)可以突破核心限制的狀況!感謝大陸網(wǎng)友微博代號(hào)“學(xué)習(xí)日記博客”的提醒马靠!此外奄抽,為了查詢正確性,鳥哥還真的有注意到網(wǎng)絡(luò)上有朋友實(shí)際拿一顆磁盤分割出130個(gè)以上的分區(qū)甩鳄,結(jié)果他發(fā)現(xiàn)120個(gè)以前的分區(qū)均可以格式化使用逞度,但是130之后的似乎不太能夠使用了!或許跟默認(rèn)的GPT共128個(gè)號(hào)碼有關(guān)妙啃!

雖然新版的Linux大多認(rèn)識(shí)GPT分區(qū)表档泽,沒辦法俊戳,我們server常常需要比較大容量的磁盤嘛!不過馆匿,在磁盤管理工具上面抑胎,fdisk這個(gè)老牌的軟件并不認(rèn)識(shí)GPT喔!要使用GPT的話渐北,得要操作類似gdisk或者是parted指令才行阿逃!這部份我們會(huì)在第二篇再來談一談蛋逾。另外判导,啟動(dòng)管理程序方面,grub第一版并不認(rèn)識(shí)GPT喔螃成!得要grub2以后才會(huì)認(rèn)識(shí)的呕臂!啟動(dòng)管理程序這部份則第五篇再來談喔破托!

并不是所有的操作系統(tǒng)都可以讀取GPT的磁盤分區(qū)格式喔!同時(shí)诵闭,也不是所有的硬件都可以支持GPT格式喔炼团!是否能夠讀寫GPT格式又與開機(jī)的檢測(cè)程序有關(guān)!那開機(jī)的檢測(cè)程序又分成啥鬼東西呢疏尿?就是BIOS與UEFI啦瘟芝!那這兩個(gè)又是啥東西?就讓我們來聊一聊褥琐!

2.2.3 開機(jī)過程中的BIOS與UEFI開機(jī)檢測(cè)程序

我們?cè)谟?jì)算機(jī)概論里面談到了锌俱,沒有執(zhí)行軟件的硬件是沒有用的,除了會(huì)電人之外…敌呈,而為了計(jì)算機(jī)硬件系統(tǒng)的資源合理分配贸宏,因此有了操作系統(tǒng)這個(gè)系統(tǒng)軟件的產(chǎn)生。由于操作系統(tǒng)會(huì)控制所有的硬件并且提供核心功能磕洪,因此我們的計(jì)算機(jī)就能夠認(rèn)識(shí)硬盤內(nèi)的文件系統(tǒng)吭练,并且進(jìn)一步的讀取硬盤內(nèi)的軟件文件與執(zhí)行該軟件來完成各項(xiàng)軟件的執(zhí)行目的。

問題是析显,你有沒有發(fā)現(xiàn)鲫咽,既然操作系統(tǒng)也是軟件,那么我的計(jì)算機(jī)又是如何認(rèn)識(shí)這個(gè)操作系統(tǒng)軟件并且執(zhí)行它的谷异?明明開機(jī)時(shí)我的計(jì)算機(jī)還沒有任何軟件系統(tǒng)分尸,那它要如何讀取硬盤內(nèi)的操作系統(tǒng)文件啊歹嘹?嘿嘿箩绍!這就得要牽涉到計(jì)算機(jī)的啟動(dòng)流程了!下面就讓我們來談一談這個(gè)啟動(dòng)流程吧尺上!

基本上材蛛,目前的主機(jī)系統(tǒng)在載入硬件驅(qū)動(dòng)方面的程序圆到,主要有早期的BIOS與新的UEFI兩種機(jī)制,我們分別來談?wù)剢?/p>

BIOS搭配MBR/GPT的啟動(dòng)流程

在計(jì)算機(jī)概論里面我們有談到那個(gè)可愛的BIOS與CMOS兩個(gè)東西仰税,CMOS是記錄各項(xiàng)硬件參數(shù)且嵌入在主板上面的儲(chǔ)存器构资,BIOS則是一個(gè)寫入到主板上的一個(gè)固件(再次說明,固件就是寫入到硬件上的一個(gè)軟件程序)陨簇。這個(gè)BIOS就是在開機(jī)的時(shí)候,計(jì)算機(jī)系統(tǒng)會(huì)主動(dòng)執(zhí)行的第一個(gè)程序了迹淌!

接下來BIOS會(huì)去分析計(jì)算機(jī)里面有哪些儲(chǔ)存設(shè)備河绽,我們以硬盤為例,BIOS會(huì)依據(jù)使用者的設(shè)置去取得能夠啟動(dòng)的硬盤唉窃,并且到該硬盤里面去讀取第一個(gè)扇區(qū)的MBR位置耙饰。MBR這個(gè)僅有446 Bytes的硬盤容量里面會(huì)放置最基本的啟動(dòng)管理程序, 此時(shí)BIOS就功成圓滿纹份,而接下來就是MBR內(nèi)的啟動(dòng)管理程序的工作了苟跪。

這個(gè)啟動(dòng)管理程序的目的是載入(load)核心文件,由于啟動(dòng)管理程序是操作系統(tǒng)在安裝的時(shí)候所提供的蔓涧,所以它會(huì)認(rèn)識(shí)硬盤內(nèi)的文件系統(tǒng)格式件已,因此就能夠讀取核心文件,然后接下來就是核心文件的工作元暴,啟動(dòng)管理程序與BIOS也功成圓滿篷扩,將之后的工作就交給大家所知道的操作系統(tǒng)啦!

簡(jiǎn)單的說茉盏,整個(gè)開機(jī)流程到操作系統(tǒng)之前的動(dòng)作應(yīng)該是這樣的:

1. BIOS:開機(jī)主動(dòng)執(zhí)行的固件鉴未,會(huì)認(rèn)識(shí)第一個(gè)可啟動(dòng)的設(shè)備;

2. MBR:第一個(gè)可啟動(dòng)設(shè)備的第一個(gè)扇區(qū)內(nèi)的主引導(dǎo)記錄區(qū)塊鸠姨,內(nèi)含啟動(dòng)管理程序铜秆;

3.啟動(dòng)管理程序(bootloader):一支可讀取核心文件來執(zhí)行的軟件;

4.核心文件:開始操作系統(tǒng)的功能…

第二點(diǎn)要注意讶迁,如果你的分區(qū)表為GPT格式的話连茧,那么BIOS也能夠從LBA0的 MBR兼容區(qū)塊讀取第一階段的啟動(dòng)管理程序碼,如果你的啟動(dòng)管理程序能夠認(rèn)識(shí)GPT的話添瓷,那么使用BIOS同樣可以讀取到正確的操作系統(tǒng)核心喔梅屉!換句話說,如果啟動(dòng)管理程序不懂GPT鳞贷,例如Windows XP的環(huán)境坯汤,那自然就無法讀取核心文件,啟動(dòng)就失敗了搀愧!

Tips

由于LBA0僅提供第一階段的啟動(dòng)管理程序碼惰聂,因此如果你使用類似grub的啟動(dòng)管理程序的話疆偿,那么就得要額外分區(qū)出一個(gè)“BIOS boot”的分區(qū),這個(gè)分區(qū)才能夠放置其他啟動(dòng)過程所需的程序碼搓幌!在CentOS當(dāng)中杆故,這個(gè)分區(qū)通常占用2MB左右而已。

由上面的說明我們會(huì)知道溉愁,BIOS與MBR都是硬件本身會(huì)支持的功能处铛,至于Bootloader則是操作系統(tǒng)安裝在MBR上面的一套軟件了。由于MBR僅有446 Bytes而已拐揭,因此這個(gè)啟動(dòng)管理程序是非常小而美的撤蟆。這個(gè)bootloader的主要任務(wù)有下面這些項(xiàng)目:

提供菜單:使用者可以選擇不同的啟動(dòng)項(xiàng)目,這也是多重啟動(dòng)的重要功能堂污!

載入核心文件:直接指向可啟動(dòng)的程序區(qū)段來開始操作系統(tǒng)家肯;

轉(zhuǎn)交其他loader:將啟動(dòng)管理功能轉(zhuǎn)交給其他loader負(fù)責(zé)。

上面前兩點(diǎn)還容易理解盟猖,但是第三點(diǎn)很有趣喔讨衣!那表示你的計(jì)算機(jī)系統(tǒng)里面可能具有兩個(gè)以上的啟動(dòng)管理程序呢!有可能嗎式镐?我們的硬盤不是只有一個(gè)MBR而已反镇?是沒錯(cuò)啦!但是啟動(dòng)管理程序除了可以安裝在MBR之外碟案,還可以安裝在每個(gè)分區(qū)的啟動(dòng)扇區(qū)(boot sector)喔愿险?什么?分區(qū)還有各自的啟動(dòng)扇區(qū)喔价说?沒錯(cuò)傲究鳌!這個(gè)特色才能造就“多重啟動(dòng)”的功能氨钅俊扮叨!

我們舉一個(gè)例子來說,假設(shè)你的個(gè)人計(jì)算機(jī)只有一個(gè)硬盤领迈,里面切成四個(gè)分區(qū)彻磁,其中第一、二分區(qū)分別安裝了Windows及Linux狸捅,你要如何在開機(jī)的時(shí)候選擇用Windows還是Linux啟動(dòng)呢衷蜓?假設(shè)MBR內(nèi)安裝的是可同時(shí)認(rèn)識(shí)Windows/Linux操作系統(tǒng)的啟動(dòng)管理程序,那么整個(gè)流程可以圖示如下:

圖2.2.8尘喝、啟動(dòng)管理程序的工作執(zhí)行示意圖

在上圖中我們可以發(fā)現(xiàn)磁浇,MBR的啟動(dòng)管理程序提供兩個(gè)菜單,菜單一(M1)可以直接載入Windows的核心文件來啟動(dòng)朽褪;菜單二(M2)則是將啟動(dòng)管理工作交給第二個(gè)分區(qū)的啟動(dòng)扇區(qū)(boot sector)置吓。當(dāng)使用者在啟動(dòng)的時(shí)候選擇菜單二時(shí)无虚,那么整個(gè)啟動(dòng)管理工作就會(huì)交給第二分區(qū)的啟動(dòng)管理程序了。當(dāng)?shù)诙€(gè)啟動(dòng)管理程序啟動(dòng)后衍锚,該啟動(dòng)管理程序內(nèi)(上圖中)僅有一個(gè)啟動(dòng)菜單友题,因此就能夠使用Linux的核心文件來啟動(dòng)啰。這就是多重啟動(dòng)的工作情況啦戴质!我們將上圖作個(gè)總結(jié):

????每個(gè)分區(qū)都擁有自己的啟動(dòng)扇區(qū)(bootsector)度宦;

????圖中的系統(tǒng)盤為第一及第二分區(qū),實(shí)際可啟動(dòng)的核心文件是放置到各分區(qū)內(nèi)的告匠!

????loader只會(huì)認(rèn)識(shí)自己的系統(tǒng)盤內(nèi)的可啟動(dòng)核心文件斗埂,以及其他loader而已;

????loader可直接指向或者是間接將管理權(quán)轉(zhuǎn)交給另一個(gè)管理程序凫海。

那現(xiàn)在請(qǐng)你想一想,為什么人家常常說:“如果要安裝多重啟動(dòng)男娄,最好先安裝Windows再安裝Linux”呢行贪?這是因?yàn)椋?/p>

????Linux在安裝的時(shí)候,你可以選擇將啟動(dòng)管理程序安裝在MBR或各自分區(qū)的啟動(dòng)扇區(qū)模闲,而且Linux的loader可以手動(dòng)設(shè)置菜單(就是上圖的M1, M2…)建瘫,所以你可以在Linux的boot loader里面加入Windows啟動(dòng)的選項(xiàng);

????Windows在安裝的時(shí)候尸折,它的安裝程序會(huì)主動(dòng)的覆蓋掉MBR以及自己所在分區(qū)的啟動(dòng)扇區(qū)啰脚,你沒有選擇的機(jī)會(huì),而且它沒有讓我們自己選擇菜單的功能实夹。

因此橄浓,如果先安裝Linux再安裝Windows的話,那MBR的啟動(dòng)管理程序就只會(huì)有Windows的項(xiàng)目亮航,而不會(huì)有Linux的項(xiàng)目(因?yàn)樵驹贛BR內(nèi)的Linux的啟動(dòng)管理程序就會(huì)被覆蓋掉)荸实。那需要重新安裝Linux一次嗎?當(dāng)然不需要缴淋,你只要用盡各種方法來處理MBR的內(nèi)容即可准给。例如利用Linux的救援模式來挽救MBR啊重抖!

Tips

啟動(dòng)管理程序與Boot sector的概念是非常重要的露氮,我們會(huì)在第十九章分別介紹,您在這里只要先對(duì)于(1)啟動(dòng)需要啟動(dòng)管理程序钟沛,而(2)啟動(dòng)管理程序可以安裝在MBR及Boot Sector兩處這兩個(gè)概念有基本的認(rèn)識(shí)即可畔规,一開始就背太多東西會(huì)很混亂啦!

UEFI BIOS搭配GPT啟動(dòng)的流程(注2)

我們現(xiàn)在知道GPT可以提供到64 bit的尋址讹剔,然后也能夠使用較大的區(qū)塊來處理啟動(dòng)管理程序油讯。但是BIOS其實(shí)不懂GPT耶详民!還得要通過GPT提供兼容模式才能夠讀寫這個(gè)磁盤設(shè)備~而且BIOS僅為16位的程序,在與現(xiàn)階段新的操作系統(tǒng)接軌方面有點(diǎn)弱掉了陌兑!為了解決這個(gè)問題沈跨,因此就有了UEFI(Unified Extensible Firmware Interface)這個(gè)統(tǒng)一可擴(kuò)展固件接口的產(chǎn)生。

UEFI主要是想要取代BIOS這個(gè)固件接口兔综,因此我們也稱UEFI為UEFIBIOS就是了饿凛。UEFI使用C程序語言,比起使用匯編語言的傳統(tǒng)BIOS要更容易開發(fā)软驰!也因?yàn)槭褂肅語言來撰寫涧窒,因此如果開發(fā)者夠厲害,甚至可以在UEFI啟動(dòng)階段就讓該系統(tǒng)了解TCP/IP而直接上網(wǎng)锭亏!根本不需要進(jìn)入操作系統(tǒng)耶纠吴!這讓小型系統(tǒng)的開發(fā)充滿各式各樣的可能性!

基本上慧瘤,傳統(tǒng)BIOS與UEFI的差異可以用T客幫雜志匯整的表格來說明(注2):

比較項(xiàng)目????????????????????????傳統(tǒng)BIOS????????????????????????????UEFI

使用程序語言? ? ? ? ? ? ? ? 匯編語言? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?C語言

硬件資源控制????????????????使用中斷(IRQ)管理????????????使用驅(qū)動(dòng)程序與協(xié)議

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 不可變的內(nèi)存存取

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 不可變得輸入/輸出存取

處理器運(yùn)行環(huán)境????????????16位CPU????????????????????????????????保護(hù)模式

擴(kuò)充方式????????????????????????通過IRQ連接? ? ? ? ? ? ? ? ? ? ? ? ?直接載入驅(qū)動(dòng)程序

第三方廠商支持? ? ? ? ? ? ? 較差? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 較佳且可支持多平臺(tái)

圖形化能力? ? ? ? ? ? ? ? ? ? ?較差? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 較佳

內(nèi)置簡(jiǎn)化操作系統(tǒng)前環(huán)境????不支持? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 支持

從上面我們可以發(fā)現(xiàn)戴已,與傳統(tǒng)的BIOS不同,UEFI簡(jiǎn)直就像是一個(gè)低端的操作系統(tǒng)~甚至于連主板上面的硬件資源的管理锅减,也跟操作系統(tǒng)相當(dāng)類似糖儡,只需要載入驅(qū)動(dòng)程序即可控制操作。同時(shí)由于程控得宜怔匣,一般來說握联,使用UEFI接口的主機(jī),在開機(jī)的速度上要比BIOS來的快上許多每瞒!因此很多人都覺得UEFI似乎可以發(fā)展成為一個(gè)很有用的操作系統(tǒng)耶~不過金闽,關(guān)于這個(gè),你無須擔(dān)心未來除了Linux之外独泞,還得要增加學(xué)一個(gè)UEFI的操作系統(tǒng)啦呐矾!為啥呢?

UEFI當(dāng)初在發(fā)展的時(shí)候懦砂,就制定一些現(xiàn)在在里頭蜒犯,包括硬件資源的管理使用輪詢(polling)的方式來管理,與BIOS直接了解CPU以中斷的方式來管理比較荞膘,這種polling的效率是稍微慢一些的罚随,另外,UEFI并不能提供完整的高速緩存功能羽资,因此執(zhí)行效率也沒有辦法提升淘菩。不過由于載入所有的UEFI驅(qū)動(dòng)程序之后,系統(tǒng)會(huì)打開一個(gè)類似操作系統(tǒng)的shell環(huán)境,使用者可以此環(huán)境中執(zhí)行任意的UEFI應(yīng)用程序潮改,而且效果比MSDOS更好哩狭郑。

所以啰,因?yàn)樾ЧA麗但性能不佳汇在,因此這個(gè)UEFI大多用來作為啟動(dòng)操作系統(tǒng)之前的硬件檢測(cè)翰萨、啟動(dòng)管理、軟件設(shè)置等目的糕殉,基本上是比較難的亩鬼。同時(shí),當(dāng)載入操作系統(tǒng)后阿蝶,一般來說雳锋,UEFI就會(huì)停止工作,并將系統(tǒng)交給操作系統(tǒng)羡洁,這與早期的BIOS差異不大玷过。比較特別的是,某些特定的環(huán)境下筑煮,這些UEFI程序是可以部份繼續(xù)執(zhí)行的冶匹,以協(xié)助某些操作系統(tǒng)無法找到特定設(shè)備時(shí),該設(shè)備還是可以持續(xù)運(yùn)行咆瘟。

此外,由于過去cracker經(jīng)常借由BIOS開機(jī)階段來破壞系統(tǒng)诽里,并取得系統(tǒng)的控制權(quán)袒餐,因此UEFI加入了一個(gè)所謂的安全啟動(dòng)(secureboot)機(jī)制,這個(gè)機(jī)制代表著即將啟動(dòng)的操作系統(tǒng)必須要被UEFI所驗(yàn)證谤狡,否則就無法順利啟動(dòng)灸眼!微軟用了很多這樣的機(jī)制來管理硬件。不過加入這個(gè)機(jī)制后墓懂,許多的操作系統(tǒng)焰宣,包括Linux,就很有可能無法順利啟動(dòng)喔捕仔!所以匕积,某些時(shí)刻,你可能得要將UEFI的secureboot功能關(guān)閉榜跌,才能夠順利的進(jìn)入Linux哩I了簟(這一點(diǎn)讓自由軟件工作者相當(dāng)感冒啦!)

另外钓葫,與BIOS模式相比悄蕾,雖然UEFI可以直接取得GPT的分區(qū)表,不過最好依舊擁有BIOS boot的分區(qū)支持础浮,同時(shí)帆调,為了與Windows兼容奠骄,并且提供其他第三方廠商所使用的UEFI應(yīng)用程序儲(chǔ)存的空間,你必須要格式化一個(gè)vfat的文件系統(tǒng)番刊,大約 提供512MB到1G左右的容量含鳞,以讓其他UEFI執(zhí)行較為方便。

Tips

由于UEFI已經(jīng)克服了BIOS的1024柱面的問題撵枢,因此你的啟動(dòng)管理程序與核心可以放置在磁盤開始的前2TB位置內(nèi)即可民晒!加上之前提到的BIOS boot以及UEFI支持的分區(qū),基本上你的/boot目錄幾乎都是/dev/sda3之后的號(hào)碼了锄禽!這樣啟動(dòng)還是沒有問題的潜必!所以要注意喔!與以前熟悉的分區(qū)狀況已經(jīng)不同沃但,/boot不再是/dev/sda1啰磁滚!很有趣吧!

2.2.4 Linux安裝模式下宵晚,磁盤分區(qū)的選擇(極重要)

在 Windows系統(tǒng)重裝之前垂攘,你可能都會(huì)事先考慮,到底系統(tǒng)盤C盤要有多少容量淤刃?而數(shù)據(jù)盤D盤又要給多大容量等等晒他,然后實(shí)際安裝的時(shí)候,你會(huì)發(fā)現(xiàn)到其實(shí)C盤之前會(huì)有個(gè)100MB的分區(qū)被獨(dú)立出來~所以實(shí)際上你就會(huì)有三個(gè)分區(qū)就是了逸贾。那Linux下面又該如何設(shè)計(jì)類似的東西呢陨仅?

目錄樹結(jié)構(gòu)(directory tree)

我們前面有談過Linux內(nèi)的所有數(shù)據(jù)都是以文件的形態(tài)來呈現(xiàn)的,所以啰铝侵,整個(gè)Linux系統(tǒng)最重要的地方就是在于目錄樹架構(gòu)灼伤。所謂的目錄樹架構(gòu)(directory tree)就是以根目錄為主,然后向下呈現(xiàn)分支狀的目錄結(jié)構(gòu)的一種文件架構(gòu)咪鲜。所以狐赡,整個(gè)目錄樹架構(gòu)最重要的就是那個(gè)根目錄(rootdirectory),這個(gè)根目錄的表示方法為一條斜線“/”疟丙,所有的文件都與目錄樹有關(guān)颖侄。目錄樹的呈現(xiàn)方式如下圖所示:

圖2.2.9、目錄樹相關(guān)性示意圖

如上圖所示享郊,所有的文件都是由根目錄(/)衍生來的发皿,而子目錄之下還能夠有其他的數(shù)據(jù)存在。上圖中長(zhǎng)方形為目錄拂蝎,波浪形則為文件穴墅。那當(dāng)我們想要取得mydata那個(gè)文件時(shí),系統(tǒng)就得由根目錄開始找,然后找到home接下來找到dmtsai玄货,最終的文件名為:/home/dmtsai/mydata的意思皇钞。

我們現(xiàn)在知道整個(gè)Linux系統(tǒng)使用的是目錄樹架構(gòu),但是我們的文件數(shù)據(jù)其實(shí)是放置在磁盤分區(qū)當(dāng)中的松捉,現(xiàn)在的問題是“如何結(jié)合目錄樹的架構(gòu)與磁盤內(nèi)的數(shù)據(jù)”呢夹界?這個(gè)時(shí)候就牽扯到“掛載(mount)”的問題啦!

文件系統(tǒng)與目錄樹的關(guān)系(掛載)

所謂的“掛載”就是利用一個(gè)目錄當(dāng)成進(jìn)入點(diǎn)隘世,將磁盤分區(qū)的數(shù)據(jù)放置在該目錄下可柿;也就是說,進(jìn)入該目錄就可以讀取該分區(qū)的意思丙者。這個(gè)動(dòng)作我們稱為“掛載”复斥,那個(gè)進(jìn)入點(diǎn)的目錄我們稱為“掛載點(diǎn)”。由于整個(gè)Linux系統(tǒng)最重要的是根目錄械媒,因此根目錄一定需要掛載到某個(gè)分區(qū)的目锭。至于其他的目錄則可依使用者自己的需求來掛載到不同的分區(qū)。我們以下圖來作為一個(gè)說明:

圖2.2.10纷捞、目錄樹與分區(qū)之間的相關(guān)性

上圖中假設(shè)我的硬盤分為兩個(gè)分區(qū)痢虹,partition 1是掛載到根目錄,至于partition2則是掛載到/home這個(gè)目錄主儡。這也就是說奖唯,當(dāng)我的數(shù)據(jù)放置在/home內(nèi)的各子目錄時(shí),數(shù)據(jù)是放置到partition 2的糜值,如果不是放在/home下面的目錄臭埋,那么數(shù)據(jù)就會(huì)被放置到partition 1了!

Tips

Windows也是用掛載的觀念巴涡!鳥哥上課經(jīng)常談到的例子就是畅蹂,當(dāng)你拿USB磁盤放置到你的Windows時(shí)健无,系統(tǒng)會(huì)偵測(cè)到一個(gè)F盤好了,那你想要讀取USB的數(shù)據(jù)液斜,要去哪里袄巯汀?當(dāng)然就去F啰少漆!同樣的這顆USB臼膏,當(dāng)你拿到學(xué)校的Windows時(shí),卻顯示的是H盤好了示损,那你要讀取USB的數(shù)據(jù)還是去F盤嗎渗磅?當(dāng)然不是,你會(huì)去H盤啊始鱼!這個(gè)“設(shè)備與磁盤分區(qū)對(duì)應(yīng)的關(guān)系仔掸,就是Windows概念下的掛載”啦!這樣說医清,有沒有比較好理解起暮?

其實(shí)判斷某個(gè)文件在哪個(gè)partition下面是很簡(jiǎn)單的,通過反向追蹤即可会烙。以上圖來說负懦,當(dāng)我想要知道/home/vbird/test這個(gè)文件在哪個(gè)partition時(shí),由test --> vbird--> home --> /柏腻,看那個(gè)“進(jìn)入點(diǎn)”先被查到那就是使用的進(jìn)入點(diǎn)了纸厉。 所以test使用的是/home這個(gè)進(jìn)入點(diǎn)而不是/喔!

例題:

現(xiàn)在讓我們來想一想葫盼,我的計(jì)算機(jī)系統(tǒng)如何讀取光盤內(nèi)的數(shù)據(jù)呢残腌?在Windows里面使用的是“光驅(qū)”的代號(hào)方式處理(假設(shè)為E盤時(shí)),但在Linux下面我們依舊使用目錄樹喔贫导!在默認(rèn)的情況下抛猫,Linux是將光驅(qū)的數(shù)據(jù)放置到/media/cdrom里頭去的。如果光盤片里面有個(gè)文件文件名為“我的文件”時(shí)孩灯,那么這個(gè)文件是在哪里闺金?

答:

這個(gè)文件最終會(huì)在如下的完整文件名中:

????Windows:桌面\我的計(jì)算機(jī)\E:\我的文件

????Linux:/media/cdrom/我的文件

如果光驅(qū)并非被掛載到/media/cdrom,而是掛載到/mnt這個(gè)目錄時(shí)峰档,剛剛讀取的這個(gè)文件的文件名會(huì)變成:

????/mnt/我的文件

如果你了解這個(gè)文件名败匹,這表示你已經(jīng)知道掛載的意義了!初次接觸Linux時(shí)讥巡,這里最容易搞混掀亩,因?yàn)樗cWindows的分區(qū)代號(hào)完全不一樣!

distribution安裝時(shí)欢顷,掛載點(diǎn)與磁盤分區(qū)的規(guī)劃:

既然我們?cè)贚inux系統(tǒng)下使用的是目錄樹系統(tǒng)槽棍,所以安裝的時(shí)候自然就得要規(guī)劃磁盤分區(qū)與目錄樹的掛載了。實(shí)際上抬驴,在Linux安裝的時(shí)候已經(jīng)提供了相當(dāng)多的默認(rèn)模式讓你選擇分區(qū)的方式了炼七,不過,無論如何布持,分區(qū)的結(jié)果可能都不是很能符合自己主機(jī)的樣子豌拙!因?yàn)楫吘姑總€(gè)人的“想法”都不太一樣!因此题暖,強(qiáng)烈建議使用“自定義安裝,Custom”這個(gè)安裝模式按傅!在某些Linux distribution中捉超,會(huì)將這個(gè)模式寫的很厲害,叫做是“Expert,專家模式”逞敷,這個(gè)就厲害了狂秦,請(qǐng)相信您自己,了解上面的說明后推捐,就請(qǐng)自稱為專家了吧裂问!沒有問題!

自定義安裝“Custom”:

A:初次接觸Linux:只要分區(qū)“/”及“swap”即可:

通常初次安裝Linux系統(tǒng)的朋友們牛柒,我們都會(huì)建議他直接以一個(gè)最大的分區(qū)“/”來安裝系統(tǒng)堪簿。這樣作有個(gè)好處,就是不怕分區(qū)錯(cuò)誤造成無法安裝的困境皮壁!例如/usr是Linux的可執(zhí)行程序及相關(guān)的文件擺放的目錄椭更,所以它的容量需求蠻大的,萬一你分區(qū)了一塊分區(qū)給/usr蛾魄,但是卻給的不夠大虑瀑,那么就傷腦筋了!因?yàn)闀?huì)造成無法將數(shù)據(jù)完全寫入的問題滴须,就有可能會(huì)無法安裝啦舌狗!因此如果你是初次安裝的話, 那么可以僅分區(qū)成兩個(gè)分區(qū)“/與Swap”即可扔水。

B:建議分區(qū)的方法:預(yù)留一個(gè)備用的剩余磁盤容量痛侍!

在想要學(xué)習(xí)Linux的朋友中,最麻煩的可能就是得要常常處理分區(qū)的問題魔市,因?yàn)榉謪^(qū)是系統(tǒng)管理員很重要的一個(gè)任務(wù)主届。但如果你將整個(gè)硬盤的容量都用光了,那么你要如何練習(xí)分區(qū)呢待德?^_^君丁。所以鳥哥在后續(xù)的練習(xí)中也會(huì)這樣做,就是請(qǐng)你特別預(yù)留一塊不分區(qū)的磁盤容量将宪,作為后續(xù)練習(xí)時(shí)可以用來分區(qū)之用绘闷!

此外,預(yù)留的分區(qū)也可以拿來做為備份之用涧偷。因?yàn)槲覀冊(cè)趯?shí)際操作Linux系統(tǒng)的過程中,可能會(huì)發(fā)現(xiàn)某些script或者是重要的文件很值得備份時(shí)毙死,就可以使用這個(gè)剩余的容量分區(qū)出新的分區(qū)燎潮,并使用來備份重要的配置文件或者是script。這有個(gè)最大的好處扼倘,就是當(dāng)我的Linux重新安裝的時(shí)候确封,我的一些軟件或工具程序馬上就可以直接在硬盤當(dāng)中找到除呵!呵呵!重新安裝比較便利啦爪喘。為什么要重新安裝颜曾?因?yàn)闆]有安裝過Linux十次以上,不要說你學(xué)會(huì)了Linux了啦秉剑!慢慢體會(huì)這句話吧泛豪!^_^

選擇Linux安裝程序提供的默認(rèn)硬盤分區(qū)方式:

對(duì)于首次接觸Linux的朋友們,鳥哥通常不建議使用各個(gè)distribution所提供默認(rèn)的Server安裝方式侦鹏,因?yàn)闀?huì)讓你無法得知Linux在搞什么鬼诡曙,而且也不見得可以符合你的需求!而且要注意的是略水,選擇Server的時(shí)候价卤,請(qǐng)“確定”你的硬盤數(shù)據(jù)是不再需要!因?yàn)長(zhǎng)inux會(huì)自動(dòng)的把你的硬盤里面舊有的數(shù)據(jù)全部殺掉渊涝!

現(xiàn)在你知道Linux為什么不好學(xué)了吧慎璧?因?yàn)楹芏嗷A(chǔ)知識(shí)都得要先了解!否則連安裝都不知道怎么安裝~現(xiàn)在你知道Linux的可愛了吧跨释!因?yàn)槿绻銓W(xué)會(huì)了胸私,嘿嘿!很多計(jì)算機(jī)系統(tǒng)/操作系統(tǒng)的概念都很清晰煤傍,轉(zhuǎn)換到不同的信息跑道是比較容易的喔盖文!^_^

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蚯姆,隨后出現(xiàn)的幾起案子五续,更是在濱河造成了極大的恐慌,老刑警劉巖龄恋,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疙驾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡郭毕,警方通過查閱死者的電腦和手機(jī)它碎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來显押,“玉大人扳肛,你說我怎么就攤上這事〕吮” “怎么了挖息?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)兽肤。 經(jīng)常有香客問我套腹,道長(zhǎng)绪抛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任电禀,我火速辦了婚禮幢码,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尖飞。我一直安慰自己症副,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布葫松。 她就那樣靜靜地躺著瓦糕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腋么。 梳的紋絲不亂的頭發(fā)上咕娄,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音珊擂,去河邊找鬼圣勒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛摧扇,可吹牛的內(nèi)容都是我干的圣贸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼扛稽,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼吁峻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起在张,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤用含,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后帮匾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體啄骇,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年瘟斜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缸夹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡螺句,死狀恐怖虽惭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛇尚,我是刑警寧澤芽唇,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站佣蓉,受9級(jí)特大地震影響披摄,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜勇凭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一疚膊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧虾标,春花似錦寓盗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蘸吓,卻和暖如春善炫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背库继。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工箩艺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宪萄。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓艺谆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親拜英。 傳聞我的和親對(duì)象是個(gè)殘疾皇子静汤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容