SMARTデータ内の単一のCurrent_Pending_Sectorを削除/診断しようとしています


18

私はLinuxの新規インストールを実行中です。その前に、必要に応じてHDD上のデータを安全に上書きできるので、HDDの正常性を確認するのに良い時期だと思いました。

まず、smartmontoolsでチェックしようとしました...私のSeagate HDDは、1つの現在の保留中のセクターと1つのオフライン修正不能(おそらく同じもの)を報告します。再割り当てセクター数はゼロです。

5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
...
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1

ただし、SMARTセルフテスト(短い、長い、オフライン、伝達)ではエラーは検出されません。

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%      6631         -
# 2  Conveyance offline  Completed without error       00%      6630         -
# 3  Extended offline    Completed without error       00%      6622         -
# 4  Short offline       Completed without error       00%      6600         -
# 5  Extended offline    Completed without error       00%      6632         -

また、ドライブでbadblocks -wsv(完全な読み取り/書き込み4パターンパステスト)を実行してみましたが、不良ブロックは見つかりませんでした。次に、ここで見つかったガイド(badblocksの実行後にファイルシステムを削除したため、可能な範囲で)に従いました:http : //smartmontools.sourceforge.net/badblockhowto.html

そこに、セクタをすべてゼロで上書きすると、ディスクは保留中のセクタを移動(再割り当て)するはずです。Badblocksの最後の書き込みパターンはすべてゼロであるため、これを実行する必要がありました。しかし、何も変わっていません。保留中のセクターカウント1がまだあります。
次に、どのセクターが問題のあるセクターかを調べてみました。SMART出力にはエラーログがあります。

