磁盤分區相關知識
使用磁盤分區的過程
設備識別→設備分區→創建文件系統→標記文件系統→在/etc/fstab文件中創建條目→掛載新的文件系統分區不是必須的,但是分區是必要的:
優化I/O性能
實現磁盤空間配額限制
提高修復速度
隔離系統和程序
安裝多個OS
采用不同文件系統不重啟激活新添加的磁盤:echo “- – -” > /sys/class/scsi_host/host0/scan
MBR分區(Master Boot Record)
使用32位表示扇區 數,分區不超過512*2^32=2TB
0磁道0扇區(成為mbr):512bytes
446bytes: boot loader (其他分區的第一個扇區也會余出446,但是是空的不存儲引導數據)
64bytes:分區表 記錄分區名 分區地址 其中16bytes標識一個分區 所以最多只能劃分四個分區 4個主分區;3主分區+1擴展(N個邏輯分區)
2bytes: 55AA 標識位 表示有分區的意思
新磁盤未分區的mbr全部為零 沒有分區表 查看分區前512字節 分區結構圖
GPT分區(Globals Unique Identifiers)
支持128個分區,使用64位 支持8Z( 512Byte/block )或者64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盤 和分區 GPT分區表自動備份在頭和尾兩份,并有CRC校驗位
UEFI (統一擴展固件接口)硬件支持GPT,使操作系統啟動(BIOS本身不支持GPT分區的,只能利用UEFI技術 才能啟動系統UEFI+GPT=BIOS+MBR)
GPT分區結構圖
創建分區
列出塊設備 lsblk
創建分區使用:
fdisk 創建MBR分區
gdisk 創建GPT分區
parted 高級分區操作(二者都可以)
partprobe-重新設置內存中的內核分區表版本
parted
直接輸入以交互式方式進行分區操作
Parted /dev/sdb
也可以使用非交互式進行分區操作
用法:parted [選項]… [設備 [命令 [參數]…]…]
parted /dev/sdb mklabel gpt|msdos
指定用分區方式(即格式化分區)
parted /dev/sdb print 顯示分區表
parted /dev/sdb mkpart primary 1 200 (默認M)創建分區
parted /dev/sdb rm 1
刪除磁盤分區 按照編號刪除
parted -l 顯示磁盤分區信息
GPT和MBR分區沒有必要進行轉換,一但轉換內部信息會被破壞,因為二者分區的結構不同
延伸:
對于MBR分區來說,若0磁道0扇區的mbr被破壞(即前512字節),會造成嚴重后果,機器無法啟動。
利用lsblk仍可以看到分區信息,fdisk看不到,因為分區表一份在磁盤一份在內存,二者是不同步的。
如何恢復?
- 可以將512字節分區表提前備份到本地和其他主機
- 當磁盤的mbr分區表被破壞后,當沒有重啟,可以利用本地備份的分區表恢復
gdisk和fdisk(交互式和非交互)
gfisk /dev/sdb 類fdisk 的GPT分區工具
交互:
fdisk /dev/sdb 管理分區非交互:
fdisk -l [-u] [device…] 查看分區
子命令:
p 分區列表
t 更改分區類型
n 創建新分區
d 刪除分區
v 校驗分區
u 轉換單位
Centos7默認以扇區為單位,可以選擇以柱面為單位
同步分區
fdisk -l /dev/磁盤名 查看磁盤真實分區信息
lsblk 或者cat /proc/partations
查看內存中分區表通過以上兩個命令可以看分區時不是已經同步
不同步解決辦法
-
centos6 通知內核重新讀取硬盤分區表
新增分區后用
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f: force刪除分區后用 partx -d –nr M-N /dev/DEVICE
-
CentOS 5、7知內核重新讀取硬盤分區表
使用partprobe [/dev/DEVICE]
一旦新增和刪除分區,一定要記得同步分區表
PS:LINUX小白 敬請指教
原創文章,作者:OscaoChaser,如若轉載,請注明出處:http://www.www58058.com/85141