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表示!