SSD 突然变得无法读取 - 如何诊断?

Mar*_*rkZ 4 linux ssd hard-drive smart manjaro

几天前我买了一台新笔记本电脑,Thinkpad x270。不幸的是,我遇到过几次崩溃的情况。我相信这与内置 SSD 有关,但我无法正确诊断。

我正在运行全新安装的 Manjaro 17。

当“崩溃”发生时,一些应用程序崩溃,其他应用程序设法坚持,但没有一个能够正常运行。我尝试做的几乎任何事情都会因 I/O 错误而失败。在桌面上,所有图标都是错误的。单击电源菜单会显示菜单,但未加载任何文本或图标。如果我切换到另一个 tty,我会看到一些关于ext4-fs error unable to read itable block但永远无法登录的消息。

我很确定这意味着这是由于我的 SSD,但是在启动时强制 fsck 似乎没有做任何事情,并且 gsmartcontrol 说该驱动器不支持 SMART。

我如何正确诊断我的问题,以便我可以修复它或更换我的笔记本电脑?

这是 gsmartcontrol 的输出,如果有帮助的话:

smartctl 6.5 2016-05-07 r4318 [x86_64-linux-4.9.16-1-MANJARO] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       THNSF5512GPUK TOSHIBA
Serial Number:                      17IS10D1TANT
Firmware Version:                   51025KLA
PCI Vendor/Subsystem ID:            0x1179
IEEE OUI Identifier:                0x00080d
Controller ID:                      0
Number of Namespaces:               1
Namespace 1 Size/Capacity:          512'110'190'592 [512 GB]
Namespace 1 Formatted LBA Size:     512
Local Time is:                      Sat Apr  1 07:44:55 2017 CEST
Firmware Updates (0x02):            1 Slot
Optional Admin Commands (0x0017):   Security Format Frmw_DL *Other*
Optional NVM Commands (0x001e):     Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat
Warning  Comp. Temp. Threshold:     78 Celsius
Critical Comp. Temp. Threshold:     82 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     8.00W       -        -    0  0  0  0        0       0
 1 +     3.90W       -        -    1  1  1  1        0       0
 2 +     2.00W       -        -    2  2  2  2        0       0
 3 -   0.1200W       -        -    3  3  3  3     1000    1000
 4 -   0.0120W       -        -    4  4  4  4     5000   10000
 5 -   0.0060W       -        -    5  5  5  5   100000   50000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         2
 1 -    4096       0         1

=== START OF SMART DATA SECTION ===
Read NVMe SMART/Health Information failed: NVMe Status 0x4002
Run Code Online (Sandbox Code Playgroud)

编辑添加:从那时起,我启动到 sysrescuecd 并使用 badblocks 和 fsck 尝试查找驱动器的任何错误,但两个测试都没有错误地返回。

这让我更加困惑。什么可能导致我看到的错误,但诊断程序不可见?

再次更新:我将笔记本电脑送入,更换了 SSD,没问题 - 但错误又回来了。因此,既然它不是 SSD(如 badblocks 所建议的那样),它还能是什么?毕竟是软件?

Mar*_*rkZ 9

因此,在尝试了更多的诊断 [1] 和修补 Linux 内核后,正确的解决方案似乎是更新 BIOS。

显然,在我的联想 x270 的旧版本 BIOS 下,SSD 在进入低功耗状态后无法再次启动。

应用 BIOS 更新并非微不足道,因为我没有在笔记本电脑上运行 Windows,所以该实用程序没有帮助,同一页面的可启动映像采用了一种奇怪的联想特定格式,我常用的工具都无法从中创建一个可启动的 USB 记忆棒。但是,这也是一个已知问题,有人创建了一个Perl 脚本来从 Lenovo 提供的文件中提取实际的 ISO 文件。使用此脚本的-o选项,我创建了一个 ISO 文件,我可以从中启动并应用更新。

从那时起,我的笔记本电脑似乎运行稳定。

[1]:不过,该nvme-cli工具对于获取有关我的 SSD 的更多信息很有用,并且最终,如果巧合的话,它会引导我找到解决方案。