SMART verilerindeki tek Current_Pending_Sector öğesini kaldırmaya / teşhis etmeye çalışıyor


18

Yeni bir Linux kurulumu yapma sürecindeyim ve bunu yapmadan önce, gerekirse HDD'deki herhangi bir verinin üzerine güvenle yazabileceğim için HDD sağlığını doğrulamanın iyi bir zaman olduğunu düşündüm.

Önce smartmontools ile kontrol etmeyi denedim ... Seagate HDD'mde bekleyen bir sektör ve bir çevrimdışı düzeltilemez (muhtemelen aynı sektör) rapor ediliyor. Yeniden tahsis edilen sektör sayısı sıfırdır.

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

Ancak SMART kendi kendine testler (kısa, uzun, çevrimdışı, iletim) hata bulamaz.

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         -

Ayrıca sürücüde badblocks -wsv (tam okuma-yazma 4 desen geçiş testi) çalıştırmayı denedim ve hiçbir kötü blok bulunamadı. Daha sonra kılavuzu takip ettim (mümkün olduğunca, badblock'ları çalıştırdıktan sonra dosya sistemimi sildim çünkü) burada bulundu: http://smartmontools.sourceforge.net/badblockhowto.html

Burada sektörün tüm sıfırlarla üzerine yazılırsa diskin bekleyen sektörü taşıması (yeniden tahsis etmesi) gerektiği söylenir. Badblocks son yazma deseni tüm sıfırlar, bu yüzden yapmalıydım. ancak hiçbir şey değişmedi Hala bekleyen sektör sayısı 1 var.
Daha sonra hangi sektörün sorunlu olduğunu anlamaya çalıştım ve SMART çıktısında bir hata günlüğü var:

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

Görünüşe göre sürücünün iki hatası vardı.

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

ve

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

167095 ve 235018779 sektör numaraları olduğunu varsaydım. Ve dd ile sıfırlar yazmayı denedim:

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

Şimdi bu iyi oldu. Ancak diğer sektörle denediğimde:

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

Ben dd: '/ dev / sda': arama: Geçersiz argüman . Daha sonra HDD'mde sadece 234441658 sektör olduğunu gördüm. Yani bu aralık dışında. Peki neden SMART bu adreste bir hata bildirdi ?!

Birisi bunu anlamama yardımcı olabilir ve yanlış yaparsam bunu nasıl doğru yapacağımı bana tavsiye edebilir mi? Ben dd ile blok boyutu 512 kullanarak yanlış olduğunu düşünüyorum. SMART tarafından rapor edilen sektör büyüklüğü budur. belki bu LBA adresleri bayt değil bloklar bs = 1 ayarını denedim ve HDD'deki bu adreslere sadece bir bayt yazmayı denedim. Bu işe yaradı (dd yazma işlemi)… Ancak bekleyen sektör sayısı bundan sonra da değişmedi. Sektörü yeniden tahsis etmek için 'zorla' denemek için sync ve smartctl -t offline / dev / sda'yı da aradım . Hiçbir şey değil...

İşte tam smartctl --all / dev / sda çıktı:

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.

GÜNCELLEME:

Rob'un cevabında önerildiği gibi, tüm HDD'nin üzerine sıfır yazmayı denedim. SMART değerlerini kontrol ettikten sonra tüm HDD'yi okumaya başladı. SMART değerlerini tekrar kontrol ettik. Sonuç: Beklemedeki / yeniden tahsis edilen sektör sayısına ilişkin SMART değerleri, her iki durumda da, yazma işleminden hemen sonra ve okunduktan sonra değişmez. Yeniden tahsis edildi. Beklemede 1.


1
Sanırım sürücünüzün 234441658 sektörü var, ancak kötü sektörler yerine yenilenen yedek sektörler bu sayıya dahil değil.
gronostaj

Hmm, böylece 235018779 sektöründeki hata yedekleme sektörlerinde bir hata anlamına gelecektir… Bu mümkün mü?
Ivan Kovacevic

1
Yedek sektörler de bozuk olabilir. Aksi takdirde, sadece yedekleme sektörlerinden "ölümsüz" sabit diskler yapardık.
gronostaj

:)… Benim mantığım yedekleme sektörlerinin kullanımda olmaması (ve dolayısıyla güvenli). HDD yüzeyinin yalnızca disk kafaları bir elektrik kesintisi veya başka bir şey nedeniyle yanlış bir işlem yapması durumunda bozulabileceğini varsaydım.
Ivan Kovacevic

