我的 SSD 表现得好像写入被锁定了。甚至 bash dd 命令都无法执行任何操作。我该如何修复我的驱动器?

我的 SSD 表现得好像写入被锁定了。甚至 bash dd 命令都无法执行任何操作。我该如何修复我的驱动器?

我目前使用 2.5 英寸 WD Blue 1Tb SSD 进行备份。我在 Windows 上使用 Macrium Reflect 将我的 C 克隆到它。上次我尝试克隆时,由于我做的次数不够多,无法记住每个步骤,我忘记了在我已经完成 Macrium Reflect 中的两个确认窗口后,Windows 本身会询问我是否确定重新格式化驱动器。而且 Windows 只会在 Macrium Reflect 达到 1% 后询问这个问题。

好吧,我忘记了上次确认,然后就直接上床睡觉,设置了克隆,所以它在 1% 上停留了大约 8 个小时,然后早上我发现它并单击“是”时,Macrium Reflect 说有一个错误,无法继续。从那时起,当尝试在 Windows 上访问驱动器时,即使我右键单击它,资源管理器也会锁定,如果尝试访问它,磁盘管理器也会冻结(如果已连接,Macrium Reflect 也会冻结并且不会加载)。如果我拔下驱动器,则磁盘管理器将正常加载其窗口。

所以我决定试试我的 Linux 机器。使用 KDE 分区管理器,我能够查看驱动器。我原来在其上的主分区未分配,但系统分区和 lenovo-recovery(因为我使用的是 Thinkpad)仍然存在。尝试删除所有分区:失败。尝试调整分区大小:失败。尝试新分区表:显示成功,但实际上没有任何变化。

于是我求助于 bash 命令。试了fdisk,试了wipefs(这是 KDE Partition Manager 使用的命令,所以预计会失败),最后我尝试了sudo dd。首先,我尝试了sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1像我在网上看到的那样。没有改变任何东西(dd 从未输出失败,但它确实输出了)然后我尝试了bs=1Mbs=5G。都没有改变任何东西。所以最后我尝试只对剩余的 ntfs 系统分区(更改of=/dev/sdbof=/dev/sdb1)执行此操作,该分区为 1.17 GB,使用bs=1G。仍然没有任何变化。

请帮忙。

答案1

请访问联想支持网站并获取适用于您的特定 ThinkPad 的磁盘测试应用程序。

将其下载到可启动的 USB 密钥(Rufus 很有帮助)。

从测试应用程序开始并测试您的磁盘。

磁盘可能存在硬件错误(测试会告诉您这一点)。

如果出现硬件错误,则需要更换驱动器。

如果没有(如果磁盘看起来是好的),那么您的其他操作系统就损坏了,很可能必须重建您的操作系统。

答案2

如果这是 NVMe SSD,您应该能够检查 SMART 并查看设备是否自行切换到只读模式。据我所知,SATA SSD 没有用于指示此状态的属性。

对于 NVMe,如果在“严重警告属性”中设置了只读位,且未出现其他严重错误,则该属性的值将为 0x08。

如果得到不同的非零值,请使用计算器或在线工具将该值转换为二进制https://www.rapidtables.com/convert/number/hex-to-binary.html

可以设置以下严重警告标志:

Bit 0: If set to ‘1’, then the available spare capacity has fallen below the threshold
Bit 1: If set to ‘1’, then a temperature is (> over temp threshold) or (< below temp threshold)
Bit 2: If set to ‘1’, then the NVM subsystem reliability has been degraded due to significant media related errors or any internal error that degrades NVM subsystemreliability.
Bit 3: If set to ‘1’, then the media has been placed in read only mode
Bit 4: If set to ‘1’, then the volatile memory backup device has failed. This field is only valid if the controller has a volatile memory backup solution.

因此,如果我们看到例如 0x08,我们将其转换为二进制并得到 00001000。

我们从最后一位开始计数,最后一位是位零,因此在此示例中设置了位 3。可能设置了其他位,但您仍可以使用下表来确定是否设置了只读位。

|7|6|5|4|3|2|1|0 - bit
----------------
|0|0|0|0|1|0|0|0

这是固件决定,据我所知,重置它需要供应商特定的命令。换句话说,你唯一的选择是从 SSD 中挽救数据并替换它。

只读模式下 NVMe SSD 的 SMART 输出示例:

SMART overall-health self-assessment test result: FAILED!
- media has been placed in read only mode

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x08  <<<< 
Temperature:                        25 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    486,334 [249 GB]
Data Units Written:                 476,639 [244 GB]
Host Read Commands:                 2,838,965
Host Write Commands:                3,809,355
Controller Busy Time:               45
Power Cycles:                       100
Power On Hours:                     25
Unsafe Shutdowns:                   25
Media and Data Integrity Errors:    17,200,105
Error Information Log Entries:      0
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

资料来源:https://media.kingston.com/support/downloads/MKP_521.6_SMART-DCP1000_attribute.pdf- 虽然这是金士顿文档,但它符合 NVMe 规范。换句话说,这些属性及其说明适用于所有 NMVe SSD 设备。

相关内容