1、概述
Linux里的fdisk(英文全称:"Partition table manipulator for Linux")是一个创建和维护磁盘分区表的命令,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子。
块(block)与扇区(sector)的区别:
扇区是对硬盘而言,扇区是硬盘的最小存储单位,一个扇区大小为512B
块是对文件系统而言,块是文件系统最小存取单位,一个块大小为4KB
一个block是由连续的8个sector组成。
理解上面选项的含义,需了解磁盘的物理组成结构与相关概念,例如sector、cylinder、head等组成部件的具体含义,可参见硬盘的存储原理和内部架构 。
2、格式
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:指定每个硬盘分区的大小,可用数值为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
3、用例
例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
#参数说明
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:文件系统名称。