1
235018779 sektörünün bir yedek sektör olduğu varsayılarak. Bu, en az 235018779 - 234441658 = 577121 yedek sektörüm olması gerektiği anlamına geliyor. Yedekleme sektörlerinde neredeyse 282 MB. Bana çok (çok fazla) geliyor. Yoksa öyle mi? Sadece yüksek sesle düşünmek, belki de bir yedekleme sektörü değil, SMART teşhisinde bir aksaklık mı?
Ivan Kovacevic

Yanıtlar:


15

Bir okuma başarısız olduğunda bir sektör beklemede olarak işaretlenir. Bir sonraki yazma işlemi başarısız olursa, bekleyen sektör yeniden ayrılmış olarak işaretlenir. Yazma başarılı olursa, mevcut bekleyen sektörlerden kaldırılır ve tamam olduğu varsayılır. (Tam davranış biraz farklılık gösterebilir ve daha sonra gireceğim, ancak bu şimdilik yeterince yakın bir yaklaşım.)

Koştuğunuzda badblocks -w, her desen önce yazılır, sonra okunur. Kesintili sektöre yazma başarılı olabilir, ancak sonraki okuma başarısız olur, bu da yine bekleyen sektör listesine ekler. dd if=/dev/zero of=/dev/sdaSMART durumunu kontrol ederek, tüm diski okuyarak dd if=/dev/sda of=/dev/nullve SMART durumunu tekrar kontrol ederek tüm diske sıfır yazmayı deneyeceğim .

Güncelleme:

Önceki sonuçlarınıza dayanarak badblocks -w, tüm diski yazdıktan sonra bekleyen sektörün temizlenmesini beklerdim. Ancak bu gerçekleşmediğinden, bu diskin beklendiği gibi davranmadığını söylemek güvenlidir.

Mevcut Bekleyen Sektör Sayısı açıklamasını gözden geçirelim :

"Kararsız" sektörlerin sayısı (kurtarılamayan okuma hataları nedeniyle yeniden eşleştirilmeyi bekliyor). İstikrarsız bir sektör sonradan başarıyla okunursa, sektör yeniden eşleştirilir ve bu değer azalır. Bir sektördeki okuma hataları sektörü hemen yeniden eşleştirmeyecektir (doğru değer okunamadığından ve yeniden eşleme değeri bilinmediği için daha sonra okunabilir hale gelebilir); bunun yerine, sürücü ürün yazılımı, sektörün yeniden değiştirilmesi gerektiğini hatırlar ve bir dahaki sefere yazıldığında yeniden eşleştirecektir. [29] Ancak bazı sürücüler yazıldıklarında bu tür sektörleri hemen yeniden eşleştirmeyecektir; bunun yerine sürücü ilk önce sorunlu sektöre yazma girişiminde bulunur ve yazma işlemi başarılı olursa sektör iyi olarak işaretlenir (bu durumda, "Yeniden Tahsis Olay Sayısı" (0xC4) artırılmaz).

Şimdi önemli noktaları gözden geçirelim:

... sürücü ürün yazılımı, sektörün yeniden değiştirilmesi gerektiğini hatırlar ve bir dahaki sefere yazıldığında yeniden eşleştirecektir. [29] Ancak bazı sürücüler yazıldıklarında bu tür sektörleri hemen yeniden eşleştirmeyecektir; bunun yerine sürücü ilk önce sorunlu sektöre yazmaya çalışacak ve yazma işlemi başarılı olursa sektör iyi olarak işaretlenecektir.

Başka bir deyişle, beklemede olan sektör ya derhal yeniden değiştirilmeliydi ya da sektör sektöre yazmaya çalışmış olmalı ve iki şeyden biri olmuş olmalı:

  1. Yazma başarısız oldu, bu durumda bekleyen sektör yeniden eşleştirilmeliydi.
  2. Yazma başarılı oldu, bu durumda bekleyen sektör temizlenmeli ("iyi işaretlendi").

Bunu daha önce ima etmiştim, ancak Wikipedia'nın Mevcut Bekleyen Sektörü açıklaması, tam disk yazıldıktan sonra mevcut bekleyen sektör sayısının her zaman sıfır olması gerektiğini gösteriyor . Burada durum böyle olmadığından, (a) Wikipedia'nın yanlış (veya sürücünüz için en azından yanlış) veya (b) sürücünün belleniminin bu hata durumunu (bir bellenim hatası olarak değerlendireceğim) düzgün bir şekilde işleyemeyeceği sonucuna varabiliriz. ).

