Linux主分區,擴展分區,邏輯分區的聯繫和區別

1.基本概念


硬盤分區有三種,主磁盤分區、擴展磁盤分區、邏輯分區。


    一個硬盤主分區至少有1個,最多4個,擴展分區可以沒有,最多1個。且主分區+擴展分區總共不能超過4個。邏輯分區可以有若干個。 

在windows下激活的主分區是硬盤的啓動分區,他是獨立的,也是硬盤的第一個分區,正常分的話就是C區。 在linux下主分區和邏輯分區都可以用來放系統,引導os開機,grub會兼容windows系統開機啓動。

分出主分區後,其餘的部分可以分成擴展分區,一般是剩下的部分全部分成擴展分區,也可以不全分,那剩的部分就浪費了。

但擴展分區是不能直接用的,他是以邏輯分區的方式來使用的,所以說擴展分區可分成若干邏輯分區。他們的關係是包含的關係,所有的邏輯分區都是擴展分區的一部分。

在linux中第一塊硬盤分區爲hda分區,主分區編號爲hda1-4,邏輯分區從5開始。

硬盤的容量=主分區的容量+擴展分區的容量

擴展分區的容量=各個邏輯分區的容量之和

主分區也可成爲“引導分區”,會被操作系統和主板認定爲這個硬盤的第一個分區。所以C盤永遠都是排在所有磁盤分區的第一的位置上。

MBR(主引導記錄)的分區表(主分區表)只能存放4個分區,如果要分更多的分區的話就要一個擴展分區表(EBR),擴展分區表放在一個系統ID爲0x05的主分區上,這個主分區就是擴展分區,擴展分區能可以分若干個分區,每個分區都是個邏輯分區

 

2.擴展分區和邏輯分區


    DOS和FAT文件系統最初都被設計成可以支持在一塊硬盤上最多建立24個分區,分別使用從C到Z 24個驅動器盤符。但是主引導記錄中的分區表最多隻能包含4個分區記錄,爲了有效地解決這個問題,DOS的分區命令FDISK允許用戶創建一個擴展分區,並且在擴展分區內再建立最多23個邏輯分區,其中的每個分區都單獨分配一個盤符,可以被計算機作爲獨立的物理設備使用。關於邏輯分區的信息都被保存在擴展分區內,而主分區和擴展分區的信息被保存在硬盤的MBR內。這也就是說無論硬盤有多少個分區,其主啓動記錄中只包含主分區(也就是啓動分區)和擴展分區兩個分區的信息。


    在安裝CentOS5.3的過程中,會遇到磁盤分區的界面,下拉式菜單中有4個選項,這時你不要選擇默認,打開下拉式菜單,選擇最後一項(翻譯成中文意思是:建立自定義的分割模式)。然後選擇右下角的確認,在下一個對話界面裏依序建立/、/home 及 swap ,完成後如圖。確認設置後的分割區。

 åˆ†åŒºç•Œé¢

爲強調重點,把圖中重要內容,再寫一遍。

 

/             根目錄         ext3        hda1   

 

/home    用戶目錄        ext3        hda2

 

Swap     交換分區        swap       hda3


對hda1的解釋:

hd:IDE硬盤。如果是SCSI硬盤,則爲sd,這個只能記住,沒有更好的辦法。

a:: 第一塊硬盤。如果是第二塊硬盤,則爲b,依此類推c,d……

 

1: 主分區。其中1,2,3,4都是主分區(或擴展分區, 主分區+擴展分區<=4, 這是因爲硬盤有64字節描述分區,每一個佔用16字節),從第5開始爲邏輯分區,最大到16,新的Linux版本無限制

 

磁盤容量與主分區、擴展分區、邏輯分區的關係:

 

硬盤的容量=主分區的容量+擴展分區的容量

 

擴展分區的容量=各個邏輯分區的容量之和

 

一塊物理硬盤只能有: 一到四個主分區(但其中只能有一個是活動的主分區),或一到三個主分區,和一個擴展分區。分別對應hda1,hda2,hda3,hda4.

 

