一、MBR分區結構
主引導記錄(Master Boot Record,縮寫:MBR),又叫做主引導扇區,是目前比較流行的一種分區結構。磁盤的0磁道0扇區稱為MBR,它的大小是512字節,這個區域被分為三個部分:
第一部分為boot loader(主引導程序),占446字節;
第二部分為Partition table(分區表),即DPT,占64字節,每個分區項占用16個字節,這16個字節中存有活動狀態標志、文件系統標識、起止柱面號、磁頭號、扇區號、隱含扇區數目(4個字節)、分區總扇區數目(4個字節)等內容。由于MBR扇區只有64個字節用于分區表,所以只能記錄4個分區的信息;
第三部分是分區標識符,固定為55AA,占2字節,這個標識非常重要,如果這個標識被破壞,即便磁盤正常分區也會被認為這塊磁盤是一塊全新的沒有被分區的盤。
因為MBR分區方案采用的4個字節存儲分區的總扇區數,最大能表示2的32次方的扇區個數,按每扇區512字節計算,MBR分區表最大可尋址的存儲空間只有2TB(2^32×512字節),因此MBR只支持2TB以下的硬盤,超過2TB的硬盤也只能管理2TB。
MBR分區包括主分區和擴展分區,主分區和擴展分區的總數不能超過4個,標識編號為1-4,主分區可以直接使用,但是擴展分區需要劃分成邏輯分區后才能使用,邏輯分區的數量不受限制,標識編號從5開始。一般的MBR分區方式為3個主分區加1個擴展分區,擴展分區下面再劃分多個邏輯分區。
二、GPT分區結構
GPT磁盤是指使用GUID分區表的磁盤。是源自EFI標準的一種較新的磁盤分區表結構的標準。與普遍使用的主引導記錄(MBR)分區方案相比,GPT提供了更加靈活的磁盤分區機制。
在GPT分區表的最開頭(LBA0),處于兼容性考慮仍然存儲了一份傳統的MBR,用來防止不支持GPT的硬盤管理工具錯誤識別并破壞硬盤中的數據,這個MBR也叫做保護MBR。
GPT分區表分為4個區域:GPT頭、分區表、GPT分區、備份區。
-
GPT頭:起始于磁盤的 LBA1,通常也只占用這個單一扇區。其作用是定義分區表的位置和大小。GPT頭還包含頭和分區表的校驗和,這樣就可以及時發現錯誤。
-
分區表:分區表區域包含分區表項。這個區域由GPT頭定義,一般占用磁盤LBA2~LBA33扇區。分區表中的每個分區項由起始地址、結束地址、類型值、名字、屬性標志、GUID值組成。分區表建立后,128位的GUID對系統來說是唯一的。
-
GPT分區:最大的區域,由分配給分區的扇區組成。這個區域的起始和結束地址由GPT頭定義。
-
備份區:備份區域位于磁盤的尾部,包含GPT頭和分區表的備份。它占用GPT結束扇區和EFI結束扇區之間的33個扇區。其中最后一個扇區用來備份1號扇區的EFI信息,其余的32個扇區用來備份LBA2~LBA33扇區的分區表。
三、磁盤分區命令總結
1、在虛擬機中添加幾塊硬盤,添加完之后正常需要重啟虛擬機才能看到新加硬盤,如果不想重啟可以使用命令掃描
[root@liang ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
2、查看磁盤命令
lsblk、cat /proc/partitions、ls /dev/sd* 三個命令都可以列出加載到內存中的磁盤設備
fdisk -l:命令看到的是實際硬盤的分區情況
3、創建磁盤分區命令
fdisk:主要用來創建MBR分區,也可以創建GTP分區,但是一般不用該命令創建GPT分區。
fdisk <disk> : 更改磁盤分區
常用的子命令有:
n:新建分區
d:刪除分區
p:打印分區列表
m:幫助
t:更改分區類型
w:保存退出
q:不保存退出
fdisk -l <disk>: 列出磁盤分區
gdisk:創建GPT分區,創建分區時的用法與fdisk基本一樣,常用的子命令也基本一樣。
parted:該命令也可以創建和刪除分區,但是不建議使用,因為該命令是實時對磁盤進行分區修改的,一旦執行立即生效。
parted /dev/DEVICE mklable gpt|msdos:更改GPT格式分區和MBR格式分區 parted /dev/DEVICE print:打印分區列表 parted /dev/DEVICE mkpart primary NUM SIZE:創建主分區,需要指定分區號和分區大小,默認單位為“M” parted /dev/DEVICE rm NUM:刪除分區,需要制定分區號 parted -l:列出所有塊設備的分區列表
4、同步分區表
使用fdisk命令或gdisk命令新建或刪除分區后有時內存不能立即識別,這是需要手動同步分區列表。
在CentOS5和CentOS7中一般使用 partprobe 命令同步,但在CentOS6中使用該命令后無效,需要使用partx命令。
partprobe的用法:partprobe [/dev/DEVICE] ,如果不跟硬盤默認為全部硬盤
partx的用法:
新增分區后同步需要使用-a選項:partx -a /dev/DEVICE
刪除分區后同步需要使用-d選項和-n選項:partx -d -n M:N /dev/DEVICE
5、創建文件系統(格式化分區)
cat /proc/filesystems :可以查看系統支持的文件系統類型
mkfs命令的用法有兩種:
mkfs.FS_TYPE /dev/DEVICE 和 mkfs -t FS_TYPE /dev/DEVICE
FS_TYPE包括:ext系列、vfat、xfs(CentOS7)、msdos、btrfs等
mkfs -L 'LABEL' :設置分區LABER
mke2fs:ext系列文件系統專用管理工具
常用選項:
-t:指定文件系統類型(ext2、ext3、ext4)
-b:設置默認block大?。?023|2014|4096)
-L 'LABEL':設置分區LABER
-j:相當于 -t ext3,格式化成帶有記錄日志功能的ext2文件系統
-i #:為數據空間中每多少個字節創建一個inode,次大小不應該小于block的大小
-N #:為數據空間創建多少個inode
-I:一個indoe記錄大小128–4096
-m:默認為5%,為管理員預留空間占分區總空間的百分比
-o FEATURE:啟用指定特性
-o ^FEATURE:關閉指定特性
6、查看文件系統信息
blkid:查看塊設備屬性信息
用法:blkid[OPTION]… [DEVICE]
-U "UUID":根據指定的UUID來查找對應的設備
-L "LABEL":根據指定的LABEL來查找對應的設備
e2label:管理ext系列文件系統的LABEL
用法: e2label device [ new-label ]
findfs:查找分區,可以指定根據label查看或根據uuid查看
用法:findfs LABEL=<label>|UUID=<uuid>
tune2fs 命令可查看或重新設定ext系列文件系統的參數值
-l:查看指定文件系統超級塊信息
-L 'LABEL':修改卷標
-m #:修改預留給管理員的空間百分比
-j:將ext2升級為ext3
-O:文件系統屬性啟用或禁用
-o:調整文件系統的默認掛載選項
-U ‘UUID’:修改UUID號
dumpe2fs -h DEVICE:查看超級塊信息(分組信息)
7、文件系統檢測和修復
常用于死機或者非正常關機之后,掛載的文件系統標記為“dirty”。
fsck命令的用法:
fsck.FS_TYPE 或 fsck -t FS_TYPE
-a:自動修復錯誤
-r:交互式修復錯誤
e2fsck:ext系列文件系統專用檢測修復工具
-y:自動回答為yes
-f:強制修復
原創文章,作者:苦澀咖啡,如若轉載,請注明出處:http://www.www58058.com/40386
文章對磁盤分區的要點,進行了完整的表述,但是對于swap分區的知識點未能涉及到。同時缺少了實踐,對于學習linux,只有多練習,才能發現問題。時間實踐真理的唯一標準哦。