“在Linux系统中,遵循“一切皆文件”的核心设计哲学,硬件设备均被抽象为文件形式。硬盘等存储设备的信息统一存放在 /dev(Device)目录下。系统会按照硬件检测的固定格式与顺序,以英文字母依次递增的方式为磁盘命名。例如,第一块被识别的SATA硬盘会被命名为 /dev/sda,第二块则为 /dev/sdb,依此类推.”
硬盘能够正常存储和管理文件,核心依赖于底层的文件系统。在当前的 Linux 环境中,最常用的文件系统主要为 ext4 和 xfs。在实际运维中,通常会根据磁盘的空间大小及业务场景来进行格式化选型:对于空间容量较大、且主要用于存储大文件的磁盘,业界常规推荐采用 xfs 文件系统。空间小且业务主要是小文件存储的选择ext4,性能更好。

磁盘格式化
在 Linux 系统的存储管理中,磁盘的初始化与数据组织依赖于科学的分区工具与严谨的底层存储结构。为确保生产环境的稳定性与数据安全性,运维人员需严格遵循以下技术规范:
一、 磁盘分区工具与分区表标准的适配
磁盘分区是划定存储边界的过程,不同的分区表标准对应不同的管理工具:
fdisk 工具:作为一款经典的交互式分区工具,fdisk 专门用于处理 MBR(主引导记录) 分区表。由于其底层架构限制,该工具仅适用于容量小于或等于 2TB 的磁盘设备。
parted 工具:作为一款现代化的分区工具,parted 完美支持 GPT(GUID 分区表) 标准。当服务器挂载的磁盘容量大于 2TB 时,受限于 MBR 的 32 位寻址瓶颈,必须强制使用 parted 进行 GPT 分区,以释放完整的存储空间。
二、 MBR 分区表的物理结构限制
MBR 分区表的设计受限于早期的硬件标准,存在严格的物理空间约束。其分区表区域(DPT)仅占用 64 个字节的存储空间,且每个分区条目固定占用 16 个字节。基于此计算,MBR 最多仅能记录 4 个分区信息,即最多支持 4 个主分区,或 3 个主分区搭配 1 个扩展分区(扩展分区内可进一步划分逻辑分区)。
三、 磁盘底层物理存储单元:扇区(Sector)
在底层硬件架构中,磁盘的最小物理存储与读写单元是扇区(Sector),而非逻辑层面的“文件”或“块”。随着硬盘制造工艺的演进,扇区大小经历了标准化升级:
传统标准:早期硬盘的物理扇区大小固定为 512 字节。
现代标准:现代硬盘(高级格式化技术)的物理扇区大小已全面升级为 4096 字节(4KB)。
(注:文件系统层面的“分配单元/簇”默认通常为 4KB,这属于操作系统逻辑层面的概念,需与物理扇区严格区分。)
四、 GPT 分区表的技术突破与优势
为彻底解决 MBR 的架构瓶颈,GPT 分区表作为现代服务器存储的标准应运而生,具备以下核心优势:
海量容量与分区支持:GPT 采用 64 位逻辑块寻址,打破了 2TB 的容量上限(理论支持高达 18 EB),并将主分区数量上限提升至 128 个,彻底摒弃了复杂的扩展分区嵌套结构。
高可用与数据冗余:GPT 在磁盘的首部和尾部均保存了完整的分区表副本(双备份机制),且分区表头包含 CRC32 循环冗余校验。当主分区表因意外损坏时,系统可通过尾部备份自动恢复,大幅提升了数据安全性。
如下示例进行完整磁盘分区、格式化、挂载到目录的过程
#partedmkpart primary ext4 1MB 10GB #划分一个10GB的分区mkpart data xfs 10GB 100% #创建一个分区并命令data,分区大小使用剩余全部空间,也可以使用-1表示到最后的位置。#非交互式parted /dev/sdb -- mklabel gpt mkpart data xfs 1MiB 10GiBparted /dev/sdb -- mkpart data xfs 10GiB 100%#完整流程parted /dev/sdX mklabel gpt → 创建分区表parted /dev/sdX mkpart ... → 创建分区mkfs.xfs /dev/sdX1 → 创建文件系统mount /dev/sdX1 /mnt → 挂载使用
修复遇到的磁盘故障
iostat -xdk 2 3 #xv表示详细的报告,d表示磁盘,k表示block块作为计量单位Linux 3.10.0-1062.el7.x86_64 (ruioracle43) 02/23/2022 _x86_64_ (8 CPU)Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %utilsda 0.06 0.10 0.05 1.30 0.89 70.24 105.05 0.01 5.20 4.19 5.24 0.26 0.03dm-0 0.00 0.00 0.04 0.60 0.56 29.76 94.41 0.00 3.05 5.57 2.89 0.26 0.02dm-1 0.00 0.00 0.08 0.08 0.31 0.32 8.04 0.00 25.70 0.54 49.76 0.06 0.00dm-2 0.00 0.00 0.00 0.00 0.00 0.00 37.06 0.00 0.41 0.68 0.21 0.38 0.00dm-3 0.00 0.00 0.00 0.72 0.00 40.13 112.10 0.01 7.08 0.72 7.08 0.24 0.02
#刷新数据数据盘分区,重新读磁盘的信息,系统盘只有重启以后才会生效。xfs_growfs /dev/vdb1 #xfs文件系统resize2fs /dev/vdb1 #ext4文件系统partprobe /dev/vdb1 #gpt格式的分区。
hdparm /dev/sdb #显示磁盘的相关信息hdparm -T /dev/sdb #测试磁盘读写速率hdparm -C /dev/sdb #检查硬盘的电源模式更加专业的磁盘检查工具就是smartctl检查:smartctl -H /dev/sdb 或者 smartctl -l selftest /dev/sdb卸载:umount /dev/sdb修复(本身不具备物理修复功能,只是隔离坏块,必要时需要重新换盘)fsck /dev/sda #可以使用fsck 来检查并修复文件系统级别的逻辑错误badblock #磁盘坏块检测,本省不具备修复功能
针对对ext2/3/4文件系统修复完整方案
1.卸载分区:umount /dev/sdb2.使用badblocks生成坏块信息:badblocks -nsv /dev/sdb1 > /tmp/badblocks.txt3.使用fsck(e2fsck)注入坏块表:e2fsck -l /tmp/badblocks.txt /dev/sdb1
lost+found 文件夹中。修复完成后,建议手动检查该目录,将重要文件归位。1.检查是否存在坏块:xfs_repair -n /dev/mapper/data-lv_data2.卸载存在坏块的磁盘:umount /dev/mapper/data-lv_data3.对存在坏块的磁盘进行元数据修复:xfs_repair /dev/mapper/data-lv_data4.如果常规修复报错,可进行强制修复(高风险):xfs_repair -L /dev/mapper/data-lv_data5.挂载验证:mount -t xfs /dev/mapper/data-lv_data /datadf -h | grep /data
持续分享了 Linux 运维中的实用技巧和工具,希望能为你的日常工作带来帮助。
系统稳定,始于细节;运维之道,贵在积累。
🔹 欢迎点赞 + 在看 + 转发,让更多同行看到!
🔹 关注本号,持续更新 Linux、Shell、云计算等技术干货。
🔹 留言区开放:你在实践中遇到过哪些运维问题?欢迎交流!