使用fdisk进行磁盘分区,核心步骤是:运行fdisk命令进入交互模式,用n创建分区,选择p设置主分区,用w保存退出,分区前确认磁盘设备名,分区后需格式化才能挂载。
fdisk分区前的准备
在动手操作之前,先确认磁盘信息和分区表类型,避免误操作导致数据丢失。
- 查看磁盘列表:运行
lsblk或fdisk -l,找出目标磁盘(如/dev/sdb),如果磁盘未分区,设备名下不会有分区节点。 - 备份重要数据:分区操作会改写磁盘开头区域,一旦写错很难恢复,建议用
dd或分区工具提前备份分区表。 - 确认分区表类型:
fdisk -l输出中会显示“Disklabel type”,常见的有dos(MBR)和gpt,MBR支持最大2TB磁盘,主分区最多4个;GPT支持更大容量,无主分区数量限制,新版fdisk同时支持两种类型,但默认使用MBR。
行业共识认为,在Linux系统上,fdisk仍是最常用的分区工具之一,因为它简单、高效,且几乎所有发行版都预装。
fdisk分区命令详解
fdisk提供两种模式:命令行参数模式和交互模式,掌握常用命令参数,能快速完成分区操作。
交互模式常用命令
进入交互模式后,输入单字母命令执行操作:
- p:打印当前分区表
- n:创建新分区
- d:删除分区
- t:更改分区类型(如83代表Linux,8e代表LVM)
- w:写入分区表并退出
- q:不保存退出
命令行参数示例
fdisk -l:列出所有磁盘的分区表fdisk -l /dev/sdb:查看指定磁盘分区表fdisk /dev/sdb:直接进入交互模式(不加参数)
分区类型代码速查
常用类型代码可通过fdisk -l末尾的“Hex code”列表查看,或直接输入l显示所有类型。83是Linux原生分区,8e是LVM逻辑卷,82是swap交换分区。
fdisk创建主分区步骤
创建主分区是最常见的场景,下面以在/dev/sdb上创建一个100GB主分区为例,详细拆解每一步。
步骤1:进入分区交互界面
sudo fdisk /dev/sdb
如果磁盘有旧分区表,系统会提示“Device does not contain a recognized partition table”,此时输入g创建GPT分区表,或输入o创建MBR分区表。建议新磁盘直接使用GPT,以免后续扩容受限。
步骤2:创建新分区
输入n,进入分区创建流程:
- Select partition number:直接回车默认下一个可用编号(如1)。
- First sector:回车使用默认起始扇区(2048),对齐到4K物理扇区。
- Last sector:输入
+100G指定分区容量为100GB,或直接输入结束扇区编号。
步骤3:设置分区类型
输入t,然后输入类型代码。83是Linux文件系统,8e是LVM,如果分区用于普通数据存储,保持83即可。
步骤4:保存并退出
输入w,系统将写入分区表并退出,如果不想保存,输入q取消。
步骤5:验证分区
执行fdisk -l /dev/sdb
,确认新分区已列出,如/dev/sdb1。
统计数据显示,大多数首次使用fdisk的用户会在w之前忘记创建分区,建议养成先p查看再w的习惯。
fdisk分区其他操作
除了创建主分区,fdisk还支持扩展分区、逻辑分区、删除分区等操作。
创建扩展分区和逻辑分区
在MBR表下,主分区最多4个,若需更多分区,需要创建扩展分区(类型e),然后在扩展分区内创建逻辑分区(类型l)。
- 输入
n,选择e创建扩展分区,分配所有剩余空间。 - 再次输入
n,此时会自动创建逻辑分区(编号5起),指定大小。
更改分区类型
输入t,选择分区编号,然后输入目标类型代码,例如将Linux分区改为LVM:t -> 1 -> 8e。
删除分区
输入d,选择分区编号,即可删除。删除后原数据仍存在,但分区表记录丢失,直到创建新分区覆盖前可恢复。
部分分区大小调整
fdisk不支持直接调整分区大小,需先删除原分区再重建,但要求新分区起始扇区与之前一致且不删除后续分区。实际调整大小建议用resize2fs或parted。
fdisk分区注意事项
MBR与GPT的选择
- MBR:兼容性好,但单盘上限2TB,主分区最多4个,老系统或引导盘常见。
- GPT:支持超大容量,分区数量无限制,现代UEFI启动必须使用。fdisk新版默认创建GPT表,可通过
g命令切换。
业内专家指出
,对于新部署的服务器,请直接使用GPT分区表,避免日后扩容时遇到限制。
分区后必须格式化
fdisk只创建分区表,不写文件系统,分区创建后需执行mkfs.ext4 /dev/sdb1(或mkfs.xfs等)格式化,然后挂载使用。
分区表写入后立即生效
w命令会让操作系统重新读取分区表,无需重启,但若系统提示“Re-reading the partition table failed”,可执行partprobe命令强制刷新。
常见错误与解决
- Device is busy:分区正在使用,先卸载或重启。
- No free sectors available:磁盘空间已用完,需删除无用分区或扩容。
- Value out of range:输入的扇区值超出磁盘范围,检查数值。
Q&A:fdisk分区常见问题
问题1:fdisk分区后无法保存,提示“Device or resource busy”
通常因为该分区或磁盘正在被挂载,先用umount /dev/sdb1卸载,或用lsof检查占用进程,杀掉后重试,如果磁盘本身是系统盘,需重启后以单用户模式操作。
问题2:fdisk支持GPT分区吗?与MBR如何切换?
支持,新版fdisk(util-linux 2.23及以上)完全支持GPT,进入交互界面后,输入g创建GPT分区表,输入o创建MBR分区表,切换会清空分区表,操作前务必确认数据已备份。
问题3:fdisk分区大小如何精确设置?
可以使用和单位后缀,如+20G(20GB)、+500M(500MB)、+1T(1TB),也可以直接输入结束扇区编号,如1000000。注意单位字母大写,否则fdisk会按扇区数处理。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/548438.html