İstikrarsız bir sektör sonradan başarıyla okunursa, sektör yeniden eşleştirilir ve bu değer azalır.

Mevcut beklemede olan sektör sayısı tüm diski okuduktan sonra hala değişmediği için, (a) sektörün başarılı bir şekilde okunamadığını veya (b) sektörün başarılı bir şekilde okunduğunu ve iyi işaretlendiğini, ancak farklı sektör. Ancak yeniden tahsis edilen sektör sayısı okumadan sonra hala 0 olduğundan, (b) 'yi bir olasılık olarak hariç tutabiliriz ve bekleyen sektörün hala okunamaz olduğu sonucuna varabiliriz.

Bu noktada, sürücünün herhangi bir yeni SMART hatası kaydedip kaydetmediğini bilmek yararlı olacaktır. Bir sonraki önerim, Seagate'in diskiniz için bir ürün yazılımı güncellemesine sahip olup olmadığını kontrol etmek olacaktı , ancak öyle değiller.

Bu sürücüyü kullanmaya devam etmeyi önermeme rağmen, söz konusu riskleri kabul etmeye istekli (kasıtlı olarak hareket etmeye devam edebileceği ve / veya daha da kötüleşebileceği veya felaketle sonuçlanmayabileceği) gibi görünüyor. Bu durumda, Linux'u yüklemeyi deneyebilir, bir kurtarma CD'sinden önyükleme yapabilir, ardından (dosya sistemleri takılı değilken) uygun bloğu el ile kötü olarak işaretlemek için e2fsck -l dosya adını kullanabilirsiniz . (Sadece iyi yedekler aldığınızdan emin olun!)

e2fsck -l dosya adı

Dosya adıyla belirtilen dosyada listelenen blok numaralarını bozuk bloklar listesine ekleyin. Bu dosyanın formatı, badblocks (8) programı tarafından oluşturulan formatla aynıdır. Blok numaralarının dosya sisteminin blok boyutuna dayandığını unutmayın. Bu nedenle, doğru sonuçları elde etmek için dosya bloklarının blok boyutuna badblocks (8) verilmelidir. Sonuç olarak, e2fsck için -c seçeneğini kullanmak çok daha basit ve güvenlidir, çünkü doğru parametrelerin badblocks programına iletilmesini sağlayacaktır.