Linux 中規定,每一個硬盤設備最多能有 4 個主分區(其中包含擴展分區)構成,任何一個擴展分區都要佔用一個主分區號碼,也就是在一個硬盤中,主分區和擴展分區一共最多是 4 個。

 

我曾經的困惑點是:不知道擴展分區要佔用主分區(最多可以有4個)一個分區號碼。

我的總結:一塊硬盤可以只設主分區,這時主分區可設置4個分區號。也可以設置成主分區+邏輯分區,這時也是最多4個分區號碼,但是變成了4 = 3 + 1.其中4是主分區和擴展分區加起來最多4個;  3是主分區,可以小於或等於3;  1是擴展分區號,佔用了一個主分區號。從5開始到16,都是邏輯分區。如果只有一個5,則擴展分區不再進行分區了,那麼擴展分區就是邏輯分區了(擴展分區的磁盤總量等於一個邏輯分區的磁盤總量)。常見的是擴展分區被分成幾個邏輯分區,用5,6,7,8等號碼標識。

 

再來理解上面的分區:

 

/            根目錄         ext3        hda1     活動主分區,啓動OS

 

/home    用戶目錄        ext3        hda2     主分區

 

swap     交換分區        swap       hda3     主分區

 

此處可能暗示有一個擴展分區,其應爲hda4。因爲這樣後面還可以設hda5,hda6,……

 

也可能就只有3個主分區(最多可以有4個)已佔滿磁盤容量。

 

假設現在你的Linux操作系統磁盤空間只有16000M,又按照上面的設置分配磁盤空間。這樣就沒有擴展分區了。

 

硬盤分區備忘(主分區,擴展分區和邏輯分區)以及Linux硬盤分區工具parted 介紹

我們知道硬盤的第一個扇區也就是第0扇區是用來存放主引導記錄(MBR)的,因此也稱MBR扇區。一個扇區是512字節,因此MBR的大小也是512字 節,其具體數據結構是:446個字節的引導代碼、64個字節的分區表及2個字節的簽名值"55AA"。由於MBR的分區表只有64個字節,這決定了它只能 存儲4個分區記錄。這就是爲什麼一塊硬盤最多只能有4個“主分區"的原因。記住,“主分區”就是指記錄在主引導記錄MBR分區表中的分區,除此之外主分區 並無特別之處,但是過去的一些老操作系統往往不能安裝在主分區之外的分區上,所以,主分區也貼上“專門用來安裝操作系統”的標籤。

 

 

我 們已經知道了MBR中的分表區只能存放4個分區(即4個主分區),那系統是如何劃分出4個以上的分區的呢?一種直白而簡單的思路就是把其中一個主分區再進 行細分,衍生出一個二級分區表。對的,這個被用來二次分區的主分區就是“擴展分區”,它下面的二級分區就是“邏輯分區”。

 

關於如何在Linux下如何使用parted工具時行分區,這裏轉載一篇文章, 講解的非常清晰. 原文出處:http://dngood.blog.51cto.com/446195/647702/

 

一 關鍵詞


MBR和2TB的限制

在使用fdisk建立分區時,我們最大隻能建立2TB大小的分區,如果你的磁盤(陣列)大於2TB,只能通過劃分多個分區的方法才能充分利用磁盤容量,這對於使用小於2TB分區的朋友沒啥影響,但對於使用大於2TB分區(比如5TB的分區)的朋友就會遇到問題了,要突破這個限制;我們先來了解下MBR(Master Boot Record)和GPT(GUID Partition Table).

 

MBR

主引導記錄(Master Boot Record,縮寫:MBR),又叫做主引導扇區,是計算機開機後訪問硬盤時所必須要讀取的首個扇區,它在硬盤上的三維地址爲(柱面,磁頭,扇區)=(0,0,1)。

 

MBR是由分區程序(如Fdisk,Parted)所產生的,它不依賴任何操作系統,而且硬盤引導程序也是可以改變的,從而能夠實現多系統引導。

 