Error 2 occurred at disk power-on lifetime: 5344 hours (222 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  84 51 7c 1b 1a 02 ae  Error: ABRT at LBA = 0x0e021a1b = 235018779

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  20 20 7f 18 1a 02 ae 00      00:09:05.228  READ SECTOR(S)
  20 20 01 17 1a 02 ae 00      00:09:05.228  READ SECTOR(S)
  20 20 01 01 00 00 a0 00      00:08:59.830  READ SECTOR(S)
  91 20 3f 01 00 00 af 00      00:08:59.826  INITIALIZE DEVICE PARAMETERS [OBS-6]
  10 20 01 01 00 00 a8 00      00:08:59.678  RECALIBRATE [OBS-4]

Error 1 occurred at disk power-on lifetime: 5009 hours (208 days + 17 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 b7 8c 02 e0  Error: UNC at LBA = 0x00028cb7 = 167095

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 20 1e 9e 8c 02 e0 00      00:02:20.691  READ DMA EXT
  25 20 1e 80 8c 02 e0 00      00:02:20.691  READ DMA EXT
  25 20 1e 62 8c 02 e0 00      00:02:20.690  READ DMA EXT
  25 20 1e 44 8c 02 e0 00      00:02:20.690  READ DMA EXT
  25 20 1e 26 8c 02 e0 00      00:02:20.690  READ DMA EXT

そのため、ドライブには2つのエラーがあったようです。

84 51 7c 1b 1a 02 ae  Error: ABRT at LBA = 0x0e021a1b = 235018779

そして

40 51 00 b7 8c 02 e0  Error: UNC at LBA = 0x00028cb7 = 167095

したがって、これらはセクター番号167095および235018779であると想定しました。そして、ddでゼロを書き込もうとしました。

dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=167095

今では大丈夫です。しかし、他のセクターで試したとき:

dd if=/dev/zero of=/dev/sda bs=512 count=1 seek=235018779

私が手DD 'は/ dev / sdaに':求めることはできません:無効な引数。その後、HDDには234441658セクターしかないことに気付きました。したがって、これは範囲外です。しかし、SMARTがそのアドレスでエラーを報告したのはなぜですか?!

誰でも私がそれを理解するのを手伝ってくれるし、間違っているのならこれを正しく行う方法を教えてもらえますか?ddでブロックサイズ512を使用するのは間違っていると思われます。これがSMARTによって報告されるセクターサイズです。多分それらのLBAアドレスは、私がbs = 1を設定し、HDD上のそれらのアドレスに1バイトだけを書き込もうとしたブロックではなく、バイトです。それはうまくいきました(dd write process)…しかし、保留中のセクタ数はその後も変わりませんでした。また、syncsmartctl -t offline / dev / sda呼び出して、ドライブを強制的にセクターの再割り当てを試みました。何も...

完全なsmartctl --all / dev / sdaの出力を次に示します。

smartctl 5.43 2012-06-30 r3573 [i686-linux-2.6.32-358.el6.i686] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.9
Device Model:     ST3120811AS
Serial Number:    6PT1N4VZ
Firmware Version: 3.AAE
User Capacity:    120,034,123,776 bytes [120 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Mon Nov 18 12:03:00 2013 UTC
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:  (0x82) Offline data collection activity
                    was completed without error.
                    Auto Offline Data Collection: Enabled.
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:        (  430) seconds.
Offline data collection
capabilities:            (0x5b) SMART execute Offline immediate.
                    Auto Offline data collection on/off support.
                    Suspend Offline collection upon new
                    command.
                    Offline surface scan supported.
                    Self-test supported.
                    No 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:    (  51) minutes.

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   084   077   006    Pre-fail  Always       -       185600113
  3 Spin_Up_Time            0x0003   095   095   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   098   098   020    Old_age   Always       -       2185
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   073   055   030    Pre-fail  Always       -       25890559714
  9 Power_On_Hours          0x0032   093   093   000    Old_age   Always       -       6632
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   098   098   020    Old_age   Always       -       2229
187 Reported_Uncorrect      0x0032   099   099   000    Old_age   Always       -       1
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   071   056   045    Old_age   Always       -       29 (Min/Max 25/29)
194 Temperature_Celsius     0x0022   029   044   000    Old_age   Always       -       29 (0 13 0 0 0)
195 Hardware_ECC_Recovered  0x001a   052   046   000    Old_age   Always       -       194244099
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   066   219   000    Old_age   Always       -       34

SMART Error Log Version: 1
ATA Error Count: 2
    CR = Command Register [HEX]
    FR = Features Register [HEX]
    SC = Sector Count Register [HEX]
    SN = Sector Number Register [HEX]
    CL = Cylinder Low Register [HEX]
    CH = Cylinder High Register [HEX]
    DH = Device/Head Register [HEX]
    DC = Device Command Register [HEX]
    ER = Error register [HEX]
    ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.

Error 2 occurred at disk power-on lifetime: 5344 hours (222 days + 16 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  84 51 7c 1b 1a 02 ae  Error: ABRT at LBA = 0x0e021a1b = 235018779

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  20 20 7f 18 1a 02 ae 00      00:09:05.228  READ SECTOR(S)
  20 20 01 17 1a 02 ae 00      00:09:05.228  READ SECTOR(S)
  20 20 01 01 00 00 a0 00      00:08:59.830  READ SECTOR(S)
  91 20 3f 01 00 00 af 00      00:08:59.826  INITIALIZE DEVICE PARAMETERS [OBS-6]
  10 20 01 01 00 00 a8 00      00:08:59.678  RECALIBRATE [OBS-4]

Error 1 occurred at disk power-on lifetime: 5009 hours (208 days + 17 hours)
  When the command that caused the error occurred, the device was active or idle.

  After command completion occurred, registers were:
  ER ST SC SN CL CH DH
  -- -- -- -- -- -- --
  40 51 00 b7 8c 02 e0  Error: UNC at LBA = 0x00028cb7 = 167095

  Commands leading to the command that caused the error were:
  CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
  -- -- -- -- -- -- -- --  ----------------  --------------------
  25 20 1e 9e 8c 02 e0 00      00:02:20.691  READ DMA EXT
  25 20 1e 80 8c 02 e0 00      00:02:20.691  READ DMA EXT
  25 20 1e 62 8c 02 e0 00      00:02:20.690  READ DMA EXT
  25 20 1e 44 8c 02 e0 00      00:02:20.690  READ DMA EXT
  25 20 1e 26 8c 02 e0 00      00:02:20.690  READ DMA EXT

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%      6631         -
# 2  Conveyance offline  Completed without error       00%      6630         -
# 3  Extended offline    Completed without error       00%      6622         -
# 4  Short offline       Completed without error       00%      6600         -
# 5  Extended offline    Completed without error       00%      6632         -

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.

更新:

robの回答で示唆されたように、HDD全体をゼロで上書きしてみました。SMART値を確認してから、HDD全体の読み取りを開始しました。再度SMART値を確認しました。結果は次のとおりです。保留/再割り当てされたセクター数に関するSMART値は、どちらの場合も、書き込み直後と読み取り後に変わりません。再割り当てされた0。保留中1。


1
ドライブには234441658セクターがありますが、不良セクターの代わりに再マップされたバックアップセクターはこの数には含まれません。
グローノスタジ

うーん、そのためセクター235018779のエラーはバックアップセクターのエラーを意味します...それは可能ですか?
イヴァンコヴァ

1
まあ、バックアップセクタも破損する可能性があります。それ以外の場合は、バックアップセクタのみから「不滅の」ハードドライブを作成します。
グローノスタジ

:)…さて、私の推理では、バックアップセクタは使用されていません(そのため安全です)。HDDの表面が破損するのは、停電などが原因でディスクヘッドが不適切なアクションを行った場合のみであると推測しました。
イヴァンコヴァセビッチ

1
235018779セクターがバックアップセクターであると仮定します。つまり、少なくとも235018779-234441658 = 577121のバックアップセクターが必要です。バックアップセクターではほぼ282 MBです。私にはたくさんのようです。またはそれは?大声で考えてみると、それはバックアップセクターではなく、SMART診断の不具合でしょうか?
イヴァンコバセビッチ

回答:


15

読み取りが失敗すると、セクターは保留中としてマークされます。後続の書き込みが失敗すると、保留中のセクターは再割り当て済みとしてマークされます。書き込みが成功すると、現在の保留中のセクターから削除され、OKと見なされます。(正確な動作は若干異なる可能性があり、後で説明しますが、これは現時点では十分に近い近似です。)

を実行するとbadblocks -w、各パターンが最初に書き込まれ、次に読み取られます。不安定なセクターへの書き込みは成功するが、その後の読み取りが失敗する可能性があり、これにより再び保留中のセクターリストに追加されます。でディスク全体にゼロを書き込みdd if=/dev/zero of=/dev/sda、SMARTステータスを確認してから、ディスク全体を読み取りdd if=/dev/sda of=/dev/null、SMARTステータスを再度確認します。

更新:

での以前の結果に基づいて、badblocks -wディスク全体を書き込んだ後、保留中のセクターがクリアされると予想していました。しかし、それは起こらなかったので、このディスクが期待どおりに動作していないと言っても安全です。

Current Pending Sector Countの説明を確認しましょう。

「不安定な」セクターの数(回復不能な読み取りエラーのため、再マップされるのを待っています)。不安定なセクターが正常に読み取られた場合、セクターは再マップされ、この値は減少します。セクターの読み取りエラーは、セクターをすぐに再マップしません(正しい値を読み取れないため、再マップする値が不明であり、後で読み取り可能になる可能性があるため)。代わりに、ドライブファームウェアは、セクターを再マップする必要があることを記憶しており、次回の書き込み時に再マップします。[29] ただし、一部のドライブは、書き込み時にそのようなセクターをすぐに再マップしません。代わりに、ドライブは最初に問題のあるセクターへの書き込みを試み、書き込み操作が成功した場合、セクターは正常とマークされます(この場合、「再配置イベントカウント」(0xC4)は増加しません)。

ここで重要なポイントを確認しましょう。

...ドライブファームウェアは、セクターを再マッピングする必要があることを記憶しており、次回の書き込み時に再マッピングします。[29] ただし、一部のドライブは、書き込み時にそのようなセクターをすぐに再マップしません。代わりに、ドライブは最初に問題のあるセクターへの書き込みを試み、書き込み操作が成功した場合、セクターは良好とマークされます。

つまり、保留中のセクターはすぐに再マップされるか、ドライブがセクターへの書き込みを試みて、次の2つのいずれかが発生したはずです。

  1. 書き込みが失敗しました。この場合、保留中のセクターは再マップされます。
  2. 書き込みは成功しました。この場合、保留中のセクターはクリアされているはずです(「マーク済み」)。

これについては以前にほのめかしましたが、ウィキペディアのCurrent Pending Sectorの説明では、ディスク全体の書き込み後現在の保留中のセクタ数は常にゼロになるはずです。ここではそうではないので、(a)Wikipediaが間違っている(または少なくともドライブに対して正しくない)、または(b)ドライブのファームウェアがこのエラー状態を適切に処理できない(これはファームウェアのバグと考えられます) )。

不安定なセクターが正常に読み取られた場合、セクターは再マップされ、この値は減少します。

現在の保留中のセクターカウントはドライブ全体を読み取った後も変わらないため、(a)セクターを正常に読み取れなかった、または(b)セクターが正常に読み取られて正常とマークされたが、読み取り中にエラーが発生した異なるセクター。ただし、読み取り後も再割り当てされたセクターカウントはまだ0であるため、可能性として(b)を除外し、保留中のセクターがまだ読み取り不能であると結論付けることができます。

この時点で、ドライブが新しい​​SMARTエラーをログに記録したかどうかを知ることが役立ちます。私の次の提案は、Seagateがドライブのファームウェアアップデートを持っているかどうかをチェックすることでしたが、そうではないようです。

このドライブの使用を継続することはお勧めしませんが、関連するリスクを受け入れてくれるようです(つまり、不安定な動作を継続したり、さらに悪化したり、破滅的に失敗したりする可能性があります)。その場合、Linuxをインストールし、レスキューCDからブートし、(ファイルシステムをアンマウントして)e2fsck -l filenameを使用して適切なブロックを手動で不良としてマークすることができます。(適切なバックアップを維持してください!)

e2fsck -l filename

filenameで指定されたファイルにリストされているブロック番号を不良ブロックのリストに追加します。このファイルの形式は、badblocks(8)プログラムによって生成されたものと同じです。ブロック番号はファイルシステムのブロックサイズに基づいていることに注意してください。したがって、正しい結果を得るには、badblocks(8)にファイルシステムのブロックサイズを指定する必要があります。その結果、正しいパラメーターがbadblocksプログラムに渡されることが保証されるため、e2fsckに-cオプションを使用する方がはるかに簡単で安全です。

(これe2fsck -cはに優先されることに注意しe2fsck -l filenameてください。試してみることもできますが、これまでの結果に基づいて、e2fsck -cが不良ブロックを検出することは非常に疑わしいです。)

もちろん、(SMARTが提供する)障害のあるセクターのLBAをファイルシステムのブロック番号に変換するには、何らかの算術演算を行う必要があります。不良ブロックHOWTOは便利な式を提供します。

  b = (int)((L-S)*512/B)
where:
b = File System block number
B = File system block size in bytes
L = LBA of bad sector
S = Starting sector of partition as shown by fdisk -lu
and (int) denotes the integer part.

HowToには、この式を使用した完全な例も含まれています。OSのインストール後、debugfsを使用して、ファイルが不安定なセクターを占有しているかどうかを確認できます(詳細な手順については、HowToを参照してください)。

別のオプション:疑わしい不良ブロックの周りのパーティション OSをインストールするときに、エラーの周りのパーティションを試みることもできます。計算を正しく行った場合、エラーは約81.589 MBであるため、/ bootを少し小さくして、セクター167095の後に次のパーティションを開始するか、最初の82 MB程度を完全にスキップできます。

ABRT 235018779 残念ながら、セクター235018779でのABRTエラーについては推測することしかできませんが、ATA8-ACS仕様からいくつかの手がかりが得られます。

Attachment 8-ATA / ATAPIコマンドセット(ATA8-ACS)のワーキングドラフトから

6.2.1中止(ABRT)エラービット2。コマンドがサポートされていない場合、中止は1に設定されます。デバイスがコマンドで要求されたアクションを完了できない場合、中止は1に設定されます。IDNFが1に設定されていない場合、ユーザーがアクセス可能なアドレスの範囲外のアドレスが要求された場合も、中止は1に設定されます。

ABRTに至るまでのコマンドを見る(いくつかのREAD SECTOR(S)に続いて再調整と再初期化)...

コマンドがサポートされていない場合、中止は1に設定されます。-これはありそうにない。

デバイスがコマンドで要求されたアクションを完了できない場合、中止は1に設定されます。-再割り当てされたセクターのPリストは、ユーザーがアクセス可能なアドレスをセクター235018779に変換し、読み取り操作を完了できなかったほど、ユーザーがアクセス可能なアドレスをシフトする可能性があります(理由はわかりません...ただし、CRCエラーはなかったため、セクター235018779が悪いと結論付けることはできません)。

IDNFが1に設定されていない場合、ユーザーがアクセス可能なアドレスの範囲外のアドレスが要求された場合も、中止は1に設定されます。-私にはこれが最も可能性が高いようであり、おそらくソフトウェアのバグ(OSまたは実行中のプログラム)の結果として解釈するでしょう。その場合、それはハードドライブの差し迫った破滅の兆候ではありません。

診断の実行にまだ飽きていない場合に備えて...

あなたは試みることができるsmartctl -t long /dev/sda、それがSMARTログ内の任意のより多くのエラーを生成しますかどうかを確認するためにもう一度、またはあなたが未解決としてこれを残すことができるX-ファイル ;)と、SMARTは、それが再び起こるかどうかを確認するために定期的にログをチェックします。いずれにせよ、保留中のセクターを再割り当てまたはクリアすることなくドライブを使用し続けると、すでにリスクを冒しています。

チェックサムファイルシステムを使用する

もう少し安全を確保するために、ZFSやbtrfsなどのチェックサムファイルシステムを使用して、低レベルのデータ破損から保護することを検討してください。また、簡単に再現できないものがある場合は、頻繁にバックアップを実行することを忘れないでください。


良いアイデア、今すぐ試してみます。
イヴァンコバ

1
不良セクタ167095でこれを試してみてはどうですか?:)