(Bunun e2fsck -ctercih edildiğini e2fsck -l filenameve hatta denemek isteyebilirsiniz, ancak şimdiye kadar sonuçlarınıza dayanarak, e2fsck -c'nin herhangi bir kötü blok bulacağından şüpheliyim.)

Elbette, hatalı sektörün LBA'sını (SMART tarafından sağlanan şekilde) bir dosya sistemi blok numarasına dönüştürmek için bazı aritmetik yapmanız gerekecektir. Kötü Blokları HowTo kullanışlı formülü sunar:

  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 ayrıca bu formülü kullanarak tam bir örnek içerir. İşletim sistemi yüklendikten sonra, bir dosyanın debugfs kullanarak lapa lapa sektörünü işgal edip etmediğini doğrulayabilirsiniz (ayrıntılı talimatlar için Nasıl Yapılır bölümüne bakın).

Başka bir seçenek: şüpheli bozuk blok etrafında bölümleme İşletim sisteminizi yüklediğinizde, hatanın etrafında da bölümleme yapmayı deneyebilirsiniz. Aritmetik sağımı yaptıysam, hata 81.589 MB civarındadır, bu yüzden sektör 167095'ten sonra biraz küçük yapabilir / önyükleyebilir ve bir sonraki bölümünüzü başlatabilir veya ilk 82 MB'yi veya tamamen atlayabilirsiniz.

ABRT 235018779 Maalesef, 235018779 sektöründeki ABRT hatasına gelince, sadece spekülasyon yapabiliriz, ancak ATA8-ACS spesifikasyonu bize bazı ipuçları veriyor.

Ek 8'deki Çalışma Taslağı'ndan - ATA / ATAPI Komut Seti (ATA8-ACS) :

6.2.1 İptal (ABRT) Hata biti 2. Komut desteklenmiyorsa iptal bire ayarlanacaktır. Aygıt komut tarafından istenen eylemi tamamlayamazsa iptal seçeneği bir olarak ayarlanabilir. IDNF bir taneye ayarlanmamışsa, kullanıcı tarafından erişilebilen adresler aralığı dışında bir adres istenirse iptal de bir olur.

ABRT'ye giden komutlara bakıldığında (birkaç OKUMA SEKTÖRÜ / ardından yeniden kalibrasyon ve yeniden başlatma) ...

Komut desteklenmiyorsa, iptal etme seçeneği bire ayarlanacaktır. - Bu pek mümkün görünmüyor.

Aygıt komut tarafından istenen eylemi tamamlayamazsa iptal seçeneği bir olarak ayarlanabilir. - Yeniden tahsis edilen sektörlerin P listesi, kullanıcı tarafından erişilebilen adresleri, kullanıcı tarafından erişilebilen bir adresin 235018779 sektörüne çevrilmesine yetecek kadar kaydırır ve okuma işlemi tamamlanamaz (hangi nedenle bilmiyoruz ... ancak bir CRC hatası yoktu, bu nedenle 235018779 sektörünün kötü olduğu sonucuna varabileceğimizi düşünmüyorum).

IDNF bir taneye ayarlanmamışsa, kullanıcı tarafından erişilebilen adresler aralığının dışındaki bir adres istenirse iptal de bir olur. - Bana göre bu büyük olasılıkla görünüyor ve muhtemelen bir yazılım hatasının (işletim sisteminiz veya çalıştırdığınız bir programın) sonucu olarak yorumlayacağım. Bu durumda, sabit disk için yaklaşmakta olan bir kıyamet işareti değildir.

Henüz tanı koymaktan sıkılmamanız durumunda ...

smartctl -t long /dev/sdaSMART günlüğünde başka hatalar üretip üretmediğini görmek için tekrar deneyebilir veya bunu çözülmemiş bir X dosyası olarak bırakabilirsiniz ;) ve tekrar olup olmadığını görmek için SMART günlüğünü düzenli olarak kontrol edebilirsiniz. Her durumda, sürücüyü bekleyen sektörü yeniden tahsis etmeden veya temizlemeden kullanmaya devam ederseniz, zaten bir risk alıyorsunuz demektir.

Sağlama toplamı dosya sistemi kullanma

Biraz daha fazla güvenlik için, düşük düzeydeki veri bozulmalarına karşı korumaya yardımcı olması için ZFS veya btrfs gibi bir sağlama toplamı dosya sistemi kullanmayı düşünebilirsiniz. Kolayca çoğaltılamayan bir şeyiniz varsa sık sık yedekleme yapmayı unutmayın.


İyi fikir, bunu şimdi deneyeceğim.
Ivan Kovacevic

1
Bunu o kötü sektör 167095 ile denemeye ne dersiniz? :)
hafta

Naah bu çok sıkıcı: D. İlk önce şüpheli sektörle deneyeceğim, kesinlikle akıllı bir tavsiye, eğer bir şey yapmazsa, her durumda tüm sürüşte çalışmasına izin vereceğim…
Ivan Kovacevic

@we hile yapmalı ama kötü sektörde sıfırlama konusunda sorun yaşıyor gibi görünüyor, bu yüzden tüm sürüş yapmayı önerdim.
soymak

1
Tüm sürücüye yazdıktan sonra hala beklemede olan bir sektör varsa, kötü sektör yeniden eşlemesi düzgün çalışmıyor ve sürücüyü değiştirmelisiniz (veya kumar oynuyorsanız, düzensiz davranabileceğini bilerek kullanmaya devam edin) .
soymak

5

Kötü Sektör Yeniden Eşleme makalesi kullanılan algoritmayı verir.

Sabit diskte iki hata listesi vardır:

  • P-listesi imalat sırasında bulunan kusurlardır ve Birincil Kusurlar olarak da bilinir. Normal sektörleri sırayla takip ederler. Kötü bir sektör, bir vardiya numarası kullanarak değiştirilmesine işaret edecektir (önce +1, sonra +2 vb.).
  • G-Listesi, sürücünün normal kullanımında gelişen ve Yetiştirilen Hatalar olarak bilinen kusurlardır. Tahsislerinde herhangi bir kısıtlama yoktur ve P listesi kusurlarını sırayla takip etmeleri gerekmez. Kötü bir sektör, basit bir sektör numarası kullanarak yenilenmesine işaret edecektir.

