Linux磁盘分区的核心在于使用fdisk或parted工具对块设备进行逻辑划分,并通过mkfs系列命令格式化文件系统,最后挂载至目录以供系统读写。
在服务器运维和Linux开发场景中,磁盘管理是基础中的基础,很多初学者面对黑底白字的终端界面时,往往感到无从下手,磁盘分区并非玄学,而是一套严谨的逻辑流程,本文将通过实操视角,拆解从查看设备到最终挂载的完整链路,帮助你在实际工作中快速定位问题并高效执行。
如何查看当前磁盘状态与分区信息
在动手之前,必须明确“对手”是谁,你需要知道哪些磁盘空闲,哪些已经被占用,以及它们的文件系统类型。
业内专家指出,准确识别磁盘设备是避免误操作导致数据丢失的第一道防线,常用的命令组合如下:
lsblk:以树状结构展示块设备及其挂载点,直观清晰,适合快速浏览。fdisk -l:显示详细的分区表信息,包括分区ID、起始扇区和结束扇区。df -hT:查看已挂载文件系统的磁盘空间使用情况,-T参数可显示文件系统类型。
假设你插入了一块新的硬盘/dev/sdb,通过lsblk发现它没有任何分区,你需要进入分区阶段,需要注意的是,不同Linux发行版推荐的工具略有差异,Debian/Ubuntu用户更倾向于使用parted,而RHEL/CentOS用户则习惯使用fdisk。
fdisk命令分区详细操作流程
fdisk是Linux下最经典的交互式分区工具,它的逻辑是:进入交互模式 -> 创建分区 -> 写入表 -> 退出。

以下是针对/dev/sdb创建单个分区的标准步骤:
-
启动工具:
执行sudo fdisk /dev/sdb,此时终端会进入fdisk交互界面,提示符变为Command (m for help):。 -
创建新分区:
输入n并回车,表示新建分区,系统会询问分区类型,通常选择p(主分区)或e(扩展分区),对于单分区场景,直接回车默认即可,接着输入分区编号,通常为1。 -
设定扇区范围:
系统会询问起始扇区,直接回车使用默认值(通常从2048开始,对齐性能更好),询问结束扇区时,若希望使用全部剩余空间,直接回车即可;若需指定大小,可输入+50G表示创建50GB分区。 -
保存并退出:
输入w并回车,这一步至关重要,它将分区表写入磁盘,若输入q则放弃更改。
写入成功后,内核可能不会立即识别新分区,此时需执行partprobe或重启系统,使内核重新读取分区表。
parted命令在GPT分区中的应用
当磁盘容量超过2TB,或需要使用GUID分区表(GPT)时,fdisk便显得力不从心,GPT支持更大的磁盘和更多的分区数量,是现代UEFI启动的标准配置。
parted支持命令行非交互模式,更适合脚本自动化,以下是使用parted创建GPT分区表的示例:
sudo parted /dev/sdb (parted) mklabel gpt (parted) mkpart primary ext4 1MiB 100% (parted) print (parted) quit

上述命令中,mklabel gpt初始化分区表,mkpart创建主分区,范围从1MiB到100%(即剩余所有空间)。print用于验证分区信息,这种命令式操作避免了交互式输入的错误风险,特别适合批量部署场景。
文件系统格式化与挂载实战
分区只是逻辑上的划分,要存储数据,必须格式化并挂载。
格式化文件系统
常用的文件系统包括ext4和xfs。
- ext4:兼容性好,适合大多数通用场景。
命令:sudo mkfs.ext4 /dev/sdb1 - xfs:高性能,适合大文件和高并发写入,是RHEL/CentOS 7+的默认文件系统。
命令:sudo mkfs.xfs /dev/sdb1
格式化过程会清除分区内所有数据,请务必确认设备路径无误。
挂载与自动挂载
格式化完成后,需要将分区挂载到目录树中。
-
创建挂载点:
sudo mkdir -p /data -
临时挂载:
sudo mount /dev/sdb1 /data
此时访问/data即可读写新分区数据。 -
永久挂载:
修改/etc/fstab文件,添加一行配置:/dev/sdb1 /data ext4 defaults 0 0
或使用UUID方式,更稳定:UUID=your-uuid-here /data ext4 defaults 0 0
执行sudo mount -a测试配置是否正确,若无报错则配置生效。
常见问题排查与性能优化建议
在实际操作中,你可能会遇到挂载失败、性能瓶颈等问题。
- 挂载失败

:检查
dmesg | tail查看内核日志,通常会有明确的错误提示,如“Bad magic number in super-block”。 - 性能优化:对于SSD,确保启用TRIM支持,对于HDD,考虑使用
noatime挂载选项,减少元数据写入,提升读取速度。 - 空间不足:使用
df -h监控空间,结合du -sh定位大文件。
行业共识认为,定期备份和监控是磁盘管理的核心,分区只是起点,后续的维护同样关键。
Linux磁盘分区命令使用方法常见问题解答
如何安全地删除一个已挂载的分区?
删除分区前必须先卸载,执行umount /dev/sdb1卸载分区,若提示“设备忙”,使用lsof +f -- /dev/sdb1查找占用进程并终止,卸载后,使用fdisk /dev/sdb进入交互模式,输入d删除分区,再输入w保存,切勿在未卸载状态下直接删除分区表,否则可能导致数据损坏或系统崩溃。
ext4和xfs文件系统有什么区别?
ext4支持在线收缩,而xfs不支持,xfs在处理大文件和并发写入时性能更优,且崩溃恢复速度较快,ext4兼容性更好,适合老旧系统或需要灵活调整大小的场景,对于新部署的服务器,若确定不需要收缩文件系统,xfs通常是更好的选择。
为什么分区后lsblk看不到新分区?
这通常是因为内核未重新读取分区表,执行partprobe命令通知内核更新分区信息,若仍无效,可尝试重启系统,确保使用的分区工具与磁盘类型匹配,例如在GPT磁盘上使用fdisk可能无法正确识别所有分区。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/403631.html
