Linux fdisk 命令(手把手讲解)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
在 Linux 系统的运维与开发工作中,磁盘分区管理是一项基础且高频的操作。无论是部署多系统环境、优化存储空间,还是修复系统故障,都可能需要用到磁盘分区工具。fdisk
作为 Linux 环境中最经典的磁盘分区命令之一,因其高效性和直接性,成为开发者和运维人员的必备技能。本文将从零开始,系统化讲解 Linux fdisk 命令
的核心功能、操作流程及进阶技巧,帮助读者掌握这一工具的精髓,并通过实际案例理解其应用场景。
一、理解磁盘分区的基本概念
1.1 磁盘分区的作用与意义
磁盘分区可以类比为将一块“未整理的纸张”划分为多个“分类文件夹”。通过 fdisk
等工具,用户可以将物理磁盘划分为多个逻辑分区(如 /dev/sda1
, /dev/sda2
),每个分区可独立格式化为文件系统(如 ext4、NTFS),并分配不同的用途(如系统根目录、数据存储、交换分区)。这一机制既能提升存储管理效率,又能增强系统安全性和容错能力。
1.2 MBR 与 GPT 分区表的区别
- MBR(Master Boot Record):传统分区方案,支持最多 4 个主分区,或 3 个主分区加 1 个扩展分区(扩展分区可再划分为多个逻辑分区)。其容量上限为 2TB,适用于旧式硬件。
- GPT(GUID Partition Table):现代标准,支持最多 128 个主分区,无容量限制,且具备冗余校验功能。它是 UEFI 引导系统的必要基础。
比喻:MBR 像是“纸质目录卡片”,容量有限且结构简单;而 GPT 则是“数字化档案管理系统”,扩展性强且更可靠。
二、Linux fdisk 命令
的基础用法
2.1 命令核心功能与常用选项
fdisk
是一个交互式磁盘分区工具,支持对磁盘进行分区表的查看、创建、删除及修改。其核心选项包括:
-l
:列出所有磁盘分区信息。-u
:以扇区(sector)为单位显示分区大小(默认以柱面显示)。- 交互模式下的常用操作符:
n(新建分区) d(删除分区) w(写入并退出) q(放弃修改并退出)
2.2 操作流程:从查看到修改
案例 1:查看磁盘分区表
sudo fdisk -l /dev/sda
执行上述命令后,输出将包含磁盘大小、分区类型(如 83(Linux)
)、起始扇区及文件系统类型等信息。
案例 2:创建新分区
以 /dev/sdb
为例:
sudo fdisk /dev/sdb
进入交互模式后,依次输入以下指令:
n
→ 新建分区。p
→ 选择主分区(或e
创建扩展分区)。- 回车确认默认分区号(如
1
)。 - 回车两次 → 使用默认的起始和结束扇区(或手动输入具体数值)。
w
→ 保存更改并退出。
2.3 注意事项
- 风险提示:
fdisk
操作直接修改磁盘分区表,错误操作可能导致数据丢失。建议操作前备份重要数据,并通过-l
参数确认目标磁盘。 - 兼容性:MBR 磁盘使用
fdisk
,而 GPT 磁盘需使用gdisk
或parted
(后续章节会提及)。
三、进阶操作与典型场景
3.1 调整分区大小:扩容与缩容
案例 3:扩容根分区
假设系统根分区 /dev/sda1
已满,需扩容:
- 备份数据:
rsync -a / /mnt/backup
。 - 缩小其他分区(如
/dev/sda2
)释放空间:sudo fdisk /dev/sda d(删除分区2) → 输入分区号2 → 确认删除。
- 重新创建分区2,并调整大小。
- 扩展根分区:
sudo resize2fs /dev/sda1 # 自动扩展文件系统
关键点:缩容前必须卸载分区,且 fdisk
本身不支持直接调整分区大小,需借助 resize2fs
等工具。
3.2 特殊场景:修复损坏的分区表
若因意外断电导致分区表损坏,可尝试以下步骤:
- 使用
testdisk
工具扫描丢失的分区。 - 通过
fdisk
手动重建分区表(需精确记录原始分区的起始扇区)。
四、fdisk
的替代工具与选择建议
4.1 parted
:更现代化的分区工具
parted
支持 GPT 和 MBR,且提供更直观的单位(如 MB、GB)。例如:
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary 0% 50%
此命令将 /dev/sdb
分为两个相等的 GPT 分区。
4.2 gdisk
:专为 GPT 设计的工具
gdisk
是 fdisk
的 GPT 版本,功能更全面,适合处理 UEFI 系统的磁盘:
sudo gdisk /dev/sdb
五、实践与安全建议
5.1 安全操作规范
- 备份先行:操作前使用
dd
或Clonezilla
全盘镜像备份。 - 虚拟环境演练:在虚拟机中模拟磁盘操作,避免影响真实数据。
- 权限控制:仅在必要时使用
sudo
,避免误操作全局磁盘。
5.2 常见问题排查
- 分区未生效:需执行
partprobe
或重启系统,使内核重新读取分区表。 - 权限不足:确保以
root
身份运行命令,或通过sudo
提权。
结论
通过本文的系统讲解,读者已掌握 Linux fdisk 命令
的核心功能、操作流程及进阶技巧。从基础的分区创建到复杂的数据迁移,该工具在磁盘管理中扮演着不可替代的角色。建议读者通过实际操作加深理解,并结合 parted
、gdisk
等工具扩展技能树。记住:谨慎操作,备份先行,是磁盘管理的黄金法则。
附录:命令速查表
| 命令格式 | 功能描述 |
|-------------------------|------------------------------|
| fdisk -l /dev/sdX
| 查看指定磁盘的分区表 |
| fdisk /dev/sdX
| 进入交互模式修改分区表 |
| parted mklabel gpt
| 将磁盘格式化为 GPT 分区表 |
| partprobe
| 通知内核重新读取分区表 |
通过持续实践与探索,Linux fdisk 命令
将成为您高效管理磁盘资源的得力助手。