ああ、つまらなくて:D。最初に疑わしいセクターを試してみます。間違いなく賢明なアドバイスです。それが何もしなければ、万が一に備えてドライブ全体で実行させます…
Ivan Kovacevic

@weekはトリックを行うべきですが、彼は不良セクターにゼロを当てるのに苦労しているようです。
ロブ

1
ドライブ全体への書き込み後、保留中のセクターがまだある場合、不良セクターの再マッピングは正しく機能していないため、ドライブを交換する必要があります(または、ギャンブルをしている場合は、不規則に動作する可能性があることを認識して使用し続けます) 。
ロブ・

5

不良セクタの再マッピングの記事では、使用されているアルゴリズムを説明しています。

ハードディスクには2つの欠陥リストがあります。

  • Pリストは、製造中に発見された欠陥であり、一次欠陥としても知られています。それらは通常のセクターに連続して続きます。不良セクタは、シフト番号を使用した交換を指します(最初は+1、次に+2など)。
  • G-Listは、ドライブの通常の使用で発生する欠陥であり、Grown Defectsとして知られています。割り当てに制約はなく、Pリストの欠陥を順番に追跡する必要はありません。不良セクタは、単純なセクタ番号を使用した代替を指します。

したがって、不良セクタが通常の最終セクタを超えて577121セクタであるという事実は、Pリストの欠陥でない限り、577121不良セクタがあることを意味しません。Gリストの欠陥はどこにでも配置できるため、ファームウェアがスペアセクタスペースの終わりにそれを割り当てることは完全に可能です。

