![SSD 突然变得不可读-如何诊断?](https://linux22.com/image/1526451/SSD%20%E7%AA%81%E7%84%B6%E5%8F%98%E5%BE%97%E4%B8%8D%E5%8F%AF%E8%AF%BB-%E5%A6%82%E4%BD%95%E8%AF%8A%E6%96%AD%EF%BC%9F.png)
几天前我买了一台新笔记本电脑,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
编辑以添加:从那时起,我启动到 sysrescuecd 并使用 badblocks 和 fsck 来尝试查找驱动器的任何错误,但两个测试都没有错误。
这让我更加困惑。是什么原因导致了我看到的错误,但诊断程序却无法发现?
再次更新:我把笔记本电脑送去维修,更换了 SSD,没有问题 - 但错误又出现了。既然不是 SSD(正如 badblocks 所建议的那样),那还能是什么问题呢?毕竟是软件?
答案1
因此,在徒劳地尝试了更多诊断方法[1] 和修补的 Linux 内核后,正确的解决方案似乎是更新 BIOS。
显然,在我的 Lenovo x270 的旧版本 BIOS 下,存在 SSD 进入低功耗状态后无法再次启动的问题。
应用 BIOS 更新并不是一件简单的事情,因为我的笔记本电脑上没有运行 Windows,所以公用事业没有帮助,同一页面的可启动映像采用奇怪的联想特定格式,我常用的工具都无法从中创建可启动的 USB 棒。不过,这也是一个已知问题,有人创建了一个Perl 脚本从 Lenovo 提供的文件中提取实际 ISO 文件。使用此脚本的-o
选项,我创建了一个 ISO 文件,可以从中启动并应用更新。
从那时起,我的笔记本电脑似乎运行稳定。
[1]:这个nvme-cli
工具对于获取有关我的 SSD 的更多信息很有用,并且它最终(如果巧合的话)帮助我找到了解决方案。