fdisk命令是一个创建和维护分区表的一个命令工具,主要用来对磁盘进行分区操作管理。
语法:fdisk [参数] [磁盘]
必要的参数为:
-l:列出所有分区表信息
-u:显示分区数目,通常与-l配合使用
选择性参数:
-s:<分区编号> 指定分区
-v:版本信息
操作菜单操作说明:
m:显示菜单和帮助信息
a:活动分区标记/引导分区
d:删除分区
l:显示分区类型
n:新建分区
p:显示分区信息
q:退出不保存
t:设置分区号
v:进行分区检查
w:保存修改
x:扩展应用,高级功能
[root@CentOS7 ~]# fdisk -l磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节磁盘标签类型:dos磁盘标识符:0x000b78b7 设备 Boot Start End Blocks Id System/dev/sda1 * 2048 976895 487424 83 Linux/dev/sda2 976896 104857599 51940352 8e Linux LVM磁盘 /dev/mapper/rootvg-lv_root:27.9 GB, 27917287424 字节,54525952 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节磁盘 /dev/mapper/rootvg-lv_swap:4294 MB, 4294967296 字节,8388608 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节磁盘 /dev/mapper/rootvg-lv_app:21.0 GB, 20971520000 字节,40960000 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节
[root@CentOS7 ~]# fdisk -l /dev/sda磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节磁盘标签类型:dos磁盘标识符:0x000b78b7 设备 Boot Start End Blocks Id System/dev/sda1 * 2048 976895 487424 83 Linux/dev/sda2 976896 104857599 51940352 8e Linux LVM
[root@CentOS7 ~]# fdisk -l /dev/sdb磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节
输出以上内容,只有磁盘信息,没有分区信息,说明该磁盘是一块新盘,还没有进行分区操作或已分区,但没有保存新区分区。
4、管理指定的硬盘
[root@CentOS7 ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xa0323192 创建新的 DOS 磁盘标签。The device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.命令(输入 m 获取帮助):m命令操作 a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only)命令(输入 m 获取帮助):
主要是为了对硬盘进行分区管理使用,下面简单介绍一下如何新建分区。使用“fdisk 硬盘”后,如果不知道哪个命令来分区,可以使用“m”命令来获取一些帮助信息。如上输出所示。
如果想分区,可以按“n”来新建一个分区。如下所示:
[root@CentOS7 ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xa0323192 创建新的 DOS 磁盘标签。The device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p):
输入“n”之后呢,此时让你选择“主区分”或“扩展分区”,如果不选默认会自动选择“主分区”,在实际工作中创建时可以根据实际情况选择分区创建。
那“0 primary, 0 extended, 4 free”代表什么意思呢?
意思是说:当前磁盘上还没有任何分区(0 primary),也没有扩展分区(0 extended),但有4个可供创建主分区的空闲槽位(4 free)。
它们分区代表什么意思呢?
1、主分区(primary)
1. 该分区可以直接用来安装操作系统,存入数据;
2. MBR磁盘最多只能有4个主分区(编号为:1-4);
3. 可以标记为“活动分区”,用于启动操作系统;
2、扩展分区(extended)
1. 它是一种特殊的分区,本身不能直接存储数据;
2. 它的主要作用是:用来在它里面创建逻辑分区;
3. 一个磁盘最多只能有1个扩展分区;
4. 如果需要超过4个分区,必须要把其中一个主分区改成扩展分区,然后在扩展分区里划分多个逻辑分区;
3、空闲槽位/可创建分区的剩余位置(free)
1. 指在分区表中,还可以创建多个少主分区或扩展分区;
2. 它的计算方式一般是:
1. MBR分区表最多4条记录(主分区+扩展分区的总数<=4);
2. free=4-(现有主分区数+现有扩展分区数);
在上面一直提到MBR,那它到底是什么意思呢?
MBR是电脑上磁盘的第一个分区(通常位于第0面、第0磁道和第1个扇区),容易很小,但作用极其关键。
MBR是一种老式的磁盘分区方案,最大只支持2TB硬盘和4个主分区,现在已经逐渐被GPT取代。primary (0 primary, 0 extended, 4 free) 就是MBR分区表下的典型状态。
那介绍了“主分区”、“扩展分区”和“MBR”的含义了,接下来,咱们创建第一个分区,接着上面的操作,选择“p”(可以根据实际工作情况选择)。如下所示:
[root@CentOS7 ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xa0323192 创建新的 DOS 磁盘标签。The device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p分区号 (1-4,默认 1):
此时让选择分区号,如果没有分区过,此时默认是从1开始的,我们选择1,如下所示:
[root@CentOS7 ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xa0323192 创建新的 DOS 磁盘标签。The device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p分区号 (1-4,默认 1):1起始 扇区 (2048-20971519,默认为 2048):
此时让选择起启的扇区,因为这是第一次分区,扇区的起始数比较小,我们选择默认。如下图所示:
[root@CentOS7 ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xa0323192 创建新的 DOS 磁盘标签。The device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p分区号 (1-4,默认 1):1起始 扇区 (2048-20971519,默认为 2048):2048Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
此时让选择终止的扇区,意思是说该分区要分多大的的意思,默认是分到最大,日常工作中根据实际情况进行填写即可,以分1G为例。如下所示:
[root@CentOS7 ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xa0323192 创建新的 DOS 磁盘标签。The device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p分区号 (1-4,默认 1):1起始 扇区 (2048-20971519,默认为 2048):2048Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+1G分区 1 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):
此时已经分好分区了,但不要认为这样就完成了操作,因为还没有做保存操作(不保存是不生效的),分完之后,一定要保存。如下所示:
[root@CentOS7 ~]# fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。Device does not contain a recognized partition table使用磁盘标识符 0xa0323192 创建新的 DOS 磁盘标签。The device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.命令(输入 m 获取帮助):nPartition type: p primary (0 primary, 0 extended, 4 free) e extendedSelect (default p): p分区号 (1-4,默认 1):1起始 扇区 (2048-20971519,默认为 2048):2048Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+1G分区 1 已设置为 Linux 类型,大小设为 1 GiB命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.正在同步磁盘。
此时1G分区已经被保存。验证一下分别情况。如下所示:
[root@CentOS7 ~]# fdisk -l /dev/sdb磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节磁盘标签类型:dos磁盘标识符:0xa0323192 设备 Boot Start End Blocks Id System/dev/sdb1 2048 2099199 1048576 83 Linux
其中“/dev/sdb1”就是刚才分出的1G大小的分区。或是使用“p”命令进行查看。如下所示:
[root@CentOS7 ~]# fdisk /dev/sdbThe device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。命令(输入 m 获取帮助):p磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节磁盘标签类型:dos磁盘标识符:0xa0323192 设备 Boot Start End Blocks Id System/dev/sdb1 2048 2099199 1048576 83 Linux命令(输入 m 获取帮助):
到这里会有同学会问到,分区已经分好了,是不是就能正常使用该分区了,可以往该分区中存储数据了,答案是否定的,虽说已经分好了分区,但是分区还没有被格式化,所以现在还不能正式使用。需要先对分好的分区进行格式化操作后才能正式使用。如下所示:
[root@CentOS7 ~]# mkfs.xfs /dev/sdb1meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65536 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blksnaming =version 2 bsize=4096 ascii-ci=0 ftype=1log =internal log bsize=4096 blocks=2560, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1realtime =none extsz=4096 blocks=0, rtextents=0
此时格式化也做好了,但为什么使用“df”命令,看不到刚才分好的分区呢,这是因为虽说分区已经分好,也被格式化了,但需要挂载之后才能正常使用。如下图所示:
[root@CentOS7 ~]# mkdir /test[root@CentOS7 ~]# mount /dev/sdb1 /test[root@CentOS7 ~]# df -Th /test文件系统 类型 容量 已用 可用 已用% 挂载点/dev/sdb1 xfs 1014M 33M 982M 4% /test[root@CentOS7 ~]# echo "1" >/test/1.txt
[root@CentOS7 ~]# fdisk /dev/sdbThe device presents a logical sector size that is smaller thanthe physical sector size. Aligning to a physical sector (or optimalI/O) size boundary is recommended, or performance may be impacted.欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中,直到您决定将更改写入磁盘。使用写入命令前请三思。命令(输入 m 获取帮助):d已选择分区 1分区 1 已删除命令(输入 m 获取帮助):wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)正在同步磁盘。
删除一个分区后,也需要进行保存之后才能生效。验证删除分区情况。如下所示:
[root@CentOS7 ~]# fdisk -l /dev/sdb磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区Units = 扇区 of 1 * 512 = 512 bytes扇区大小(逻辑/物理):512 字节 / 4096 字节I/O 大小(最小/最佳):4096 字节 / 4096 字节磁盘标签类型:dos磁盘标识符:0xa0323192 设备 Boot Start End Blocks Id System
喜欢古诗词的同学们,欢迎移步「纸间有糖」,愿这里的文字甜到你心里。