NVMe M.2 SSD が故障し、ファイルシステムが壊れて書き込み不能になりましたが、それでも消去できますか?

NVMe M.2 SSD が故障し、ファイルシステムが壊れて書き込み不能になりましたが、それでも消去できますか?

昨日、停電中に Samsung 970 EVO M.2 500GB SSD (MZ-V7E500BW) が突然故障しました。

POST 中に警告が表示されるようになりました (「警告! データをバックアップし、ハード ディスク ドライブを交換してください。警告! HDD/SSD はいつでもクラッシュする可能性があります。」)。これより前に最後に再起動したのは約 5 日前で、その時は警告は表示されていませんでした。

ライブ USB スティックを起動することで、SMART ログを確認することができました。

Smart Log for NVME device:nvme0 namespace-id:ffffffff
critical_warning                        : 0x8
temperature                             : 49 C
available_spare                         : 29%
available_spare_threshold               : 10%
percentage_used                         : 0%
endurance group critical warning summary: 0
data_units_read                         : 4,948,748
data_units_written                      : 20,573,476
host_read_commands                      : 100,316,217
host_write_commands                     : 357,643,056
controller_busy_time                    : 1,790
power_cycles                            : 24
power_on_hours                          : 4,570
unsafe_shutdowns                        : 11
media_errors                            : 41
num_err_log_entries                     : 70
Warning Temperature Time                : 0
Critical Composite Temperature Time     : 0
Temperature Sensor 1           : 49 C
Temperature Sensor 2           : 74 C
Thermal Management T1 Trans Count       : 0
Thermal Management T2 Trans Count       : 0
Thermal Management T1 Total Time        : 0
Thermal Management T2 Total Time        : 0

nvmeライブ USB OS の起動中に表示されるカーネルからのメッセージ:

Oct 26 19:18:58 ubuntu kernel: [    1.233479] nvme nvme0: pci function 0000:06:00.0
Oct 26 19:18:58 ubuntu kernel: [    1.243303] nvme nvme0: missing or invalid SUBNQN field.
Oct 26 19:18:58 ubuntu kernel: [    1.243323] nvme nvme0: Shutdown timeout set to 8 seconds
Oct 26 19:18:58 ubuntu kernel: [    1.252449] nvme nvme0: 4/0/0 default/read/poll queues
Oct 26 19:18:58 ubuntu kernel: [    1.254855]  nvme0n1: p1 p2 p3
Oct 26 19:18:58 ubuntu kernel: [    3.629244] EXT4-fs (nvme0n1p2): INFO: recovery required on readonly filesystem
Oct 26 19:18:58 ubuntu kernel: [    3.629246] EXT4-fs (nvme0n1p2): write access will be enabled during recovery
Oct 26 19:18:58 ubuntu kernel: [    3.674861] blk_update_request: critical medium error, dev nvme0n1, sector 124928 op 0x1:(WRITE) flags 0x800 phys_seg 4 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.674893] Buffer I/O error on dev nvme0n1p2, logical block 0, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.674913] Buffer I/O error on dev nvme0n1p2, logical block 1, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.674931] Buffer I/O error on dev nvme0n1p2, logical block 2, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.674949] Buffer I/O error on dev nvme0n1p2, logical block 3, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.674967] blk_update_request: critical medium error, dev nvme0n1, sector 133200 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.674995] Buffer I/O error on dev nvme0n1p2, logical block 1034, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.675013] blk_update_request: critical medium error, dev nvme0n1, sector 133384 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.675040] Buffer I/O error on dev nvme0n1p2, logical block 1057, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.675059] blk_update_request: critical medium error, dev nvme0n1, sector 147176 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.675086] Buffer I/O error on dev nvme0n1p2, logical block 2781, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.675105] blk_update_request: critical medium error, dev nvme0n1, sector 4319360 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.675132] Buffer I/O error on dev nvme0n1p2, logical block 524304, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.675151] blk_update_request: critical medium error, dev nvme0n1, sector 4319488 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.675178] Buffer I/O error on dev nvme0n1p2, logical block 524320, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.675197] blk_update_request: critical medium error, dev nvme0n1, sector 4319544 op 0x1:(WRITE) flags 0x800 phys_seg 2 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.675224] Buffer I/O error on dev nvme0n1p2, logical block 524327, lost async page write
Oct 26 19:18:58 ubuntu kernel: [    3.675243] blk_update_request: critical medium error, dev nvme0n1, sector 4319816 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.675270] blk_update_request: critical medium error, dev nvme0n1, sector 4320256 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.675297] blk_update_request: critical medium error, dev nvme0n1, sector 4320936 op 0x1:(WRITE) flags 0x800 phys_seg 1 prio class 0
Oct 26 19:18:58 ubuntu kernel: [    3.729319] EXT4-fs (nvme0n1p2): error loading journal
Oct 26 19:18:58 ubuntu kernel: [    3.743157] EXT4-fs (nvme0n1p3): INFO: recovery required on readonly filesystem
Oct 26 19:18:58 ubuntu kernel: [    3.743158] EXT4-fs (nvme0n1p3): write access will be enabled during recovery
Oct 26 19:18:58 ubuntu kernel: [    3.806113] EXT4-fs (nvme0n1p3): error loading journal
Oct 26 19:19:04 ubuntu kernel: [   30.724414] blk_update_request: critical medium error, dev nvme0n1, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0
Oct 26 19:19:04 ubuntu kernel: [   30.752254] blk_update_request: critical medium error, dev nvme0n1, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0
Oct 26 19:19:05 ubuntu kernel: [   31.346630] blk_update_request: critical medium error, dev nvme0n1, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0
Oct 26 19:19:05 ubuntu kernel: [   31.365831] blk_update_request: critical medium error, dev nvme0n1, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0
Oct 26 19:19:29 ubuntu kernel: [   55.502099] blk_update_request: critical medium error, dev nvme0n1, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0
Oct 26 19:19:29 ubuntu kernel: [   55.516704] blk_update_request: critical medium error, dev nvme0n1, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0
Oct 26 19:24:44 ubuntu kernel: [  370.116101] blk_update_request: critical medium error, dev nvme0n1, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0
Oct 26 19:24:44 ubuntu kernel: [  370.130330] blk_update_request: critical medium error, dev nvme0n1, sector 0 op 0x1:(WRITE) flags 0x800 phys_seg 0 prio class 0

