2つのハードドライブの間に破損したファイル

2つのハードドライブの間に破損したファイル

Ubuntu 16.04 LTS Server i386(カーネル4.4.211-0404211-generic)を実行するNASがあります。私はこれをSambaと一緒に使用して、ホームネットワークを介して映画と音楽を共有します。

HDDから最近購入した別のHDDに約100個のGoデータをext4形式でコピーしてみました。

どちらも、次のように起動時にfstabによってインストールされます。

UUID=... /media/HDD{number_of_hdd} ext4 defaults,errors=remount-ro 0 2

しかし、私が試したことはすべて失敗し、その理由は次のとおりです。すべてが(部分的に)破損しています。私はすべてのファイルを読むことができます。たとえば、私のWindows PCのVLCは私のSamba共有がそこにあると思いますが、音楽に小さな一時停止がたくさんあるか、ビデオの視覚的損傷があり、デコードされたチャンクがたくさんあることを確認しました。Dropped (discontinued)VLC統計にはデータに表示されるページがあり、オーディオや視覚的な損傷を検出するたびに異なるページがあります。

そこでチェックサム(ソースと対象ファイルの合計を使用7z h {file} -scrcSHA256)を確認し、md5sum毎回異なるたびに確認しました。

cprsyncコピーの作成に両方失敗しました。私が使用した完全なコマンドは次のとおりです。

cp -r {source} {destination}
rsync -Pa {source} {destination}

両方のドライブのスマート値を確認しましたが、問題はありませんでした。その後、fsck -f -y両方のドライブも確認し、fsckはすべてが大丈夫だと言いました。また、でメモリテストを実行しましたが、memtest86+すべてが大丈夫でした。利用可能なアップデートはありませんapt update

何時間も問題を特定しようとした後、いくつかのことが見つかりました(cpまたは使用の両方rsync)。

  • 以下を使用して生成された小さなファイルの場合、truncateチェックサムは正しいです。
  • 小さなファイル(5つのファイルのうち約20Mo)を含むフォルダの場合、チェックサムは正しいです。
  • 100Goのディレクトリ全体をコピーしようとすると、両方のコマンドはすべて大丈夫だと言いますが、チェックサムが一致しません。

元のディレクトリと破損したディレクトリの2つのファイルを比較したところ、いくつかの違いが見つかりました。 1 2]

必要に応じて、元のファイルと破損したファイルを含むアーカイブを送信できます。

サーバー仕様:

==================================================
                            system     A7N8X-E
/0                          bus        A7N8X-E
/0/0                        memory     64KiB BIOS
/0/4                        processor  AMD Athlon(tm) XP 2800+
/0/4/9                      memory     128KiB L1 cache
/0/4/a                      memory     512KiB L2 cache
/0/26                       memory     3GiB System Memory
/0/26/0                     memory     1GiB DIMM DRAM Synchronous
/0/26/1                     memory     1GiB DIMM DRAM Synchronous
/0/26/2                     memory     1GiB DIMM DRAM Synchronous
/0/100                      bridge     nForce2 IGP2
/0/100/0.1                  memory     RAM memory
/0/100/0.2                  memory     RAM memory
/0/100/0.3                  memory     RAM memory
/0/100/0.4                  memory     RAM memory
/0/100/0.5                  memory     RAM memory
/0/100/1                    bridge     nForce2 ISA Bridge
/0/100/1.1                  bus        nForce2 SMBus (MCP)
/0/100/2                    bus        nForce2 USB Controller
/0/100/2/1      usb2        bus        OHCI PCI host controller
/0/100/2.1                  bus        nForce2 USB Controller
/0/100/2.1/1    usb3        bus        OHCI PCI host controller
/0/100/2.2                  bus        nForce2 USB Controller
/0/100/2.2/1    usb1        bus        EHCI Host Controller
/0/100/4        enp0s4      network    nForce2 Ethernet Controller
/0/100/8                    bridge     nForce2 External PCI Bridge
/0/100/8/4      enp1s4      network    88E8001 Gigabit Ethernet Controller
/0/100/8/a                  storage    SiI 3114 [SATALink/SATARaid] Serial ATA Controller
/0/100/9                    storage    nForce2 IDE
/0/100/1e                   bridge     nForce2 AGP
/0/1            scsi0       storage
/0/1/0.0.0      /dev/sda    disk       1TB ST1000DM010-2EP1
/0/1/0.0.0/1    /dev/sda1   volume     928GiB EXT4 volume
/0/1/0.0.0/2    /dev/sda2   volume     3070MiB Extended partition
/0/1/0.0.0/2/5  /dev/sda5   volume     3070MiB Linux swap / Solaris partition
/0/2            scsi1       storage
/0/2/0.0.0      /dev/sdb    disk       1TB ST1000LM048-2E71
/0/2/0.0.0/1    /dev/sdb1   volume     465GiB EXT4 volume
/0/2/0.0.0/2    /dev/sdb2   volume     465GiB Linux filesystem partition
/0/3            scsi2       storage
/0/3/0.0.0      /dev/sdc    disk       3TB ST3000DM007-1WY1
/0/3/0.0.0/1    /dev/sdc1   volume     2794GiB EXT4 volume
/0/5            scsi3       storage
/0/5/0.0.0      /dev/sdd    disk       1TB ST1000LM048-2E71
/0/5/0.0.0/1    /dev/sdd1   volume     931GiB Windows NTFS volume
/1              virbr0-nic  network    Ethernet interface

