Linux磁盘分区管理工具fdisk详解
fdisk命令基础用法
fdisk [选项] <设备路径> 用于编辑磁盘的分区表,支持DOS、BSD及Sun风格的分区结构。对于超过2TB容量的硬盘,应使用 gdisk 工具。
常用选项说明
-l:列出指定设备的所有分区信息-s <分区>:以扇区为单位输出指定分区大小-b <size>:设置扇区大小(512、1024、2048或4096字节)-u:以扇区编号代替柱面编号显示分区位置-c:禁用DOS兼容模式-C <num>:指定柱面数量-H <num>:设定磁头数-S <num>:设定每磁道扇区数
交互式菜单操作
| 命令 | 功能描述 |
|---|---|
| p | 显示当前分区表 |
| n | 创建新分区(主分区或逻辑分区) |
| d | 删除指定分区 |
| t | 更改分区类型标识符 |
| a | 切换活动分区标记 |
| l | 列出所有已知的分区类型 |
| w | 保存修改并退出 |
| q | 放弃修改并退出 |
| m | 显示帮助信息 |
| u | 切换显示单位(柱面/扇区) |
| v | 验证分区表完整性 |
| x | 进入专家模式(高级功能) |
设备命名规范
在现代系统中:
sda表示第一块SATA或SCSI接口硬盘hda代表传统的IDE接口硬盘- 后缀数字表示分区编号,如
sda1是第一块硬盘的第一个分区
实例演示
1. 查看所有磁盘分区详情
# fdisk -l /dev/sda Disk /dev/sda: 107.4 GB, 107374182400 bytes 255 heads, 63 sectors/track, 13054 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux /dev/sda2 64 13055 104344576 8e Linux LVM
2. 使用扇区单位查看分区布局
# fdisk -lu /dev/sda Disk /dev/sda: 107.4 GB, 107374182400 bytes ... Units = sectors of 1 * 512 = 512 bytes Device Boot Start End Blocks Id System /dev/sda1 * 2048 1026047 512000 83 Linux /dev/sda2 1026048 209715199 104344576 8e Linux LVM
3. 新建分区流程
[root@host ~]# fdisk /dev/sdb
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-4194303, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +10G
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
4. 删除与修改分区类型
Command (m for help): d Partition number (1-4): 1 Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): b Changed system type of partition 1 to b (W95 FAT32)
5. 分区变更生效方法
当对正在使用的磁盘进行分区操作时,内核可能仍使用旧的分区表,需手动刷新:
- 重启系统(最稳妥方式)
- 执行
partprobe /dev/sdb刷新分区表 - 或使用
kpartx -a /dev/sdb处理映像文件场景 partx -a /dev/sdb可添加新分区,partx -d /dev/sdb可删除
注意:partprobe 仅更新分区表信息;而 kpartx 主要用于处理加密镜像或容器中的分区映射。