Bu nedenle, kötü sektörünüzün, normal son sektörün ötesinde 577121 sektör olması, bir P listesi hatası olmadığı sürece 577121 kötü sektörünüz olduğu anlamına gelmez. Bir G-listesi kusuru herhangi bir yere yerleştirilebilir, bu nedenle bellenimin yedek sektör alanının sonuna tahsis etmesi tamamen mümkündür.

Vikipedi Bilinen ATA SMART özniteliklerinden :

Yeniden dağılmış sektör sayısı

Yeniden tahsis edilen sektörlerin sayısı. Sabit sürücü bir okuma / yazma / doğrulama hatası bulduğunda, sektörü "yeniden tahsis edilmiş" olarak işaretler ve verileri özel bir ayrılmış alana (yedek alan) aktarır. Bu sürece yeniden eşleme denir ve yeniden tahsis edilen sektörlere "yeniden eşleme" denir. Ham değer normalde bulunan ve yeniden elde edilen kötü sektörlerin sayısını temsil eder.

Mevcut Bekleyen Sektör Sayısı

"Kararsız" sektörlerin sayısı (kurtarılamayan okuma hataları nedeniyle yeniden eşleştirilmeyi bekliyor). İstikrarsız bir sektör sonradan başarıyla okunursa, sektör yeniden eşleştirilir ve bu değer azalır. Bir sektördeki okuma hataları sektörü hemen yeniden eşleştirmeyecektir (doğru değer okunamadığından ve yeniden eşleme değeri bilinmediği için daha sonra okunabilir hale gelebilir); bunun yerine, sürücü sabit yazılımı sektörün yeniden eşlenmesi gerektiğini hatırlar ve bir dahaki sefere yazıldığında yeniden eşleştirilir.

Aslında, beklemedeki hatalar yeniden eşlenenden çok daha kötüdür, çünkü hata yeniden eşleştirmek için orijinal içeriğin okunmasını önleyecek kadar zordur. Aslında, o sektörün içeriği muhtemelen sonsuza dek kaybolur.

Belge MHDD Çok düşük seviyeli Sabit Disk teşhis aracı gibi hata kodlarını açıklamaktadır:

UNC : data is uncorrectable
ABRT : command was aborted

Yani 167095 sektörü düzeltilemez ve 235018779'a okuma / yazma iptal edildi.

Her iki sektöre de yazma durumu beklemeden yeniden değiştirilmeye değişmediği için bana göre yeni sektör de kötü. Benim teorim, 167095 sektörünün 235018779 sektörüne yeniden eşleştirildiği, ancak maalesef ikincisinin de kötü olduğu ve bellenimin kötü yedek sektörlerin nasıl yeniden eşleneceğini bilmediğidir. Sonuç, düzeltilemez kötü bir sektördür.


Güzel makale, kesinlikle yeni bir şey öğrendim! Ancak bu hala SMART günlüklerinde raporlanan kötü sektörün neden normal kullanılabilir alanda değil yedek sektör alanında bile raporlandığını ve bekleyen sektör sayacı neden hala 1 ve yeniden tahsis edilen sektör sayacı 0 olduğunu açıklamamaktadır. bu iki sayaç değerlerini tersine çevirmiş olmalıydı.
Ivan Kovacevic

1
Yukarıdaki düzenlememe bakın.
harrymc

Teşekkürler! Harika bilgi! Şimdi bir sorum var: 167095 yeniden eşleştirilmediğinden, bu HDD'yi kullanmanız tavsiye edilir mi? HDD sadece bu sektörü kötü olarak işaretledi mi ve gelecekte kullanmaktan kaçınacaktır. Temel olarak karar vermeliyim: Linux'a devam edip kurabilir miyim, yoksa bu HDD'yi yeni bir tane satın alıp Linux kurabilir miyim, yoksa bu sektörü manuel olarak kötü olarak işaretlemek ve Linux'u yüklemek için (benim favori seçenek).
Ivan Kovacevic

1
Yalnızca iki bozuk kesimi olan büyük bir disk, önemsiz olmayı hak etmez. Kötü bloklar başarılı olduktan sonra umarım bu sektörü kötü olarak işaretledi. Linux'u kurmaya çalışırdım, ancak dağıtımınız kurulum sırasında bunu yapabilirse tam bir format yapın. Ama eğer bu önemli bir üretim sistemi içinse, her ihtimale karşı diski değiştirirdim.
harrymc
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.