ウィキペディアの既知のATA SMART属性から

再割り当てセクター数

再割り当てされたセクターの数。ハードドライブが読み取り/書き込み/検証エラーを検出すると、そのセクターを「再割り当て済み」としてマークし、データを特別な予約領域(スペア領域)に転送します。このプロセスはリマッピングとも呼ばれ、再割り当てされたセクターは「リマップ」と呼ばれます。通常、生の値は、検出および再マップされた不良セクタの数を表します。

現在の保留中のセクター数

「不安定な」セクターの数(回復不能な読み取りエラーのため、再マップされるのを待っています)。不安定なセクターが正常に読み取られた場合、セクターは再マップされ、この値は減少します。セクターの読み取りエラーは、セクターをすぐに再マップしません(正しい値を読み取れないため、再マップする値が不明であり、後で読み取り可能になる可能性があるため)。代わりに、ドライブファームウェアは、セクターを再マップする必要があることを記憶しており、次回の書き込み時にセクターを再マップします。

したがって、実際には、保留中のエラーは再マッピングよりもはるかに悪いです。これは、エラーが元のコンテンツを読み取って再マップを妨げるのに十分なほど難しいためです。実際、そのセクターの内容はおそらく永久に失われます。

ドキュメントMHDDの非常に低レベルのハードディスク診断ツールでは、エラーコードについて次のように説明しています。

