当前位置:首页>Linux>linux操作系统层面修复磁盘分区

linux操作系统层面修复磁盘分区

  • 2026-10-11 06:20:08
linux操作系统层面修复磁盘分区

“在Linux系统中,遵循“一切皆文件”的核心设计哲学,硬件设备均被抽象为文件形式。硬盘等存储设备的信息统一存放在 /dev(Device)目录下。系统会按照硬件检测的固定格式与顺序,以英文字母依次递增的方式为磁盘命名。例如,第一块被识别的SATA硬盘会被命名为 /dev/sda,第二块则为 /dev/sdb,依此类推.”

linux操作系统中的硬盘
一台服务器的核心硬件主要由CPU处理器、内存、存储设备、主板、电源供应器(PSU)以及网络接口卡(NIC)等构成。在运维排障实践中,通常遵循TCP/IP协议栈的逻辑,以网络通讯所能到达的最终目标点为基准,来反向定位故障发生的具体节点。从实际运维经验来看,存储设备通常是故障发生率最高的组件。

硬盘能够正常存储和管理文件,核心依赖于底层的文件系统。在当前的 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
如果 %util 接近 100%,说明产生的I/O请求太多,I/O系统已经满负荷,该磁盘可能存在瓶颈。
如果 svctm 比较接近 await,说明 I/O 几乎没有等待时间;
如果 await 远大于 svctm,说明I/O 队列太长,io响应太慢,则需要进行必要优化。
如果avgqu-sz比较大,也表示有当量io在等待。
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格式的分区。
修复磁盘扇区坏道
当磁盘发生 I/O 错误或物理损坏时,内核会记录相关异常,比如i/o error ,timeout,bad sector等信息,指定到了某个硬盘。说明硬盘有问题,需要修复。
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
针对xfs文件系统的修复方案
如果在修复后发现有文件丢失,XFS 会将这些失去目录结构的孤立文件放置在根目录的 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 /data  df -h | grep /data

往期推荐:

操作系统Centos和openEuler有什么不同点

linux安全 云主机常见的安全配置

局域网内部配置ubuntu apt本地软件源

linux系统中用一次忘一次的命令

国产信创100%替换进程:需求分析

——订阅内容集合——
linux技术博客 | 云计算-openstack | 市场分析 | 为梦想启航

持续分享了 Linux 运维中的实用技巧和工具,希望能为你的日常工作带来帮助。


系统稳定,始于细节;运维之道,贵在积累。

🔹 欢迎点赞 + 在看 + 转发,让更多同行看到!

🔹 关注本号,持续更新 Linux、Shell、云计算等技术干货。

🔹 留言区开放:你在实践中遇到过哪些运维问题?欢迎交流!

最新文章

随机文章