本文為joshua317原創文章,轉載請注明:轉載自joshua317博客 一天一個 Linux 命令(26):fdisk 命令 - joshua317的博客
一、簡介
Linux里的fdisk(英文全稱:"Partition table manipulator for Linux")是一個創建和維護磁盤磁區表的命令,它兼容 DOS 型別的磁區表、BSD 或者 SUN 型別的磁盤串列,進行硬碟磁區從實質上說就是對硬碟的一種格式化, 用一個形象的比喻,磁區就好比在一張白紙上畫一個大方框,而格式化好比在方框里打上格子,
二、格式說明
fdisk [options]
fdisk [引數]
Usage:
fdisk [options] <disk> change partition table
fdisk [options] -l <disk> list partition table(s)
fdisk -s <partition> give partition size(s) in blocks
Options:
-b <size> sector size (512, 1024, 2048 or 4096)
-c[=<mode>] compatible mode: 'dos' or 'nondos' (default)
-h print this help text
-u[=<unit>] display units: 'cylinders' or 'sectors' (default)
-v print program version
-C <number> specify the number of cylinders
-H <number> specify the number of heads
-S <number> specify the number of sectors per track
三、選項說明
-b 指定每個硬碟磁區的大小,可用數值為512, 1024, 2048 or 4096
-c 兼容模式:'dos'或'nondos'(默認)
-h 顯示幫助資訊
-u 搭配”-l”引數串列,會用磁區數目取代柱面數目,來表示每個磁區的起始地址
-v 顯示版本資訊
-l 列出指定的外圍設備的磁區表狀況
-s 將指定的磁區大小輸出到標準輸出上,以塊(block)為單位
-C [cyls]:指定硬碟的柱面數(number of cylinders);
-H [heads]:指定硬碟的磁頭數(number of heads),當然不是物理數值,而是作用于磁區表,合理取值是255和16
-S [sects]:指定每個磁道的扇區數,當然不是物理數值,而是用于磁區表,一個合理的數值是63
塊(block)與扇區(sector)的區別, 扇區是對硬碟而言,扇區是硬碟的最小存盤單位,塊是對檔案系統而言,塊是檔案系統最小存取單位,一般而言,一個扇區大小為512B,一個塊大小為4KB,一個block是由連續的8個sector組成,
理解上面選項的含義,需了解磁盤的物理組成結構與相關概念,例如sector、cylinder、head等組成部件的具體含義,可參見硬碟的存盤原理和內部架構 ,
四、命令功能
創建和維護磁盤磁區表
五、常見用法
5.1 顯示當前磁區情況
# fdisk -l
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d64b4
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 104857566 52427759+ 83 Linux
# fdisk -lu
Disk /dev/vda: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000d64b4
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 104857566 52427759+ 83 Linux
#引數說明
Device:磁區名稱;
Boot:是否是活動磁區,活動磁區只能是主磁區,一個硬碟只能有一個活動的主磁區;一個硬碟的主磁區與擴展磁區總和不能超過4個,硬碟磁區遵循著“主磁區→擴展磁區→邏輯磁區”的次序原則,而洗掉磁區則與之相反,
主磁區:一個硬碟可以劃分多個主磁區,但沒必要劃分那么多,一個足矣,
擴展磁區:主磁區之外的硬碟空間就是擴展磁區,
邏輯磁區:是對擴展磁區再行劃分得到的,
Start:磁區柱面的開始下標;
End:磁區柱面的結束下標;
Blocks:該磁區的塊數量,
Id:各種磁區的檔案系統不同,如有ntfs磁區,fat32磁區,ext3磁區,swap磁區等,每一種檔案系統都有一個代號,對應這里的Id,常見的檔案系統ID有:
f:FAT32 Extend,只限于擴展磁區,
86:NTFS,
7:HPFS/NTFS
b:FAT32,
83:Linux Ext2,
82:Linux 交換區,
System:檔案系統名稱,
5.2 顯示指定設備的磁區
# fdisk -l /dev/vdb
Disk /dev/vdb: 107.4 GB, 107374182400 bytes, 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xeecbd2e1
Device Boot Start End Blocks Id System
/dev/vdb1 2048 209715199 104856576 83 Linux
[root@iz8vb6yk5a7gzhaw7901zkz ~]#
5.3 對指定設備創建磁區和檔案系統并掛載,使磁盤變為可用
5.3.1 創建一個磁區
1.運行以下命令對資料盤進行磁區,
fdisk -u /dev/vdb
2.輸入p查看資料盤的磁區情況,
本示例中,資料盤沒有磁區,
3.輸入n創建一個新磁區,
4.輸入p選擇磁區型別為主磁區,
說明 創建一個單磁區資料盤可以只創建主磁區,如果要創建四個以上磁區,您應該至少選擇一次e(extended),創 建至少一個擴展磁區,
5.輸入磁區編號,按回車鍵,
本示例中,僅創建一個磁區,直接按回車鍵,采用默認值1,
6.輸入第一個可用的扇區編號,按回車鍵,
本示例中,直接按回車鍵,采用默認值2048,
7.輸入最后一個扇區編號,按回車鍵,
本示例中,僅創建一個磁區,直接按回車鍵,采用默認值,
8.輸入p查看該資料盤的規劃磁區情況,
9.輸入w開始磁區,并在完成磁區后退出,
結果如下所示:

