web-dev-qa-db-ja.com

このSSDが一貫性のないデータを返すのはなぜですか、バックアップイメージファイルがチェックサムと一致しないのはなぜですか?

これはノートブックのSSDについてです。 SSDはすでに故障しており、データが破損している可能性もあります。使用していないときにアクセスするたびに異なるデータを返すようです(詳細については、以下を参照してください)。この疑いを確認するために使用できるツールはどれですか?

HDDがゆっくりと死に始めたとき、通常SMART出力に明確な表示があり、gsmart controlのようなグラフィカルツールは特定の値を赤で強調表示し、smartdはすでに警告を生成している可能性があります。その時点で、ドライブがデータの破損を開始する前に、ユーザーがバックアップを作成する時間がまだある可能性があります。もちろん、ドライブがすでにデータの破損を開始している場合は、その中のいくつかのファイルバックアップが破損する可能性があります。

このSSDのSMART出力には明確な警告がないようです。カーネルエラーはdmesgなどに記録されていません(一方、ecryptfsはエラーを記録しています)。偶然にも、このSSDはすでにひどいため、使用していないときでもデータが破損している可能性があることがわかりました。
このSSD(sda)のバックアップ(1:1 ddイメージ)を作成した後、イメージファイルのチェックサムがSSDのチェックサムと一致しないことを発見しました。もちろん、これはライブシステムにあったため、SSDはマウントされませんでした。つまり、バックアッププロセス中にその内容を変更することはできませんでした。

これは私がバックアップコピーを作成するためにしたことです。 「BUTTER」は、BTRFSでフォーマットされた外部ドライブをマウントした場所です。これにより、バックアップドライブも不良の場合にデータエラーを見つけることができます(他のほとんどのファイルシステムとは異なり、BTRFSにはチェックサムがあります)。

[root@localhost mnt]# time dd if=/dev/sda of=BUTTER/SSD.dd.img bs=400M && echo OK
610+1 records in
610+1 records out
256060514304 bytes (256 GB, 238 GiB) copied, 5188.27 s, 49.4 MB/s

real    86m28.726s
user    0m0.008s
sys 7m3.597s
OK

イメージファイルのMD5チェックサムとSSDの別のチェックサムを作成しましたが、一致しませんでした。この手順を繰り返した後、私はSSDのMD5チェックサムは毎回異なるであることに気付きました。

[root@localhost mnt]# time dd if=/dev/sda bs=400M | md5sum >/tmp/MD5-again

610+1 records in
610+1 records out
256060514304 bytes (256 GB, 238 GiB) copied, 1059.87 s, 242 MB/s

real    17m39.904s
user    8m21.708s
sys 3m58.466s
[root@localhost mnt]# cat /tmp/MD5-again
24e71715359158f3ab38e748af93718c  -
[root@localhost mnt]# time dd if=/dev/sda bs=400M | md5sum >>/tmp/MD5-again
610+1 records in
610+1 records out
256060514304 bytes (256 GB, 238 GiB) copied, 1073.7 s, 238 MB/s

real    17m53.735s
user    8m28.494s
sys 4m23.993s
[root@localhost mnt]# cat /tmp/MD5-again
24e71715359158f3ab38e748af93718c  -
569d517626c1b7394acca0c4020c99bc  -

繰り返しになりますが、SSDはそのプロセス中のどの時点でもマウントされませんでした。

# mount | grep -c sda
0

SMARTテストを実行しましたが、何も見つかりませんでした。SMARTエラーはログに記録されません。
SMART属性:

デバイスモデル:SanDisk SD8TN8U256G1001

[root@localhost mnt]# smartctl -A /dev/sda
smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.16.3-301.fc28.x86_64] (local build)
Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 4
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0032   100   100   ---    Old_age   Always       -       0
  9 Power_On_Hours          0x0032   100   100   ---    Old_age   Always       -       3173
 12 Power_Cycle_Count       0x0032   100   100   ---    Old_age   Always       -       1117
170 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       0
171 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       0
172 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       0
173 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       37
174 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       41
178 Used_Rsvd_Blk_Cnt_Chip  0x0032   100   100   ---    Old_age   Always       -       0
180 Unused_Rsvd_Blk_Cnt_Tot 0x0033   100   100   010    Pre-fail  Always       -       100
184 End-to-End_Error        0x0033   100   100   097    Pre-fail  Always       -       0
187 Reported_Uncorrect      0x0032   100   100   ---    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   056   062   ---    Old_age   Always       -       44 (Min/Max 13/62)
199 UDMA_CRC_Error_Count    0x0032   100   100   ---    Old_age   Always       -       0
233 Media_Wearout_Indicator 0x0033   093   100   001    Pre-fail  Always       -       15484248
234 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       11127
241 Total_LBAs_Written      0x0030   253   253   ---    Old_age   Offline      -       3192
242 Total_LBAs_Read         0x0030   253   253   ---    Old_age   Offline      -       66461
249 Unknown_Attribute       0x0032   100   100   ---    Old_age   Always       -       9346

何が起こっていますか?

4
basic6

この質問を投稿した直後、私は自分の間違いを見つけました。私はライブシステムとしてFedoraXFCEを使用しました。これにより、問題のSSDにあるスワップパーティションが自動的に有効になります。そしてもちろん、ライブシステムがSSDのスワップパーティションをアクティブに使用している間、それによってSSDのコンテンツが変更されていました。

[root@localhost mnt]# swapon --show
NAME      TYPE      SIZE   USED PRIO
/dev/sda3 partition   8G 103.3M   -2

私がすでに質問を投稿したので、それは少し厄介です。しかし、同じ過ちを犯している可能性のある他の誰かに役立つことを願って、そのままにしておきます。

私がしなければならなかったのは、以前に自動的にマウントされたスワップパーティションを無効にすることだけでした。

[root@localhost mnt]# swapoff -a

ライブシステムを起動すると、スワップパーティションが自動的にマウントされたことを指摘しておきます。そのスワップパーティションをマウントしたくありませんでした。そのスワップパーティションに休止状態のイメージがあった場合はどうなるのだろうか。

不要なスワップパーティションを無効にした後、すべてが期待どおりに機能しました。上記のコマンドを使用すると、イメージファイルのチェックサムがSSDのチェックサムと一致するようになります。言い換えれば、このSSDは悪くありません。

5
basic6