如何诊断并修复间歇性磁盘连接问题?

如何诊断并修复间歇性磁盘连接问题?

我有一台运行 Debian 测试的联想 X250 笔记本。它有一个 512 GB 的 Crucial MX100 2.5 英寸 SATA SSD。

有时,计算机会锁定,我需要重新启动。如果我能够切换到控制台,我会看到很多关于ATA COM RESETbtrfs 读/写错误的消息。有时它会变得有响应,但根文件系统以只读方式挂载,实际上不可读。缓存中的文件可以读取,但其他文件则不能读取。

奇怪的事情:

  • 它可以持续很多天而不发作
  • 这是强烈与在电脑开机时移动电脑有关;我习惯在移动电脑时合上盖子
  • 该问题需要关闭电源才能解决——通过 magic sysreq 进行软重启会导致 BIOS 找不到可启动设备

我模糊地认为,某种接触受到底盘弯曲的影响。我尝试过的方法:

  • 检查 SMART 状态(全部清除)
  • 重新安装驱动器

我没有多余的 2.5 英寸 SATA SSD 可供测试。我当然可以买一个新的,但除非我希望它能解决问题,否则我宁愿不买。

任何非常感谢您的想法!

输出smartctl -A

smartctl 6.6 2016-05-31 r4324 [x86_64-linux-4.14.0-2-amd64] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   100   000    Pre-fail  Always       -       0
  5 Reallocate_NAND_Blk_Cnt 0x0033   100   100   000    Pre-fail  Always       -       0
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       5888
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       7741
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       0
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
173 Ave_Block-Erase_Count   0x0032   086   086   000    Old_age   Always       -       431
174 Unexpect_Power_Loss_Ct  0x0032   100   100   000    Old_age   Always       -       126
180 Unused_Reserve_NAND_Blk 0x0033   000   000   000    Pre-fail  Always       -       4403
183 SATA_Interfac_Downshift 0x0032   100   100   000    Old_age   Always       -       0
184 Error_Correction_Count  0x0032   100   100   000    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   074   040   000    Old_age   Always       -       26 (Min/Max 12/60)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   000    Old_age   Always       -       0
202 Percent_Lifetime_Used   0x0031   086   086   000    Pre-fail  Offline      -       14
206 Write_Error_Rate        0x000e   100   100   000    Old_age   Always       -       0
210 Success_RAIN_Recov_Cnt  0x0032   100   100   000    Old_age   Always       -       0
246 Total_Host_Sector_Write 0x0032   100   100   000    Old_age   Always       -       31996614953
247 Host_Program_Page_Count 0x0032   100   100   000    Old_age   Always       -       1008715183
248 Bckgnd_Program_Page_Cnt 0x0032   100   100   000    Old_age   Always       -       258122736

答案1

您没有提到任何这些事情,所以我将列出它们:

  1. 检查磁盘的 SMART 错误日志。如果您能证明存在错误并且驱动器仍在制造商保修范围内,Crucial 将更换它。

    smartctl -l error /dev/sda
    
  2. 运行传送测试并在测试过程中移动笔记本电脑。

    smartctl -t conveyance /dev/sda
    

    来自手册页:

    运输 - [仅限 ATA] 运行 SMART 运输自检(几分钟)。此自检程序旨在识别设备运输过程中发生的损坏。此自检程序应花费几分钟才能完成。请注意,此命令可以在正常系统操作期间发出(除非在强制模式下运行 - 请参阅下面的“-C”选项)。

  3. 运行long自检。

    smartctl -t long /dev/sda
    

    long - [ATA] 运行 SMART 扩展自检(几十分钟到几个小时)。这是上面描述的短自检的更长、更全面的版本。请注意,此命令可以在正常系统操作期间发出(除非在强制模式下运行 - 请参阅下面的“-C”选项)。

  4. 如果它是 2015 年 3 月之前生产的,则有一个针对该驱动器的固件更新。这可能会有所帮助。发布摘要中关于更正 SMART 属性 5 的报告的最后一条注释,即重新分配的扇区数(从技术上讲,由于这是 SSD,因此是失败的闪存块),对我来说特别可疑。您可能有大量重新分配的扇区,而 SMART 无法正确报告。

    发布日期:2015 年 3 月 10 日

    MX100(所有型号)的固件正在从版本 MU01 更新至 MU02。使用 Micron 提供的工具,MX100 可以从之前的版本更新至此新固件。

    此更新将是 Micron 工厂生产的新产品的强制更新,也是现场任何驱动器的可选更新。对于最终用户,如果用户遇到或希望避免与以下项目相关的问题,建议使用此更新。

    版本 MU02 包括以下更改:

    提高了电源状态转换期间的稳定性、效率和性能
    改进了对不稳定电源环境的处理
    改进了对 SATA 接口信号完整性问题环境的处理
    改进了 SMART 读取命令的响应时间
    纠正了 NCQ Trim 命令的错误处理
    纠正了 SMART 属性 5 的报告

    http://www.crucial.com/usa/en/support-ssd-firmware

  5. 考虑重新对驱动器进行分区,并尝试不同的操作系统。特别是因为你正在使用测试Debian 的风格。

  6. 请考虑一下您的问题不是驱动器,而可能是主板。

  7. 移除驱动器,然后从 Debian 实时环境(闪存驱动器或 CD)启动。尝试复制冻结。显然,如果仍然发生冻结,则问题不在于驱动器。

相关内容