linux磁碟分區

linux磁碟分區

linux磁碟分區 要掌握Linux磁碟分區,先了解一下硬碟的物理結構。 為了便於理解硬碟的物理結構 ,可將硬碟看作一個圓,它是堅硬金屬材料製成的塗以磁性介質的碟片,不同容量硬碟的碟片數不等。每個盤有兩面,都可記錄信息。要了解硬碟的物理結構,需要弄懂磁軌、扇區、柱面、簇等幾個概念。

分區簡介

磁軌:上圖中硬碟被一圈圈分成18等分的同心圓,這些同心圓就是磁軌.但打開硬碟,用戶不能看到這些,它實際上是被磁頭磁化的同心圓.這些磁軌是有間隔的,因為磁化單元太近會產生干擾。

扇區:每個磁軌中被分成若干等份的區域.扇區是硬碟數據存儲的最小單位。

柱面:假如一個硬碟只有上圖中的3個磁碟片,每一片中的磁軌數是相等的.從外圈開始,這些磁軌被分成了0磁軌、1磁軌、2磁軌...具有相同磁軌編號的同心圓組成面就稱作柱面.為了便於理解,柱面可以看作沒有底的鐵 桶.從上圖可以看出,柱面數就是磁碟上的磁軌數.柱面是硬碟分區的最小單位.因此,一個硬碟的容量=柱面*磁頭*扇區*512。

簇:扇區是硬碟數據存儲的最小單位,但作業系統無法對數目眾多的扇區進行定址,所以作業系統就將相鄰的扇區組合在一起,形成一個簇,然後再對簇進行管理.每個簇可以包括2、4、8、16、32、64個扇區

硬碟的分區

要掌握硬碟的分區,需要掌握MBR、擴展分區、邏輯分區的概念。

一個是放置該硬碟的信息區,稱之為主引導記錄(MBR,Main Boot Record),一個是實際檔案數據放置的地方.其中,MBR是整個硬碟最重要的區域,一旦MBR物理實體損壞時,則該硬碟就差不多報廢了,一般來說,MBR有512個位元組,且可以分為兩個部分。

(1)第一部分有446個位元組,用於存放引導代碼,即是bootloader。

(2)第二部分有64個位元組,用於存放磁碟分區表.其中,每個分區的信息需要用16個位元組來記錄。因此,一個硬碟最多可以有4個分區,這4個分區稱之為主分區和擴展分區(extended)。

註:通常所說的"硬碟分區"就是指修改磁碟分區表,它定義了"第n個磁碟塊是從第x個柱面到第y個柱面".因此,當系統要讀取第n個磁碟塊時,就是去讀硬碟上第x個柱面到第y個柱面的信息。

由於擴展分區只能有一個,所以這4個分區可以是4個主分區或者3個主分區加1個擴展分區,如下所示:

P + P + P + P

P + P + P + E

重點說明的是,擴展分區不能直接使用,還需要將其劃分為邏輯分區才行,這樣就產生了一個問題,既然擴展分區不能直接使用,但為什麼還要劃分出一定的空間來給擴展分區呢?這是因為,如果用戶想要將硬碟劃分為5個分區的話,那該如何?此時,就需要擴展分區來幫忙了。

由於MBR僅能保存4個分區的數據信息,如果超過4個,系統允許在額外的硬碟空間存放另一份磁碟分區信息,這就是擴展分區.若將硬碟分成3P+E,則E實際上是告訴系統,磁碟分區表在另外的那份分區表,即擴展分區其實是指向正確的額外分區表.本身擴展分區不能直接使用,還需要額外將擴展分區分成邏輯分區才能使用,因此,用戶通過擴展分區就可以使用5個以上的分區了。

Attention!!!

(1)實際上,不建議用戶將硬碟分為4個主分區,這是因為,假如一個20GB的硬碟,若4個主分區占據了15GB的空間,則剩下的5GB空間完全不能使用,因為已經沒有多餘的分區表可以記錄這些空間了。

(2)考慮到磁碟的連續性,一般建議將擴展分區放在最後面的柱面內。

(3)理論上允許一個硬碟只有1個主分區,其它空間都分配給擴展分區。

磁碟分區

在Windows作業系統中,是先將物理地址分開,再在分區上建立目錄.在Windows作業系統中,所有路徑都是從盤符開始,如C://program file。

Linux正好相反,是先有目錄,再將物理地址映射到目錄中。在Linux作業系統中,所有路徑都是從根目錄開始。Linux默認可分為3個分區,分別是boot分區、swap分區和根分區。