おかげで、ddrescueネットワーク経由ですべてのパーティションを別のマシンにクローンすることができました。両方の ext4 パーティションを抽出中に IO エラーが発生しましたが、何度も再試行した結果、最終的にすべてが取得できました。

その後、e2fsckイメージを実行できるようになり、成功したようで、読み取り専用ループ デバイスとしてマウントできるようになりました。データはそのままのようです。

最初の質問は問題を解決してこのドライブを使い続けるために何かできることはありますか?そうではないと思いますが、ご提案があればぜひお聞かせください。

ライブ USB のパーティションの 1 つで実行しようとするとfsck、このようなことが起こります。以下に示すように、質問に対する回答のすべての組み合わせを試しました。マニュアル ページを十分に理解できず、ファイル システムやドライブについて十分な知識がないため、どのようなオプションが役立つかわかりません。

ubuntu@ubuntu:~$ sudo fsck /dev/nvme0n1p3
fsck from util-linux 2.36.1
e2fsck 1.46.3 (27-Jul-2021)
/dev/nvme0n1p3: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? yes
fsck.ext4: Input/output error while recovering journal of /dev/nvme0n1p3
fsck.ext4: unable to set superblock flags on /dev/nvme0n1p3


/dev/nvme0n1p3: ********** WARNING: Filesystem still has errors **********

ubuntu@ubuntu:~$ sudo fsck /dev/nvme0n1p3
fsck from util-linux 2.36.1
e2fsck 1.46.3 (27-Jul-2021)
/dev/nvme0n1p3: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? no
Clear journal<y>? no
fsck.ext4: Input/output error while recovering journal of /dev/nvme0n1p3
fsck.ext4: unable to set superblock flags on /dev/nvme0n1p3


/dev/nvme0n1p3: ********** WARNING: Filesystem still has errors **********

ubuntu@ubuntu:~$ sudo fsck /dev/nvme0n1p3
fsck from util-linux 2.36.1
e2fsck 1.46.3 (27-Jul-2021)
/dev/nvme0n1p3: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? no
Clear journal<y>? yes
fsck.ext4: Input/output error while recovering journal of /dev/nvme0n1p3
fsck.ext4: unable to set superblock flags on /dev/nvme0n1p3


/dev/nvme0n1p3: ********** WARNING: Filesystem still has errors **********

ubuntu@ubuntu:~$ 

ドライブはまだ保証期間内だと思いますので、Samsung サポートに連絡して交換または返金を依頼しようと考えています。

返送を求められた場合、このドライブには機密データが入っているので問題が生じます。

ドライブへの書き込みはすべて拒否されます。マウントも書き込みも正常に行えません。ブロック レベルで書き込もうとすると、カーネルから IO エラーが発生します。Samsung のセキュア消去ツール (Windows 専用のソフトウェアで、このようなツールを使って起動可能な USB ドライブを作成できる) でも失敗します。

このデバイスを強制的に安全に消去する方法はありますか?

答え1

慎重すぎることはありません。チェルノブイリ ウイルスに攻撃されたファイル システムから多くのファイルを取得することができました。

データを消去するには、 を実行できますが、どこかで停止した場合は、オプションを使用して再起動し、いくつかのブロックをスキップするdd bs=1M if=/dev/zero of=/dev/…必要がある場合があります。skip

NVRAM では、一部のブロックを消去することはできませんが、一部のブロックを再割り当てすることはできます。ただし、消去されていないブロックを取得するには非常に低レベルのアクセスが必要になります。個人の機密データには適していますが、軍事機密データには適していません。

関連情報