商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 麒麟OS如何使用磁盘修复工具检查坏道

麒麟OS如何使用磁盘修复工具检查坏道

  发布于2026-05-22 阅读(0)

扫一扫,手机访问

麒麟系统硬盘故障时,可通过五种方法检测坏道:一、badblocks扫描并标记坏扇区;二、smartctl读取S.M.A.R.T.健康数据;三、LiveCD图形化检测;四、dmesg捕获内核IO错误;五、ddrescue生成坏道镜像并隔离。

麒麟OS如何使用磁盘修复工具检查坏道

在麒麟操作系统里,如果遇到文件复制到一半卡住、系统突然报出“Input/output error”这类I/O错误,甚至启动时卡在“Boot From Harddisk”的界面,这往往不是什么软件bug,而是硬盘本身在“求救”——大概率是出现了物理坏道或者扇区无法读取。别慌,下面这几种使用磁盘修复工具检测坏道的方法,总有一款适合你。

一、使用badblocks扫描并标记坏扇区

badblocks是Linux自带的“老牌侦察兵”,它能对未挂载的块设备进行底层的、逐扇区的读写测试,精准揪出那些不可靠的扇区,并生成一份坏块清单,方便后续屏蔽。这个方法对ext4、xfs这些主流文件系统都友好,而且不会破坏盘上现有的数据结构,相当安全。

具体怎么操作呢?

1. 找准目标:先运行 sudo lsblk -o NAME,MODEL,SIZE,FSTYPE,MOUNTPOINT,把待检测的分区(比如/dev/sda2)给认准了。

2. 卸下“包袱”:执行 sudo umount /dev/sda2 卸载这个分区。如果系统提示“target is busy”,别急,用 sudo lsof +D /mount/point 查一下是哪个进程在占用,关掉它再试。

3. 开始扫描:运行 sudo badblocks -v -s /dev/sda2 > /tmp/badsectors.txt 2>&1。这里的 -v 是显示详细进度,-s 则是实时刷新输出,让你心里有数。

4. 标记坏块:扫描出的坏块清单在 /tmp/badsectors.txt 里。对于ext4文件系统,执行 sudo e2fsck -l /tmp/badsectors.txt /dev/sda2,就能把这些坏块信息写入文件系统的预留区,内核以后就不会再往这些地方存数据了。

5. 验收成果:最后,重新运行 sudo dumpe2fs -h /dev/sda2 | grep -i "bad" 验证一下。如果输出里包含 Bad blocks count 且数值大于0,说明坏道已经被成功标记和隔离了。

二、通过smartctl调取S.M.A.R.T.健康状态

如果说badblocks是主动出击的“扫描仪”,那么smartctl就是读取硬盘“体检报告”的专家。它直接调取硬盘固件内置的S.M.A.R.T.日志,像“重映射扇区数”、“校验错误率”、“寻道重试次数”这些关键指标一目了然。这是判断硬盘物理老化程度和发现隐性坏道的首选方法,而且无需卸载磁盘,支持热检测,非常方便。

操作流程也很清晰:

1. 安装工具:麒麟桌面版执行 sudo apt install smartmontools,V10服务器版则用 sudo yum install smartmontools

2. 检查支持性:运行 sudo smartctl --scan,看看输出里有没有你的目标设备(比如/dev/sda)以及它的类型(比如sat、nvme)。

3. 快速健康检查:输入 sudo smartctl -H /dev/sda。如果返回结果是 SMART overall-health self-assessment test result: PASSED,那说明硬盘初步自检正常。

4. 深挖细节:想看更详细的?执行 sudo smartctl -a /dev/sda | grep -E "(Reallocated_Sector|Current_Pending|UDMA_CRC|Raw_Read_Error)",把几个关键属性过滤出来。

5. 重点关注三项:这里划个重点,如果“Reallocated_Sector_Ct”的值大于5、“Current_Pending_Sector”不是零、或者“Raw_Read_Error_Rate”持续上升,那这块硬盘的健康状况就真的需要警惕了。

三、利用系统修复助手LiveCD执行图形化坏道检测

对于不习惯敲命令行的朋友,银河麒麟官方提供的LiveCD里有个宝藏工具——“系统修复助手”。它集成了针对国产硬件优化过的坏道扫描模块,特别适配飞腾、鲲鹏这些平台的IO栈,还能智能跳过加密固件区域、自动适配NVMe命名空间。关键是,它提供了可视化的进度条和扇区定位图,操作直观,结果一目了然。