無論是Windows作業系統,還是Linux作業系統,每個分區均可以有不同的檔案系統,如FAT32、NTFS、Yaffs2等。

(1)boot分區

該分區對應於/boot目錄,約100MB.該分區存放Linux的Grub(bootloader)和核心源碼。用戶可通過訪問/boot目錄來訪問該分區.換句話說,用戶對/boot目錄的操作就是操作該分區。

(2)swap分區

該分區沒有對應的目錄,故用戶無法訪問。

Linux下的swap分區即為虛擬記憶體.虛擬記憶體用於當系統記憶體空間不足時,先將臨時數據存放在swap分區,等待一段時間後,然後再將數據調入到記憶體中執行.所以說,虛擬記憶體只是暫時存放數據,在該空間內並沒有執行。

Ps:虛擬記憶體

虛擬記憶體是指將硬碟上某個區域模擬為記憶體.因此虛擬記憶體的實際物理地址仍然在硬碟上.虛擬記憶體,或者說swap分區只能由系統訪問,其大小為物理記憶體的2倍。

(3)根分區

在Linux作業系統中,除/boot目錄外的其它所有目錄都對應於該分區.因此,用戶可通過訪問除/boot目錄外的其它所有目錄來訪問該分區。

Attention!!!

(1)在Linux作業系統中,用戶可根據需要進行修改分區.修改後的分區中,同一目錄下的檔案可能在不同分區中.比如/home目錄下有a、b、c三個目錄,可將不同的分區掛載到這三個目錄下,這種操作是允許的。

(2) 邏輯分割的數量依作業系統而不同,在Linux系統中,IDE硬碟最多有59個) 邏輯分割(5號到63號), SATA硬碟則有11個) 邏輯分割(5號到15號)。 (鳥哥版的)

不過根據最新的 linux核心技術規範 中指示,邏輯分區可以無限。

<1>硬碟上至少有1個主分區。

<2>邏輯分區不能再進行分區。

(3)Linux分區目錄和"盤符"的關係:

假如硬碟安裝在IDE1的主盤,並用戶想分區成6個可以使用的硬碟分區,則可以採用下面兩種方式。

方式一:採用3個主分區和3個邏輯分區

方式二:採用1個主分區和5個邏輯分區

當然還有其他的分區方式,只要滿足上述說的規則就行

安裝Linux時,默認分為三個區,分別是/boot分區、根分區和swap分區.這三個分區分別對應的盤符是hda1、hda2、hda3。

(4)Linux允許使用fdisk -l命令和df -h命令來查詢其硬碟分區.其中,df無法顯示出swap分區的大小。

[root@localhost /]#df -h

檔案系統 容量 已用 可用 已用% 掛載點

/dev/hda2 8.8GB 3.1GB 5.3GB 38% / (根分區)

/dev/hda1 99MB 9.2MB 85MB 10% /boot (boot分區)

(5)在PC機下,A、B盤並不存在,這兩個盤在Linux下類似於hda1/hda3,而C糟類似於hda2,D、E、F盤類似於hda5、hda6、hda7。

(6)swap分區不對應"盤符"。

(7)若硬碟的MBR已壞,則該磁碟就不能再作為引導盤,只能作為數據盤.因為MBR位於硬碟的起始處,用戶不能通過軟體進行修復,也不能跳過起始處.而硬碟中間的某個磁軌壞了,用戶可以軟體修復,也可以跳過該磁軌。

嵌入式分區

嵌入式系統可以分為4個區,分別是bootloader、para、kernel、根分區等,與Windows、Linux分區不同。

(1)在嵌入式系統中,沒有swap分區,只有實際的物理空間。

(2)bootloader、para、kernel這三個分區的功能類似於Linux系統中的/boot分區,這三個分區分別存放嵌入式系統的啟動代碼和核心。

註:Linux系統中/boot分區記憶體放著linux啟動代碼和核心源碼。

(3)根分區(/)可以構造,其功能類似於Linux系統中的根分區.在這個分區中可以創建許多目錄,比如/root、/home、/usr等,但不能創建/boot目錄。

(4)分區bootloader、para、kernel只能由地址來區分,而根分區只能由目錄來區分。

(5)嵌入式系統的驅動程式、上層軟體都放在根分區.在嵌入式系統啟動後,系統無法查看到bootloader、para、kernel這三個分區。

相關詞條

相關搜尋

熱門詞條

聯絡我們