從主引導記錄的結構可以知道,它僅僅包含一個64個字節的硬盤分區表。由於每個分區信息需要16個字節,所以對於採用MBR型分區結構的硬盤(其磁盤卷標類型爲MS-DOS),最多隻能識別4個主要分區。所以對於一個採用此種分區結構的硬盤來說,想要得到4個以上的主要分區是不可能的。這裏就需要引出擴展分區了。擴展分區也是主分區(Primary partition)的一種,但它與主分區的不同在於理論上可以劃分爲無數個邏輯分區,每一個邏輯分區都有一個和MBR結構類似的擴展引導記錄(EBR)。

在MBR分區表中最多4個主分區或者3個主分區+1個擴展分區,也就是說擴展分區只能有一個,然後可以再細分爲多個邏輯分區。

在Linux系統中,硬盤分區命名爲sda1-sda4或者hda1-hda4(其中a表示硬盤編號可能是a、b、c等等)。在MBR硬盤中,分區號1-4是主分區(或者擴展分區),邏輯分區號只能從5開始。

在MBR分區表中,一個分區最大的容量爲2T,且每個分區的起始柱面必須在這個disk的前2T內。你有一個3T的硬盤,根據要求你至少要把它劃分爲2個分區,且最後一個分區的起始扇區要位於硬盤的前2T空間內。如果硬盤太大則必須改用GPT。

 

 

GPT

全局唯一標識分區表(GUID Partition Table,縮寫:GPT)是一個實體硬盤的分區結構。它是EFI(可擴展固件接口標準)的一部分,用來替代BIOS中的主引導記錄分區表。但因爲MBR分區表不支持容量大於2.2TB(2.2 × 1012字節)的分區,所以也有一些BIOS系統爲了支持大容量硬盤而用GPT分區表取代MBR分區表。

 

在MBR硬盤中,分區信息直接存儲於主引導記錄(MBR)中(主引導記錄中還存儲着系統的引導程序)。但在GPT硬盤中,分區表的位置信息儲存在GPT頭中。但出於兼容性考慮,硬盤的第一個扇區仍然用作MBR,之後纔是GPT頭。

 

與 支持最大卷爲2 TB(Terabytes)並且每個磁盤最多有4個主分區(或3個主分區,1個擴展分區和無限制的邏輯驅動器)的MBR磁盤分區的樣式相比,GPT磁盤分 區樣式支持最大卷爲18 EB(Exabytes)並且每磁盤的分區數沒有上限,只受到操作系統限制(由於分區表本身需要佔用一定空間,最初規劃硬盤分區時,留給分區表的空間決定 了最多可以有多少個分區,IA-64版Windows限制最多有128個分區,這也是EFI標準規定的分區表的最小尺寸)。與MBR分區的磁盤不同,至關 重要的平臺操作數據位於分區,而不是位於非分區或隱藏扇區。另外,GPT分區磁盤有備份分區表來提高分區數據結構的完整性。

 

 

EFI

可 擴展固件接口(英文名Extensible Firmware Interface 或EFI)是一種個人電腦系統規格,用來定義操作系統與系統韌體之間的軟件界面,爲替代BIOS的升級方案。可擴展固件接口負責加電自檢(POST)、連 系操作系統以及提供連接操作系統與硬件的接口。

EFI最初由英特爾開發,現時由UEFI論壇來推廣與發展。

 

 

UEFI

是由EFI1.10爲基礎發展起來的,它的所有者已不再是Intel,而是一個稱作Unified EFI Form的國際組織,貢獻者有Intel,Microsoft,AMI,等幾個大廠,屬於open source,目前版本爲2.1。

 

 

 

二 創建一個大於2TB的分區

 

MBR 與 GPT,都是分區格式,其中MBR最大分區小於等於2TB,而GPT分區沒有2TB的限制,理論最大分區18 EB!

 

現在我們知道了要創建一個大於2TB的分區,就不能使用MBR 格式的分區表了,而要使用GPT格式的分區表,我們最常用的fdisk 分區工具就愛莫能助了,需要使用linux 下的Parted分區工具!

 