具体步骤如下:

1. 制作启动盘:用Rufus或者UltraISO这类工具,把麒麟V10的LiveCD镜像写入一个USB 3.0的U盘。

2. 进入Live环境:重启电脑,进入BIOS设置从U盘启动,保存后就能进入麒麟的Live桌面环境。

3. 启动工具:在桌面上找到并点击“系统修复助手”图标,然后选择“磁盘修复”功能页。

4. 选择目标:在设备列表里勾选你要检测的硬盘(比如“Samsung PM9A1 NVMe”),点击“开始检测”。

5. 深度扫描:建议选择“深度扫描模式”,然后耐心等待。完成后,界面会用红色高亮显示有问题的扇区编号及其对应的LBA地址,并会给出“建议隔离”或“需更换硬盘”的明确提示。

四、结合dmesg实时捕获内核级IO错误位置

dmesg这个命令,就像系统内核的“黑匣子记录仪”。当硬盘驱动层发生读写失败时,它会第一时间记录下原始错误事件,精确到具体的扇区号和设备名。这个方法非常适合用来交叉验证badblocks的扫描结果,或者定位那些时好时坏的“偶发性”坏道。当然,前提是系统还能启动起来。

可以这样操作:

1. 触发访问:尝试去读取那个疑似有问题的文件,或者干脆执行一条命令:sudo dd if=/dev/sda2 of=/dev/null bs=1M count=1000,强制读取一部分数据,看看会不会触发错误。

2. 抓取日志:紧接着,运行 sudo dmesg -T | grep -i "error\|fail\|sector\|ata\|nvme",把相关的错误信息过滤出来。

3. 定位关键错误:在输出日志里,寻找类似 ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen 这样的行,以及它后面跟着的 res 51/40:00:00:00:00/00:00:00:00:00/00 Emask 0x10 (ATA bus error) 记录。

4. 提取扇区地址:在这些错误行的附近仔细找,通常会有 sector= 这样的字段,后面跟着的一串数字(比如 sector=123456789)就是出故障的物理扇区地址。

5. 反查归属:最后,用 sudo fdisk -l /dev/sda 命令查看硬盘的分区表,比对各分区的起始扇区,就能确定这个坏扇区到底落在哪个分区里了。

五、使用ddrescue生成坏道镜像并隔离访问

ddrescue这个工具,很多人只知道它能做数据恢复,但其实它在检测和隔离坏道方面也是一把好手。它的“日志驱动”模式非常智能,能够自动跳过已知的坏扇区,优先抢救完好的数据区域,并生成一份精确的坏块日志文件(.log格式)。这份日志,就是后续进行只读挂载或者尝试人工修复的重要依据。这个方法尤其适合那些已经“病入膏肓”、坏道在不断增多的硬盘。

操作流程如下:

1. 安装工具:执行 sudo apt install gddrescue(注意,软件包的名字是gddrescue)。

2. 创建镜像文件:先准备一个空白文件作为镜像容器,运行 sudo dd if=/dev/zero of=/mnt/backup/sda2.img bs=1G count=0 seek=100。这里的 seek=100 是创建一个100GB大小的稀疏文件(按实际分区大小调整),不会立刻占用100GB空间,非常高效。

3. 启动镜像拷贝:输入命令 sudo ddrescue -d -r3 /dev/sda2 /mnt/backup/sda2.img /mnt/backup/sda2.log。其中 -d 是启用直接IO(绕过缓存,速度更快),-r3 是指定对读失败的区域重试3次。

4. 实时监控:过程中,注意观察终端输出的 ipos(当前读取位置)、errors(累计错误数)和 errsize(出错数据量)这几个关键指标。

5. 提取坏块信息:拷贝完成后(或中途停止),可以执行 sudo ddrescue -D -n /dev/sda2 /mnt/backup/sda2.img /mnt/backup/sda2.log 来填充日志。之后,用 ddrescue -l /mnt/backup/sda2.log 命令,就能清晰地列出所有被标记为 bad 的扇区区间了。这份清单,就是你隔离坏道、评估硬盘剩余可用空间的直接依据。

本文转载于:https://www.php.cn/faq/2402744.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注