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
毎回異なるたびに確認しました。
私cp
とrsync
コピーの作成に両方失敗しました。私が使用した完全なコマンドは次のとおりです。
cp -r {source} {destination}
rsync -Pa {source} {destination}
両方のドライブのスマート値を確認しましたが、問題はありませんでした。その後、fsck -f -y
両方のドライブも確認し、fsckはすべてが大丈夫だと言いました。また、でメモリテストを実行しましたが、memtest86+
すべてが大丈夫でした。利用可能なアップデートはありませんapt update
。
何時間も問題を特定しようとした後、いくつかのことが見つかりました(cp
または使用の両方rsync
)。
- 以下を使用して生成された小さなファイルの場合、
truncate
チェックサムは正しいです。 - 小さなファイル(5つのファイルのうち約20Mo)を含むフォルダの場合、チェックサムは正しいです。
- 100Goのディレクトリ全体をコピーしようとすると、両方のコマンドはすべて大丈夫だと言いますが、チェックサムが一致しません。
元のディレクトリと破損したディレクトリの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=noncq
Linuxパラメータを設定して問題を解決しました。これは明らかにカーネルのバグであるように見え、すぐに修正する必要があるようです(https://bugs.launchpad.net/ubuntu/+bug/1861300)
答え1
(注:これは多くのカーネルエラー(dmesg
ORチェック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ディストリビューションの任意のビットも破損する可能性があります。原因が解決したら、通常再インストールするのが最善です。少なくとも、各ディストリビューションで提供されるファイルを既知の良好なチェックサムと比較して確認する必要があります。一部のディストリビューションでは、これを行うユーティリティを提供しています。これは、動的展開データファイル(インストールされているパッケージのリストなど)が破損していないことを確認していませんが、少なくともバイナリに問題がないことを確認できます。
答え2
私はずっと前に同じ問題を経験しました。問題は破損したBIOSです。 RAMではない可能性が高いです。まるでRAMであるかのように、ランダムな衝突が「無料」で発生し、問題は1つではなく両方のドライブで発生します(問題が新しいドライブでのみ発生すると仮定するのは正しいですか?)
私はこれに焦点を当てたいと思います:コピーを除いて。書き込み専用に変更してください。 ddを使用してブロックサイズ(dd if = / dev / zero of = myfile bs = 1M count = 100)のファイルを作成します。正確なサイズを見つけると壊れます。