この問題がすぐに解決されることを願っています。ありがとう

memtest86+編集1(2020年1月26日): - RAM問題なく3時間30分(正確には2パス)実行しました。ここに画像の説明を入力してください。 - 破損(CRCエラー)に関するメッセージも確認しましたが、dmesgコピーを作成しても何も報告されませんでした(対象のチェックサムにもエラーがあります)...

- 問題がないことを確認するために、両方のHDD(ソースとターゲット)の両方で2回の長いSMARTテストを実行しています。

- また、このプロセス中にファイルのコピーを停止すると(例:CTRL + Cを使用)、ext4ファイルシステムが破損しているようです。その方法と理由はわかりません...

編集2(2020年1月26日):2つのハードドライブについて2つのレポートがあるためです。

ソースハードドライブ:

smartctl 6.5 2016-01-24 r4214 [i686-linux-4.4.211-0404211-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     ST3000DM007-1WY10G
Serial Number:    WFN2CMWR
LU WWN Device Id: 5 000c50 0cc67ff74
Firmware Version: 0001
User Capacity:    3 000 592 982 016 bytes [3,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5425 rpm
Form Factor:      3.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 5
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Sun Jan 26 21:35:04 2020 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (    0) seconds.
Offline data collection
capabilities:            (0x73) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    ( 359) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x30a5) SCT Status supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   079   064   006    Pre-fail  Always       -       74326255
  3 Spin_Up_Time            0x0003   096   096   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       13
  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   067   060   045    Pre-fail  Always       -       5351732
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       66 (132 227 0)
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       13
183 Runtime_Bad_Block       0x0032   100   100   000    Old_age   Always       -       0
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   067   060   040    Old_age   Always       -       33 (Min/Max 30/38)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       5
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       23
194 Temperature_Celsius     0x0022   033   040   000    Old_age   Always       -       33 (0 23 0 0 0)
195 Hardware_ECC_Recovered  0x001a   079   064   000    Old_age   Always       -       74326255
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       55 (238 164 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       2782921433
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       1050108775

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%        66         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

ターゲットハードドライブ:

Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Device Model:     ST1000LM048-2E7172
Serial Number:    ZDEBV755
LU WWN Device Id: 5 000c50 0b24d84fd
Firmware Version: SDM1
User Capacity:    1 000 204 886 016 bytes [1,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Rotation Rate:    5400 rpm
Form Factor:      2.5 inches
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-3 T13/2161-D revision 3b
SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 1.5 Gb/s)
Local Time is:    Sun Jan 26 18:34:49 2020 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                    was never started.
                    Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                    without error or no self-test has ever 
                    been run.
Total time to complete Offline 
data collection:        (    0) seconds.
Offline data collection
capabilities:            (0x71) SMART execute Offline immediate.
                    No Auto Offline data collection support.
                    Suspend Offline collection upon new
                    command.
                    No Offline surface scan supported.
                    Self-test supported.
                    Conveyance Self-test supported.
                    Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering
                    power-saving mode.
                    Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                    General Purpose Logging supported.
Short self-test routine 
recommended polling time:    (   1) minutes.
Extended self-test routine
recommended polling time:    ( 162) minutes.
Conveyance self-test routine
recommended polling time:    (   2) minutes.
SCT capabilities:          (0x3035) SCT Status supported.
                    SCT Feature Control supported.
                    SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   083   064   006    Pre-fail  Always       -       193912808
  3 Spin_Up_Time            0x0003   099   099   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   100   100   020    Old_age   Always       -       228
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   070   060   045    Pre-fail  Always       -       9188472
  9 Power_On_Hours          0x0032   092   092   000    Old_age   Always       -       7832 (182 235 0)
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   100   100   020    Old_age   Always       -       197
184 End-to-End_Error        0x0032   100   100   099    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
188 Command_Timeout         0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   074   058   040    Old_age   Always       -       26 (Min/Max 26/31)
191 G-Sense_Error_Rate      0x0032   100   100   000    Old_age   Always       -       0
192 Power-Off_Retract_Count 0x0032   100   100   000    Old_age   Always       -       78
193 Load_Cycle_Count        0x0032   100   100   000    Old_age   Always       -       1655
194 Temperature_Celsius     0x0022   026   042   000    Old_age   Always       -       26 (0 16 0 0 0)
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       1
240 Head_Flying_Hours       0x0000   100   253   000    Old_age   Offline      -       7545 (117 142 0)
241 Total_LBAs_Written      0x0000   100   253   000    Old_age   Offline      -       5699868670
242 Total_LBAs_Read         0x0000   100   253   000    Old_age   Offline      -       10646554103
254 Free_Fall_Sensor        0x0032   100   100   000    Old_age   Always       -       0

SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%      7832         -
# 2  Short offline       Completed without error       00%      7830         -
# 3  Short offline       Completed without error       00%      3141         -

SMART Selective self-test log data structure revision number 1
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Not_testing
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

編集3(2020年2月15日): 最後にlibata.force=noncqLinuxパラメータを設定して問題を解決しました。これは明らかにカーネルのバグであるように見え、すぐに修正する必要があるようです(https://bugs.launchpad.net/ubuntu/+bug/1861300)

ベストアンサー1

(注:これは多くのカーネルエラー(dmesgORチェックjournalctl -b -k)が発生しない場合、またはドライブのSMARTステータスに表示されるCRCエラーの多くが発生しないと仮定します。そうである場合...まず、NCQのオフなどのいくつかのソフトウェア操作を試してみてください。

通常、これはRAMが破損していることを意味します。 ECC RAMがないと、memtest86+が通過しても(どのくらい長い間実行していますか?)仕様に疑問があります。

1メートル以上のSATAケーブルを見つけてCPUの周りに巻くなどのクレイジーなことをしないようにしてください。 SATAデータ転送にCRCがありますが、ここで破損が発生すると多くのエラーが発生します。 SATAケーブルは安価で、いつでも交換できます。

RAM以上のものを交換したい場合は、次のステップは損傷が発生した時点を絞り込むことです。

各ドライブでmd5sum大容量ファイル(キャッシュで確認したくない場合は2x RAMが必要です)または問題が発生したファイルセットに対して繰り返し実行するか、同様です。数時間のように何度も繰り返してください。いつも同じ結果が出ますか?そうでない場合は、読み取りパスが破損しています。常に同じ結果が得られる場合は、読み取りに損傷がない可能性が高くなります。これはRAMを発生させません。

両方のディスクで読み取り破損が発生した場合は、RAMの交換から始めてください。それでも問題が解決しない場合は、電源装置を試してみて、最後にSATAコントローラ(おそらくマザーボードにはんだ付けされているので交換する必要があります)を試してみてください。

ディスクの1つ(両方のディスクではない)に読み取り破損がある場合は、ディスクを交換してください。これは問題が解決せず、バックプレーン(サーバー上のホットスワップに使用されます)がある場合は欠陥がある可能性があります。ケーブルを交換してみることもできます。別のSATAポートを試してください。ここでの仮定は次のとおりです。一つ不良ディスクが発生する可能性がありますが、二つ可能性はほとんどありません。正直なところ、両方のディスクが不良であると仮定する前にメモリを交換します。

もし両方ディスクは常に同じデータを再読み込みします。まず、実際に十分なデータを確認してキャッシュされていないことを確認してください。少なくとも2倍のメモリが必要です。その後、いくつかの既知のデータを各ディスクに繰り返し書き込んで再読み込みすると、他の値が出てくることを確認できます。これは上記とほぼ同じ解決策になります。

PS:そのような腐敗は狡猾です。特にデータだけでなく、Linuxディストリビューションの任意のビットも破損する可能性があります。原因が解決したら、通常再インストールするのが最善です。少なくとも、各ディストリビューションで提供されるファイルを既知の良好なチェックサムと比較して確認する必要があります。一部のディストリビューションでは、これを行うユーティリティを提供しています。これは、動的展開データファイル(インストールされているパッケージのリストなど)が破損していないことを確認していませんが、少なくともバイナリに問題がないことを確認できます。

おすすめ記事