Linux系统之fdisk详解

fdisk 是一个在 Linux 和其他 Unix 类操作系统中广泛使用的命令行工具,用于查看和管理磁盘分区表。它支持多种分区表格式,包括 MBR(主引导记录)和 GPT(GUID 分区表),但默认情况下主要操作MBR类型的磁盘。
基本语法
fdisk [选项] 设备
fdisk -l [设备...] # 列出分区表
fdisk -s 分区... # 显示分区大小(块数)
fdisk -v # 显示版本
fdisk -h # 显示帮助
描述
fdisk 是一个交互式工具,用于管理磁盘分区表。支持多种分区表格式,包括:
GPT(实验性支持)MBR(传统主引导记录)Sun、SGI、BSD 等系统专用格式
关键功能:
创建、删除、调整分区大小设置分区类型(如 Linux 文件系统、交换分区)标记启动分区(MBR 格式)
设备与分区命名规则
设备路径:
现代系统:/dev/sda(SCSI/SATA/USB 等)旧系统:/dev/hda(IDE 硬盘)整个磁盘操作时需指定设备名(如 /dev/sda)。 分区路径:
主分区:/dev/sda1、/dev/sda2 等逻辑分区:/dev/sda5、/dev/sda6 等(从编号 5 开始)
分区表类型详解
1. DOS/MBR 分区表
特点:
最多支持 4 个主分区(或 3 主 + 1 扩展分区)。扩展分区中可包含多个逻辑分区(编号从 5 开始)。支持最大 2TB(512 字节扇区)。 注意事项:
BIOS 通常只能访问前 1024 磁道,大容量磁盘需引导分区位于此范围内。部分旧系统(如 DOS)依赖 C/H/S 格式,需注意兼容性。
2. BSD/SUN 分区表
特点:
支持 8 个分区(BSD)或 16 个分区(SGI)。第 3 分区(BSD)或第 11 分区(SGI)需为 全盘分区。
3. GPT 分区表
特点:
支持 最多 128 个分区。兼容大容量磁盘(>2TB)。安全性更高(CRC 校验、备份分区表)。
常用选项
显示类选项
-l:列出指定设备的分区表-s 分区:显示分区大小(以块为单位)-v:显示版本信息-h:显示帮助信息
格式化选项(已弃用)
-b 扇区大小:指定磁盘扇区大小(512/1024/2048/4096)-C 柱面数:指定柱面数-H 磁头数:指定磁头数(通常255或16)-S 每磁道扇区数:指定每磁道扇区数(通常63)
兼容性选项
-u[=单位]:显示单位(cylinders/柱面或sectors/扇区)-c[=模式]:兼容模式(dos或nondos)
交互模式常用命令
进入交互模式后(如fdisk /dev/sdb),可使用以下命令:
基础命令
m:显示帮助菜单p:打印分区表q:不保存退出w:保存并退出
分区操作
n:新建分区d:删除分区t:更改分区类型a:切换启动标志
高级功能
g:创建新的GPT分区表o:创建新的DOS分区表v:验证分区表i:显示分区信息
环境变量
变量名作用FDISK_DEBUG=0xffff启用调试模式(需内核支持)。
退出状态
状态码含义0成功。1通用错误(如无效参数、权限不足)。2输入/输出错误。
示例
示例 1:交互式操作磁盘分区表
sudo fdisk /dev/sda
# 进入交互模式后,可用以下命令:
# n - 新建分区
# d - 删除分区
# p - 列出分区表
# w - 保存并退出
示例 2:列出所有磁盘分区表
sudo fdisk -l
示例 3:查看 /dev/sda2 的大小(块数)
sudo fdisk -s /dev/sda2
示例 4:查看版本信息
fdisk -v
常见问题
Q: 执行 fdisk 时提示“无法打开设备”?
A:
确认设备路径正确(如 /dev/sda)。检查权限,需以 root 用户执行。确保磁盘已连接且未被挂载。
Q: 如何区分主分区和逻辑分区?
A:
主分区编号为 1-4,逻辑分区从 5 开始。扩展分区本身不存储数据,仅作为逻辑分区的容器。
Q: GPT 分区表如何转换为 MBR?
A:
不建议直接转换,需备份数据后重新分区。使用 gdisk 工具可辅助转换(需谨慎操作)。
Q: 为什么某些分区无法被 Windows 识别?
A:
确保分区类型正确(如 NTFS/FAT32)。对于 GPT 磁盘,需检查是否包含 EFI 系统分区(ESP)。
注意事项
数据安全:
分区操作会永久删除数据,操作前务必备份重要数据。使用 dd 清除分区前 512 字节以兼容旧版 DOS/Windows(如 dd if=/dev/zero of=/dev/sda1 bs=512 count=1)。 兼容性问题:
若与 Windows/DOS 共享磁盘,建议先用对方系统工具创建分区。避免使用已弃用的 -C、-H、-S 选项,现代系统自动检测磁盘参数。 权限要求:
需要 root 权限 执行分区操作:sudo fdisk /dev/sda
GPT 与 MBR 选择:
新磁盘推荐使用 GPT(支持大容量,安全性高)。BIOS 系统需 MBR,UEFI 系统可选择 GPT。