5.3.2 查看新磁區資訊
fdisk -lu /dev/vdb
運行結果如下所示,如果出現/dev/vdb1的相關資訊,表示新磁區已創建完成,

5.3.3 為磁區創建檔案系統
在新磁區上創建一個檔案系統,以下命令介紹如何創建ext4和xfs檔案系統,您可以根據實際需求,創建對應的檔案系統,
-
運行以下命令,創建一個ext4檔案系統,
mkfs -t ext4 /dev/vdb1 -
運行以下命令,創建一個xfs檔案系統,
mkfs -t xfs /dev/vdb1
本示例中,創建一個ext4檔案系統,

5.3.4 配置/etc/fstab檔案并掛載磁區
在/etc/fstab中寫入新磁區資訊,啟動開機自動掛載磁區,
注意: 建議您在/etc/fstab中使用全域唯一識別符號UUID來參考新磁區,由于釋放云盤等操作可能會導致其他云盤的設備名變動,如果在/etc/fstab中直接使用設備名,當設備名變動時可能影響您的存盤資料,
1.運行以下命令,備份/etc/fstab檔案,
cp /etc/fstab /etc/fstab.bak
2.在/etc/fstab里寫入新磁區資訊,
如果是root用戶,可以運行以下命令直接修改/etc/fstab檔案,如果是普通用戶,可以手動修改/etc/fstab檔案
echo `blkid /dev/vdb1 | awk '{print $2}' | sed 's/\"//g'` /mnt ext4 defaults 0 0 >> /etc/fstab
其中:
/dev/vdb1:已創建好檔案系統的資料盤磁區,您需要根據實際情況修改對應的磁區名稱,
/mnt:掛載(mount)的目錄節點,您需要根據實際情況修改,
ext4:磁區的檔案系統型別,您需要根據創建的檔案系統型別修改,
注意:
說明 Ubuntu 12.04系統不支持barrier,需要運行echo '`blkid /dev/vdb1 | awk '{print $3}' | sed 's/\"//g'` /mnt ext4 barrier=0 0 0' >> /etc/fstab命令,
3.查看/etc/fstab中的新磁區資訊,
cat /etc/fstab
結果如下所示,如果出現新建檔案系統的資訊,表示檔案系統掛載成功

4.掛載/etc/fstab配置的檔案系統
mount -a
5.檢查掛載結果,
df -h
結果如下所示,如果出現新建檔案系統的資訊,表示檔案系統掛載成功,

本文為joshua317原創文章,轉載請注明:轉載自joshua317博客 一天一個 Linux 命令(26):fdisk 命令 - joshua317的博客
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/317740.html
標籤:其他
上一篇:016 CentOS7新增硬碟
下一篇:Zabbix搭建
