您的位置:首页 >CentOS怎么查看物理硬盘坏道
发布于2026-08-12 阅读(0)
扫一扫,手机访问
在CentOS里,坏道的具体位置并不能直接看到,通常只能先用smartctl做一轮健康初筛,重点看S.M.A.R.T.指标,比如Reallocated_Sector_Ct;如果要进一步定位到具体扇区号,就得用badblocks做离线扫描,而且前提是对应分区已经卸载;扫出来之后,再通过e2fsck -l把坏块写进ext文件系统元数据,后续系统才会长期绕开这些区域。需要特别注意的是,SSD不建议使用badblocks,另外,df -h也看不出坏道情况。

CentOS 上无法直接“查看”坏道位置(像看日志一样),只能通过工具检测是否存在坏道,并定位出具体扇区号——关键在于选对工具、分清场景、避免误操作。
这是最安全、最快、不影响业务的初筛方式。它不扫描扇区,而是读取硬盘内置的 S.M.A.R.T. 数据,判断是否有硬件级异常(比如 Reallocated_Sector_Ct、Current_Pending_Sector 突增)。
lsblk 或 lshw -class disk,找到目标盘如 /dev/sda 或 /dev/nvme0n1sudo smartctl -i /dev/sda,输出含 SMART support is: Enabled 才有效sudo smartctl -H /dev/sda,结果为 PASSED 不能保证无坏道,但 FAILED 几乎肯定有物理问题sudo smartctl -A /dev/sda,重点关注 Reallocated_Sector_Ct(已重映射扇区)、Current_Pending_Sector(待重映射扇区)、UDMA_CRC_Error_Count(线缆/接口问题常导致误报)这是唯一能给出具体扇区编号(如 2458912)的方法,但代价是磁盘必须未挂载,且耗时极长(TB级盘可能需数小时)。它不依赖 S.M.A.R.T.,直接读写验证每个块。
sudo umount /dev/sda1(不是 /dev/sda!要卸载分区)sudo badblocks -v /dev/sda1 > /root/badsectors.txt,-v 显示进度,输出是十进制扇区号列表-w(写测试):会破坏文件系统元数据,除非你准备重做文件系统pvdisplay 确认未被 VG 使用,再 sudo pvscan --cache 避免冲突badblocks 结果意义有限检测出坏扇区后,不能靠人工避开,必须让文件系统知道哪些块不能分配。这步必须在 badblocks 输出后立即执行,且文件系统不能处于挂载状态。
badblocks 输出存于 /root/badsectors.txt,执行:sudo e2fsck -l /root/badsectors.txt /dev/sda1-c 是快捷方式:sudo e2fsck -c /dev/sda1,它会自动调用 badblocks 并标记,但无法保存扇区列表供后续分析mkfs.ext4 会自动跳过这些块;已有数据不会被迁移,只是新文件不再写入df -h 只显示文件系统已用/可用空间,完全不反映物理扇区状态。坏道未被文件系统标记前,内核仍可能尝试读写,导致 I/O 错误、进程卡死、dmesg 中出现 end_request: I/O error —— 这才是更早的预警信号。
真正容易被忽略的是:S.M.A.R.T. 值正常 ≠ 没有坏道(尤其早期坏道未触发重映射),而 badblocks 扫出扇区号后,必须用 e2fsck -l 写入文件系统结构,否则下次格式化就清零了——标记动作本身才是让坏道“生效”的关键一步。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9