測試環境爲:

 

Dell R710  2u 服務器

 

cpu 2* XEON 5606

 

mem 16G

 

disk 6*1TB sas 7200rpm

 

raid raid level 5  perc 6i卡

 

rhel 6 64bit ,創建一個4TB大小分區

 

下面正式開始分區:

 

1 在使用parted 分區之前,我們先用fdisk -l 來查看下硬盤信息!

 

2 上邊的信息我們知道 /dev/sdb 4.6TB,現在使用parted 命令,如下圖。

 

3 進入parted 後,執行2,3,4,5,6,7,8,9,10,10,11步驟,指令下邊有解釋!

 

4 分區完成後使用print 可以看到剛纔分區的信息!大小 4684GB

 

5 quit 用於退出parted環境,信息提示更新/etx/fstab!

 

6 再用fdisk -l 來查看下 sdb硬盤,現在已經有sdb1 分區了,注意system gpt!

 

7 parted 到這裏就完成了!

 

下面格式化/dev/sdb1 文件系統爲EXT4:

 

1 執行 mkfs.ext4 /dev/sdb1 一路回車即可!

 

更新/etc/fstab :

 

1.使用blkid 查看分區的uuid 如下圖,複製新分區/dev/sdb1的 UUID

  

2 將 /dev/sdb1的 UUID 添加到 /etc/fstab,/dev/sdb1 掛載在 /data 目錄下!

 

3 至此全部完成, 下面檢查一下!

 

mount -a 重新掛載 /etc/fstab 文件中的記錄!

 

mount 可以發現 /dev/sdb1 已經掛載到 /data 目錄下了!

 

df -h 發現 /data 4.2TB

 

三 詳細介紹下Parted命令

 

[root@abintel ~]# parted --help

用法:parted [選項]... [設備 [命令 [參數]...]...]

將帶有“參數”的命令應用於“設備”。如果沒有給出“命令”,則以交互模式運行。

 

選項:

-h, --help                    顯示此求助信息

-i, --interactive             在必要時,提示用戶

-s, --script                  從不提示用戶

-v, --version                 顯示版本

 

命令:

檢查 MINOR                   對文件系統進行一個簡單的檢查

cp [FROM-DEVICE] FROM-MINOR TO-MINOR      將文件系統複製到另一個分區

help [COMMAND]                打印通用求助信息,或關於 COMMAND 的信息

mklabel 標籤類型              創建新的磁盤標籤 (分區表)

mkfs MINOR 文件系統類型       在 MINOR 創建類型爲“文件系統類型”的文件系統

mkpart 分區類型 [文件系統類型] 起始點 終止點      創建一個分區

mkpartfs 分區類型 文件系統類型 起始點 終止點 創建一個帶有文件系統的分區

move MINOR 起始點 終止點      移動編號爲 MINOR 的分區

name MINOR 名稱               將編號爲 MINOR 的分區命名爲“名稱”

print [MINOR]                 打印分區表,或者分區

quit                          退出程序

rescue 起始點 終止點          挽救臨近“起始點”、“終止點”的遺失的分區

resize MINOR 起始點 終止點    改變位於編號爲 MINOR 的分區中文件系統的大小

rm MINOR                      刪除編號爲 MINOR 的分區

select 設備                     選擇要編輯的設備

set MINOR 標誌 狀態           改變編號爲 MINOR 的分區的標誌

 

注意:


mklabel label-type 必須是一下這些類型:

 

* bsd

* loop (raw disk access)

* gpt

* mac

* msdos

* pc98

* sun

 

例:(parted) mklabel gtp 或者 (parted) mklabel msdos


mkpart(建立新分區)

 

格式:mkpart part-type fs-type start end 

 

建立一個新的分區

 

part-type是以下類型之一 primary(主分區), extended(擴展分區), logical(邏輯分區)。

 

fs-type來指定文件系統,比如ext4 。

 

start和end是新分區開始和結束的具體位置。0表示起止,-1表示結尾;或者以mb表示或者GB表示!

 

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章