当统信uos系统出现读写异常、i/o错误等故障时,应先用smartctl检查smart关键指标(如reallocated_sector_ct>0即存在物理坏道),再用gnome disks运行长时自检定位lba错误地址,最后对未挂载ext4分区可选badblocks进行底层扇区扫描。

当统信UOS系统出现读写异常、频繁I/O错误、文件复制中断或启动卡在“failed to register hotplug callbacks”等报错时,需立即检测硬盘是否存在物理坏道,避免数据进一步丢失或系统彻底崩溃。
用smartctl命令查看SMART关键指标
这一步不扫描扇区,但能最快判断硬盘是否已发生物理损伤,适合日常巡检或故障初筛。
1、打开终端,执行sudo apt install smartmontools确保工具已安装;若提示“already the newest version”,直接进入下一步。
2、运行sudo lsblk -d -o NAME,MODEL,ROTA,找到ROTA=1(机械盘)或ROTA=0(固态盘)且MODEL非空的设备,例如/dev/sda或/dev/nvme0n1。
3、对SATA硬盘执行sudo smartctl -H /dev/sda;对NVMe硬盘必须加协议参数:sudo smartctl -H -d nvme /dev/nvme0n1。若返回FAILED或WARNING,【请立即停止写入并备份重要数据】。
4、执行完整报告命令:SATA盘用sudo smartctl -a /dev/sda,NVMe盘用sudo smartctl -a -d nvme /dev/nvme0n1,重点检查三列数值:Reallocated_Sector_Ct(重映射扇区数)、Current_Pending_Sector(待重新分配扇区数)、Offline_Uncorrect(脱机无法纠正扇区数)。只要其中任一值大于0,即表明存在物理坏道。
用GNOME Disks图形界面运行长时自检
该方法会真实读取每个扇区,能定位坏道所在LBA地址,结果可导出日志供运维复核,但耗时较长(HDD通常需2~8小时)。
1、点击任务栏左下角启动器图标 → 在搜索框输入“磁盘” → 单击“磁盘”应用启动。
2、弹出权限认证窗口,输入当前用户密码完成授权。
3、左侧设备列表中,**务必选择物理硬盘整盘项**(如“WDC WD10EZEX-00WN4A0”),不是其下的某个分区(如/dev/sda1)。
4、右侧面板下滑至“SMART数据”区域 → 点击下方“运行自我测试”按钮 → 选择“长时测试” → 点击“开始”。
5、测试过程中可点击“查看日志”实时监控;若发现错误,日志中会明确标出“LBA”起始地址和错误类型,例如“Read failure at LBA 123456789”。
用badblocks进行底层扇区级扫描(仅限ext4未挂载分区)
此操作直接读写磁盘扇区,能发现smartctl漏报的早期不稳定扇区,但必须在分区未挂载状态下执行,且会显著缩短SSD寿命,【切勿在系统盘根分区或正在使用的/data分区上运行】。
方法一:只读扫描(安全)
1、先卸载目标分区:例如sudo umount /dev/sda2。
2、执行sudo badblocks -v -s /dev/sda2 > /tmp/badsectors.txt 2>&1,-v显示进度,-s打印当前块号,输出结果保存至/tmp/badsectors.txt。
方法二:读写校验扫描(高风险)
1、确认该分区无重要数据或已完整备份。
2、执行sudo badblocks -w -v /dev/sda2,-w会对每个块写入4种特定模式再读回校验,全程不可中断,SSD慎用。
3、若输出中出现类似“Pass completed, 0 bad blocks found”的行,说明未发现新坏道;若列出具体块号,则需记录并配合e2fsck隔离。











