1、硬盤分區(qū)
1.1 硬盤設(shè)備名與主要組成部件
常見的硬盤類型有兩種:SATA和SAS;
由于SATA/USB/SAS等硬盤都是使用SCSI模組來驅(qū)動(dòng)的隘竭,因此這些界面的硬盤設(shè)備文件名都是/dev/sd[ap]的格式塘秦。
硬盤設(shè)備名以Linux核心檢測到的硬盤順序來排序;(比如主板有6個(gè)SATA接口动看,SATA1接了一個(gè)硬盤尊剔,SATA5接了一個(gè)硬盤,USB接口接了一個(gè)U盤菱皆,那它們的設(shè)備名分別是:SATA1上的設(shè)備名為:/dev/sda须误、SATA5上的設(shè)備名為:/dev/sdb(而不是/dev/sde)、U盤的設(shè)備名為:/dev/sdc(開機(jī)后才會被系統(tǒng)識別到))仇轻;
硬盤的組成主要有磁盤京痢、機(jī)械手臂、磁盤讀取頭與主軸馬達(dá)所組成篷店,資料是寫入在磁盤上面祭椰。磁盤上面又可細(xì)分出扇區(qū)(Sector)與磁道(Track)兩種單位,其中扇區(qū)的物理量設(shè)計(jì)有兩種大小疲陕,分別是512bytes與4Kbytes方淤。最小存儲單位是扇區(qū)(Sector);扇區(qū)組成的圓稱為磁道(Track)蹄殃,所有硬盤上面的同一個(gè)磁道可以組成一個(gè)柱面(Cylinder)携茂,柱面是分割硬盤時(shí)的最小單位。
Tips:
硬盤的第一個(gè)扇區(qū)記錄了整個(gè)硬盤的重要信息诅岩!如傳統(tǒng)的MBR(Master Boot Record)讳苦,以及GPT(GUID Partition Table)這兩種分區(qū)格式。
1.2 MBR與GPT硬盤分區(qū)表
-
MBR分區(qū)表格式與限制
MBR(Master Boot Record吩谦,主要開機(jī)記錄區(qū))鸳谜;
硬盤的第一個(gè)扇區(qū)存放著開機(jī)管理程序記錄區(qū)和分區(qū)表;這個(gè)扇區(qū)通常是512bytes的大小式廷,有以下兩個(gè)資料:
(1)主要開機(jī)記錄區(qū)(Master Boot Record卿堂,MBR):可以安裝開機(jī)管理程序的地方,有446 bytes懒棉;
(2)分區(qū)表(partition table):記錄整個(gè)硬盤分區(qū)的狀態(tài)草描,有64 bytes;
最多只能有四個(gè)分區(qū)記錄策严,即每個(gè)分區(qū)表僅為16bytes穗慕,每個(gè)分區(qū)表記錄了該區(qū)段的啟始與結(jié)束的柱面號碼。
MBR主分區(qū)妻导、擴(kuò)展分區(qū)與邏輯分區(qū)的定義:
- 主分區(qū)與擴(kuò)展分區(qū)最多可以有四個(gè)(硬盤的限制)逛绵;
- 擴(kuò)展分區(qū)最多只能有一個(gè)(操作系統(tǒng)的限制)怀各;
- 邏輯分區(qū)是由擴(kuò)展分區(qū)分割出來的分區(qū)(只要?jiǎng)h除擴(kuò)展分區(qū),所有的邏輯分區(qū)將被刪除)术浪;
- 只有主分區(qū)和邏輯分區(qū)可以被格式化瓢对,擴(kuò)展分區(qū)無法被格式化;
- 邏輯分區(qū)的數(shù)量在Linux中SATA硬盤可以突破63個(gè)以上的分區(qū)限制胰苏;
- /dev/sd[ap]1~4前面這四個(gè)號碼都是保留給Primary或Extended用的硕蛹;
- 邏輯分區(qū)的設(shè)備名號碼從5開始;
MBR分區(qū)表限制有如下問題:
- 操作系統(tǒng)無法識別到2.2T以上的硬盤容量硕并!
- MBR僅有一個(gè)區(qū)塊法焰,若被破壞后,經(jīng)常無法或很難搶救倔毙。
- MBR存放開機(jī)管理程序的區(qū)塊僅446bytes埃仪,無法容納較多的程序碼。
-
GUID partition table陕赃,GPT硬盤分區(qū)
過去的扇區(qū)大小是512bytes卵蛉,目前有4K的扇區(qū)設(shè)計(jì)。為了兼容所有的硬盤么库,會使用邏輯區(qū)塊地址(Logbical Block Address毙玻,LBA)來處理。GPT將硬盤所有區(qū)塊以此LBA(默認(rèn)為512bytes)來規(guī)劃廊散,而第一個(gè)LBA稱為LBA0。
與MBR僅使用第一個(gè)512bytes區(qū)塊來紀(jì)錄不同梧疲,GPT使用了34個(gè)LBA區(qū)塊來紀(jì)錄分區(qū)信息允睹。GPT除了前面34個(gè)LBA之外,整個(gè)磁盤的最后33個(gè)LBA也拿來作為另一個(gè)備份;系(MBR只有一個(gè)區(qū)塊缭受,被干掉就死光光)
上述圖示說明如下:
? LBA0 (MBR 相容區(qū)塊)
與MBR模式相似的,這個(gè)相容區(qū)塊也分為兩個(gè)部份该互,一個(gè)就是跟之前446 bytes相似的區(qū)塊米者,儲存了第一階段的開機(jī)管理程序!而在原本的分區(qū)表的紀(jì)錄區(qū)內(nèi)宇智,這個(gè)相容模式僅放入一個(gè)特殊標(biāo)志的分區(qū)蔓搞,用來表示此硬盤為GPT格式之意。
? LBA1 (GPT 表頭紀(jì)錄)
這個(gè)部份紀(jì)錄了分區(qū)表本身的位置與大小及備份用的GPT 分區(qū)的位置(最后34個(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都可以紀(jì)錄4筆分區(qū)紀(jì)錄,總共可以有4*32 = 128筆記錄梆掸;每個(gè)LBA有512bytes扬卷,因此每筆紀(jì)錄為128 bytes,除了每筆紀(jì)錄所需要的識別碼與相關(guān)的紀(jì)錄之外酸钦,GPT在每筆紀(jì)錄中分別提供了64bits來記載開始/結(jié)束的磁區(qū)號碼怪得,因此,GPT分區(qū)表對于單一分區(qū)來說钝鸽,他的最大容量限制就會在『 2的64次冪 * 512bytes = 2的63次冪 * 1Kbytes = 2的33次冪 *TB = 8 ZB 』汇恤,要注意1ZB = 2的30次冪 TB;
Tips:
- GPT分區(qū)默認(rèn)可以提供128筆記錄拔恰;
- 目前Linux kernel通過udev等方式的處理因谎,已經(jīng)沒有單個(gè)硬盤最多只能分15個(gè)分區(qū)的限制!
- 此外颜懊,GPT分區(qū)已經(jīng)沒有所謂的主财岔、擴(kuò)展、邏輯分區(qū)的概念河爹,即每個(gè)分區(qū)都可以被格式化!
- fdisk這個(gè)軟件識別不了GPT匠璧,需要使用 gdisk 或者 parted 才行!
- Linux開機(jī)管理程序 grub1 識別不了GPT咸这,需要 grub2 以上版本夷恍;
- 是否能夠讀寫GPT格式與開機(jī)的檢測程序(即 BIOS 與 UEFI )有關(guān)!
1.3 開機(jī)流程中的BIOS與UEFI開機(jī)檢測程序
-
BIOS搭配MBR/GPT的開機(jī)流程
CMOS是記錄各項(xiàng)硬件參數(shù)且嵌入在主板上面的儲存器(在主板上使用一顆紐扣電池單獨(dú)供電)媳维,BIOS則是一個(gè)寫入到主板上的一個(gè)固件(再次說明酿雪,固件就是寫入到硬件上的一個(gè)軟件程序)。這個(gè)BIOS就是在開機(jī)的時(shí)候侄刽,電腦系統(tǒng)會主動(dòng)執(zhí)行的第一個(gè)程序指黎!
從開機(jī)到操作系統(tǒng)之前的簡要流程:
POST開機(jī)自檢> BIOS分析電腦存在哪些存儲設(shè)備>> 依據(jù)使用者的設(shè)置獲取可以正常開機(jī)的硬盤>>> 讀取硬盤的第一個(gè)扇區(qū)的MBR位置>>>> 接下來的工作交給MBR內(nèi)的開機(jī)程序>>>>> 載入核心文件。
這個(gè)開機(jī)管理程序的目的是載入(load)核心文件(開機(jī)管理程序由操作系統(tǒng)安裝時(shí)提供)州丹。
Tips:
LBA0僅提供第一階段的開機(jī)管理程序醋安,如果使用grub的開機(jī)管理程序的話,需要額外分出一個(gè)BIOS boot分區(qū)墓毒。在CentOS中吓揪,這個(gè)分區(qū)通常占用2MB左右。
BIOS也能夠從LBA0的MBR兼容區(qū)塊讀取第一階段的開機(jī)管理程序所计,只要開機(jī)管理程序能夠識別GPT磺芭,那么使用BIOS同樣可以讀取正確的操作系統(tǒng)核心。
BIOS與MBR是硬件本身會支持的功能醉箕,至于Boot loader則是操作系統(tǒng)安裝在MBR上面的一套軟件钾腺。
boot loader主要任務(wù)項(xiàng)目如下:
(1)提供選單:使用者可以選擇不同的開機(jī)項(xiàng)目徙垫,這也是多系統(tǒng)的重要功能!
(2)載入核心檔案:直接指向可開機(jī)的程序區(qū)段來開始操作系統(tǒng)放棒;
(3)轉(zhuǎn)交其他loader:將開機(jī)管理功能轉(zhuǎn)交給其他loader負(fù)責(zé)姻报。
硬盤只有一個(gè)MBR,但是開機(jī)管理程序除了可以安裝在MBR之外间螟,還可以安裝在每個(gè)分區(qū)的開機(jī)扇區(qū)(boot sector)吴旋!這個(gè)特色才能造就『多系統(tǒng)』的功能。
上圖總結(jié):
- 每個(gè)分區(qū)都擁有自己的開機(jī)扇區(qū)(boot sector)厢破;
- 圖中的系統(tǒng)分區(qū)為第一和第二分區(qū)荣瑟;
- 實(shí)際可開機(jī)的核心文件是放在各分區(qū)內(nèi)的;
- Loader只會認(rèn)識自己的系統(tǒng)分區(qū)內(nèi)的可開機(jī)核心文件摩泪,以及其他loader而已笆焰;
- Loader可直接指向或者是間接將管理權(quán)轉(zhuǎn)交給另一個(gè)管理程序。
Tips:
如果要安裝Windows+Linux雙系統(tǒng)见坑,最好先安裝Windows再安裝Linux嚷掠。因?yàn)長inux在安裝的時(shí)候,你可以選擇將開機(jī)管理程序安裝在MBR或者其它分區(qū)的開機(jī)扇區(qū)荞驴,而且loader可以手動(dòng)設(shè)置選單不皆,所以可以在Linux的boot sector里面加入Windows的開機(jī)選項(xiàng);Windows在安裝的時(shí)候熊楼,它的安裝程序會主動(dòng)覆蓋掉MBR以及自己所在的分區(qū)的開機(jī)扇區(qū)霹娄,沒有選擇的機(jī)會,也沒有選單功能鲫骗。
-
UEFI BIOS搭配GPT開機(jī)的流程
UEFI (Unified Extensible Firmware Interface) 統(tǒng)一可擴(kuò)展固件接口犬耻,使用C語言編寫;(傳統(tǒng)的BIOS使用的是組合語言編寫)
傳統(tǒng)BIOS與UEFI的區(qū)別如下圖:
傳統(tǒng)BIOS與UEFI的區(qū)別
由于過去cracker經(jīng)常借由BIOS開機(jī)階段來破壞系統(tǒng)挎峦,并取得系統(tǒng)的控制權(quán),因此UEFI加入了一個(gè)所謂的安全啟動(dòng)(secure boot)機(jī)制合瓢,這個(gè)機(jī)制代表著即將開機(jī)的作業(yè)系統(tǒng)必須要被UEFI所驗(yàn)證坦胶,否則就無法順利開機(jī)!微軟用了很多這樣的機(jī)制來管理硬件晴楔。加入這個(gè)機(jī)制后顿苇,許多的操作系統(tǒng),包括Linux可能無法順利開機(jī)税弃。此時(shí)纪岁,需要關(guān)閉UEFI的secure boot功能,才能進(jìn)入Linux则果。
Tips:
使用UEFI時(shí)建議依舊保留BIOS boot的分區(qū)支持幔翰;
為了與Windows兼容漩氨,并且提供給其它廠商使用的UEFI應(yīng)用程序存儲空間,必須要格式化一個(gè)vfat的文件系統(tǒng)遗增,大約提供512M到1G左右的容量叫惊,以便讓其他UEFI執(zhí)行。
開機(jī)管理程序與核心放置在硬盤開始前的2TB位置即可做修!/boot目錄的設(shè)備名變成/dev/sda3之后霍狰,不再是/dev/sda1。
1.4 Linux安裝模式下饰及,硬盤分區(qū)的選擇(極重要)
-
目錄樹結(jié)構(gòu)(directory tree)
目錄樹結(jié)構(gòu)是以根目錄為主蔗坯,然后向下呈現(xiàn)分支狀的目錄結(jié)構(gòu)的一種檔案架構(gòu)。整個(gè)目錄樹架構(gòu)最重要的就是那個(gè)根目錄(root directory)燎含,這個(gè)根目錄的表示方法為一條斜線『 / 』宾濒。
比如想要獲取到mydata這個(gè)文件,就必須從根目錄開始找:/ >home >dmtsai >mydata瘫镇;最終的文件名為:/home/dmtsai/mydata
-
文件系統(tǒng)與目錄樹的關(guān)系(掛載)
所謂的『掛載』就是利用一個(gè)目錄當(dāng)成進(jìn)入點(diǎn)鼎兽,將硬盤分區(qū)的資料放置在該目錄下;也就是說铣除,進(jìn)入該目錄就可以讀取該分區(qū)的意思谚咬。那個(gè)進(jìn)入點(diǎn)的目錄我們稱為『掛載點(diǎn)』。根目錄一定要掛載到某個(gè)分區(qū)尚粘,其它目錄則按需求掛載择卦。
上圖中假設(shè)當(dāng)資料放置在 /home 目錄時(shí),資料是放置到partition2的郎嫁。
判斷某個(gè)文件在那個(gè)partition可透過反向追蹤秉继。如上圖/home/vbird/test,由test--> vbird--> home--> /泽铛,看那個(gè)『進(jìn)入點(diǎn)』先被查到那就是使用的進(jìn)入點(diǎn)了尚辑。
初次接觸Linux只要分『 / 』及『swap』即可,并預(yù)留備硬盤容量盔腔;
1.5 主機(jī)服務(wù)規(guī)劃與硬件的關(guān)系
NAT(達(dá)成IP分享器的功能):
Linux NAT可以額外的安裝很多分析軟件杠茬,可以用來分析用戶端的連線,或者是用來控制帶寬與流量弛随,達(dá)到更公平的帶寬使用瓢喉。需要較好的網(wǎng)卡。SAMBA(加入windows網(wǎng)上鄰居):
Windows鄰居只能連接十個(gè)用戶舀透,使用SAMBA服務(wù)器可以將Linux加入Windows鄰居栓票,且不限連接數(shù)°倒唬可將 /home 獨(dú)立出來走贪。對網(wǎng)卡和硬盤容量有要求佛猛。Mail(郵件服務(wù)器):
可將/var獨(dú)立出來。也是對網(wǎng)卡和硬盤容量有要求厉斟。Web(WWW服務(wù)器):
CentOS使用Apache這套軟件來達(dá)成WWW網(wǎng)站的功能挚躯。CPU等級不能太低,最重要的是RAM擦秽!DHCP(提供用戶端自動(dòng)獲取IP的功能):
FTP
對網(wǎng)卡和硬盤容量有要求码荔。
重點(diǎn)回顧:
在Linux系統(tǒng)中,每個(gè)設(shè)備都被當(dāng)成一個(gè)文件來對待感挥,每個(gè)設(shè)備都會有設(shè)備名缩搅。
硬盤設(shè)備名通常分為兩種,實(shí)際SATA/USB設(shè)備名為/dev/sd[ap]触幼,而虛擬機(jī)的設(shè)備可能為/dev/vd[ap]硼瓣;
硬盤的第一個(gè)扇區(qū)主要記錄了兩個(gè)重要的信息,分別是: (1)主要開機(jī)記錄區(qū)(Master Boot Record, MBR):可以安裝開機(jī)管理程序的地方置谦,有446 bytes (1)分區(qū)表(partition table):記錄整個(gè)硬盤分區(qū)的狀態(tài)堂鲤,有64 bytes;
硬盤的MBR 分區(qū)方式中媒峡,主要與擴(kuò)展分割最多可以有四個(gè)瘟栖,邏輯分區(qū)的設(shè)備名號碼,一定由5號開始谅阿;
如果磁盤容量大于2TB 以上時(shí)半哟,系統(tǒng)會自動(dòng)使用GPT 分區(qū)方式來處理磁盤分區(qū)。
GPT 分區(qū)已經(jīng)沒有擴(kuò)展與邏輯分區(qū)的概念签餐,你可以想像成所有的分區(qū)都是主分區(qū)寓涨!
某些操作系統(tǒng)要使用GPT 分區(qū)時(shí),必須要搭配UEFI 的新型BIOS 格式才可安裝使用氯檐。
開機(jī)的流程:BIOS-->MBR-->-->boot loader-->核心文件戒良;
boot loader的功能主要有:提供選單、載入核心冠摄、轉(zhuǎn)交控制權(quán)給其他loader糯崎;
10.boot loader可以安裝的地方有兩個(gè),分別是MBR 與boot sector耗拓;
- Linux操作系統(tǒng)的文件使用目錄樹系統(tǒng)拇颅,與磁盤的對應(yīng)需要有『掛載』的動(dòng)作才行奏司;