UNC : data is uncorrectable
ABRT : command was aborted

そのため、セクター167095は修正不能であり、235018779への読み取り/書き込みは中止されました。

両方のセクターに書き込みを行ってもステータスが保留から再マップに変更されなかったため、代替セクターも不良であるように思われます。私の理論では、セクター167095は235018779セクターにリマップされましたが、残念ながら後者も不良であり、ファームウェアは不良スペアセクターを再マップする方法を知りません。その結果、修正不能な不良セクタが発生します。


素敵な記事、間違いなく新しいことを学びました!ただし、SMARTログで報告された不良セクターが通常の使用可能なスペースではなくスペアセクター領域で報告される理由、および保留中のセクターカウンターがまだ1で再割り当てセクターカウンター0である理由はまだ説明されていません。これらの2つのカウンターは、値を反転させる必要があります。
イヴァンコヴァセビッチ

1
上記の私の編集を参照してください。
ハリーマック

ありがとう!素晴らしい情報!質問があります:167095は再マップされなかったので、このHDDを使用することをお勧めしますか?HDDはそのセクターを不良としてマークしただけで、将来は使用しません。基本的に私は決定する必要があります:Linuxを続行してインストールできますか、このHDDを捨ててLinuxをインストールする必要がありますか、そのセクターを手動で不良としてマークしてコマンドを実行してLinuxをインストールすることができます(私のお気に入りのオプション)。
イヴァンコヴァセビッチ

1
不良セクタが2つしかない大きなディスクは、ジャンクに値しません。badblocksが成功すると、そのセクターが不良としてマークされることを願っています。私はそれにLinuxをインストールしようとしますが、インストール中にディストリビューションがそれを行うことができる場合、完全なフォーマットを実行します。しかし、これが重要な実稼働システム用である場合、念のためディスクを変更します。
harrymc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.