1. 程式人生 > >硬盤的存儲及分區

硬盤的存儲及分區

linux

硬盤的存儲及分區

a) 硬盤的存儲結構

i. 硬盤的存儲結構包括主引導目錄、分區表、分區結束標誌、及其他分區的引導信息及數據區信息。

ii. 主引導記錄MBR

硬盤的0磁頭0磁道1扇區,是硬盤的一個非常重要的位置。在這個扇區中,存放有硬盤的主引導記錄MBRMaster Boot Record)和硬盤分區表DPTDisk Partition Table)。

dd if=/dev/sda(來源) of=mbr.bin(備份文件) bs=512(一個塊大小) count=1(塊的數量) (把第一分區的數據備份到mbr.bin

od -xa mbr.bin (以二進制形式查看mbr.bin

iii. 主分區Primary

主分區時磁盤必須存在的分區,一般為磁盤的第一個分區,可以在主分區上面安裝操作系統。

/boot主分區

swap主分區

/主分區

一個磁盤想分六個區,主分區和擴展分區的數量是多少?

1p+1e, 2p+1e, 3p+1e

iv. 擴展分區Extended

擴展分區不能算一個正常的分區,而是一個鏈接,起到一個指向的作用。一塊磁盤只能存在一個擴展分區,並且擴展分區不能直接存放數據,擴展分區受限於操作系統。

v. 邏輯分區logical

邏輯分區必須存在於擴展分區內。邏輯分區的編號從數字5開始。實際應用:主分區和邏輯分區,都可以用。一般系統安裝用主分區,存放數據都可以。

vi. 磁盤分區總結

一塊硬盤的分區方式只能是如下組合之一

1. 任意多個主分區,但要求1<=主分區數量<=4

2. 擴展分區可以和主分區組合,但要求2<=(主分區+擴展分區)數<=4,擴展分區最多一個

3. 如果分成四個磁盤分區,那麽最多可以:

P+P+P+P

P+P+P+E

擴展分區不是一個真正的分區,建立完擴展分區後,還需要在擴展分區上建立邏輯分區才能使用。

對於主分區和邏輯分區在一把的數據存儲使用上是沒有區別的,在安裝操作系統時第一個分區要選主分區。

分區數字編號1~4留給主分區和擴展分區使用,邏輯分區只能從5開始。

對硬盤分區,就是在修改硬盤的分區表,也就是說我們通過fdisk分區實際上就是在該64字節的分區表,分區和對應的數據沒有關系。因此理論上,調整分區大小,不會刪除分區內的數據。

b) 磁盤分區的重點

i. 磁盤分區實質就是針對上述0磁頭0磁道1扇區的前446字節後面接下來的64bytes的分區表進行設置,即主要是換分起始以及結束磁頭號,扇區號及柱面號。

ii. 給磁盤分區的工具有fdisk(適合給小於2T的磁盤分區),parted(擅長給大於2T的磁盤分區)。

企業面試題:一臺服務器6600G的磁盤,raid5後,總大小3T,此時無法裝系統。為什麽?

解決辦法:

方法一:做完raid5後,不要重啟裝系統,而是在raid5界面,繼續分1個小的虛擬磁盤vd 200G,用200G的虛擬磁盤裝系統,裝完系統後再把剩余的2.8T分區通過parted

方法二:拿一塊盤做raid0,剩下5塊做raid5,在raid0上裝系統。

方法三:裝系統時,選擇gpt分區格式,即可安裝系統。

iii. 一塊磁盤分區表僅有64bytes大小,每個分區表要占用16字節,因此一塊磁盤僅支持四哥分區表信息,即主分區+擴展分區的總量不超過4個。

iv. 磁盤分區時按照柱面來劃分的。

v. 擴展分區不能直接使用,還需要在擴展分區的基礎上創建邏輯分區才行。

vi. 擴展分區有自己的分區表,因此,擴展分區下面的邏輯分區可以有多個。

c) 分區問題案例:

1.大硬盤暫時分為四個區,同時還希望有其他的空間可以在未來需要的時候在進行分區,如何做?

i. 3p+1e(1L)剩下空間保留

ii. 2p+1e(2L)剩下空間保留

iii. 1p+1e(3L)剩下空間保留

2.假如有一塊SAS硬盤,想把磁盤分成6個可以使用的磁盤分區,那麽每個磁盤分區在linux下的數字編號是多少?

3p+1e(3L)編號:主:1 2 3 擴展邏輯:5 6 7

2p+1e(4L)編號:主:1 2 擴展邏輯:5 6 7 8

1p+1e(5L)編號:主:1 擴展邏輯:5 6 7 8 9

d) 磁盤分區設備名

linux中,是通過設備名來訪問設備的,設備名存放在“/dev”目錄中。

分區數字編號1-4留給主分區或擴展分區使用,邏輯分區編號只能從5開始。

IDE硬盤設備名均以/dev/hd開頭,不同硬盤編號依次為:/dev/hda/,/dev/hdb/,/dev/hdc/......

SCSI/SAS/SATA/USB接口硬盤設備名均以/dev/sd開頭。不同磁盤編號依次為/dev/sda/,/dev/sdb/......

特別強調:SAS/SATA為當前2010-2012互聯網生產環境主流硬盤接口,SSD硬盤,由於是電子設備,性能很高,也逐漸被應用。

Linux環境下沒有盤符的概念。要對磁盤設備進行操作,需要使用磁盤設備名:讀取磁盤設備內容,需要把創建在分區或邏輯卷上的文件系統掛載到指定目錄上。

Linux系統上劃分了分區之後,還要在分區上創建文件系統。

e) linux系統對分區的要求

最少要有/以及swap兩個分區(其實swap也可以沒有)

swap(交換分區)的作用:虛擬內存,swap分區大小=1.5*物理內存容量,如果物理內存大於8-16G,那麽就用8-16G即可。

建議設置獨立的/boot分區 #linux引導分區,存放系統引導文件,如linux內核等,所有文件大小一般只有幾十M。因此該分區設置100-200G

安裝即采用常規的生產線上一般服務器分區方式:/boot,swap,/三個分區。


推薦優秀博文: 出處:老男孩(oldboy)

生產場景不同角色linux服務器分區案例分享 http://oldboy.blog.51cto.com/2561410/634725

生產場景如何對linux系統進行分區? http://oldboy.blog.51cto.com/2561410/629558


硬盤的存儲及分區