fdisk

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:文件系统名称。





阅读 74