在 Linux 中强制 NVME 硬盘退出只读模式

在 Linux 中强制 NVME 硬盘退出只读模式

最近购买的 NVMe 硬盘在使用大约一天后就进入了只读模式。它似乎是坏的硬盘(根据 的输出smartctl),我很乐意更换它,而不必太担心。

但是,尽管驱动器上没有任何特别敏感的内容(我可以更改几个密码),但如果我能先将其退出“只读”模式并在其上写几个零,我会更愿意将其送回制造商。

这可能吗?我不需要驱动器可靠,也不需要它能够抵御复杂的攻击,我只想让我的数据不会被下一个mount拥有该设备的人所利用,没有造成物理损坏。

(请注意,非常相似的问题,使驱动器退出只读模式,只收到了非答复,说不用麻烦 / 设备确实坏了。我承认设备确实坏了,我只是想在更换之前“最后写一次”

$ udisksctl status
MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
WDC WDS200T2B0C-00PXH0    21705000  2117DP459510         nvme0n1

$ sudo nvme list
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     2117DP459510         WDC WDS200T2B0C-00PXH0                   1           2.00  TB /   2.00  TB    512   B +  0 B   21705000

$ sudo smartctl -a /dev/nvme0
smartctl 7.1 2019-12-30 r5022 [x86_64-linux-5.8.0-55-generic] (local build)
Copyright (C) 2002-19, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       WDC WDS200T2B0C-00PXH0
Serial Number:                      2117DP459510
Firmware Version:                   21705000
PCI Vendor/Subsystem ID:            0x15b7
IEEE OUI Identifier:                0x001b44
Total NVM Capacity:                 2,000,398,934,016 [2.00 TB]
Unallocated NVM Capacity:           0
Controller ID:                      1
Number of Namespaces:               1
Namespace 1 Size/Capacity:          2,000,398,934,016 [2.00 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            001b44 4a46f7edaf
Local Time is:                      Fri Jun 11 22:02:14 2021 BST
Firmware Updates (0x14):            2 Slots, no Reset required
Optional Admin Commands (0x0017):   Security Format Frmw_DL Self_Test
Optional NVM Commands (0x005f):     Comp Wr_Unc DS_Mngmt Wr_Zero Sav/Sel_Feat Timestmp
Maximum Data Transfer Size:         128 Pages
Warning  Comp. Temp. Threshold:     80 Celsius
Critical Comp. Temp. Threshold:     85 Celsius
Namespace 1 Features (0x02):        NA_Fields

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     4.10W    2.90W       -    0  0  0  0        0       0
 1 +     2.70W    1.80W       -    0  0  0  0        0       0
 2 +     1.90W    1.50W       -    0  0  0  0        0       0
 3 -   0.0250W       -        -    3  3  3  3     3900   11000
 4 -   0.0050W       -        -    4  4  4  4     5000   39000

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

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
- NVM subsystem reliability has been degraded
- media has been placed in read only mode

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x0c
Temperature:                        41 Celsius
Available Spare:                    100%
Available Spare Threshold:          10%
Percentage Used:                    0%
Data Units Read:                    24,177 [12.3 GB]
Data Units Written:                 119,045 [60.9 GB]
Host Read Commands:                 333,086
Host Write Commands:                2,380,870
Controller Busy Time:               3
Power Cycles:                       12
Power On Hours:                     30
Unsafe Shutdowns:                   0
Media and Data Integrity Errors:    1,164
Error Information Log Entries:      1,165
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0

Error Information (NVMe Log 0x01, max 256 entries)
No Errors Logged

答案1

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x0c

驱动器的固件本身将驱动器切换为只读模式。

在这种情况下,0C > 00001100 > 位 2 和 3 被设置。我们可以在下表中查找它们的含义:

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.

看:https://media.kingston.com/support/pdf/ssd-smart-attribute.pdf了解更多信息。

根据 NVMe 规范,驱动器应该忽略所有写入命令。

来源:https://nvmexpress.org/wp-content/uploads/NVM-Express-Base-Specification-2.0b-2021.12.18-Ratified.pdf

因此,无论格式化多少次都无法解决这个问题。格式化意味着要建立一个新文件系统书面写入驱动器,这些写入将被丢弃。使用 dd 或任何你喜欢的工具将零写入驱动器也是同样的道理。

您可以尝试西部数据专用工具(西部数据 SSD 仪表板)是否允许您执行安全或加密擦除。

简而言之,擦除选项包括:

  • 擦除映射表。这使得数据恢复理论上可能使用高端设备
  • 擦除映射表并删除数据。这将使数据恢复变得不可能,在 3 个选项中花费的时间最多。
  • 加密擦除。这将使数据无法恢复,并且速度最快。

请注意,并非所有驱动器都提供所有三个选项。

如果这些选项无法“擦除”驱动器,那么您必须决定保留该驱动器或按原样发送该驱动器。

答案2

我最近也遇到了同样的情况,并针对这个问题做了一些研究。希望它能帮助那些通过搜索引擎来到这个帖子的人。

基本上,有三件事你可以尝试。

  1. dd

是的,即使你的磁盘被报告,这也可能有效media has been placed in read only mode。但是,很可能dd无法写入整个磁盘。就我而言,坏掉的 SSD 在一定量的写入后总会脱机。但是,这足以破坏分区表和文件系统元数据,从而阻止其他人轻松安装驱动器。

如果您的驱动器损坏严重,甚至无法承受超过几 KB 的写入,您也可以考虑仅找到并擦除敏感文件(例如密码),这更有可能成功。

  1. 安全擦除 (SE)

根据您的驱动器是 SATA 还是 NVMe,您可能需要尝试ATA 安全擦除为您的 SATA 驱动器和NVMe 安全擦除按照链接中的说明为您的 NVMe 驱动器进行操作。两者都很容易遵循,值得一试。

  1. 驱动器清理

2. 的替代方案是ATA 消毒对于 SATA 驱动器和NVMe 消毒适用于 NVMe 驱动器。但是,如果 2. 已经失败,则不太可能起作用。不过仍然值得一试。

如果以上方法都不起作用,那么您就无能为力了。如果您确实觉得保留所有数据不安全(或者您真的很偏执),请放弃 RMA 或退货,然后去购买新驱动器。您的数据一定价值超过几百美元,对吧?

相关内容