Bekleyen okunamayan sektör, bir okuma hatası döndüren ve sürücünün mümkün olan ilk fırsatta yeniden eşleme için işaretlediği sektördür. Ancak, iki şeyden biri gerçekleşene kadar yeniden eşleme yapamaz:
- Sektör başarıyla yeniden okundu
- Sektör yeniden yazıldı
O zamana kadar sektör halen beklemede. Yani bununla başa çıkmanın iki yolu var:
- Başarılı olana kadar sektörü yeniden okumaya devam edin
- Yeni verilerle bu sektörün üzerine yaz
Açıkçası, (1) tahribatsızdır, bu yüzden muhtemelen ilk önce denemelisiniz, ancak sürücü ciddi bir şekilde başarısız olmaya başlarsa, kötü bir alandan sürekli okumanın daha hızlı başarısız olmasını sağlayacağını unutmayın. . Bekleyen sektörleriniz ve diğer hatalarınız varsa ve sürücüdeki verileri önemsiyorsanız , mümkün olduğunca fazla veriyi kurtarmak için hizmet dışı almanızı ve mükemmel araç ddrescue'unu kullanmanızı öneririz . Ardından sürücüyü atın.
Söz konusu sektör, umursadığınız veya bir yedeklemeden geri yükleyebileceğiniz veriler içeriyorsa, üzerine yazmak muhtemelen en hızlı ve en basit çözümdür. Daha sonra, sektörün halledildiğinden emin olmak için sürücünün yeniden tahsis edilen ve beklemedeki sayılarını görüntüleyebilirsiniz.
Sektörün dosya sisteminde neye karşılık geldiğini nasıl öğrenirsiniz? Ben mükemmel bir makale buldum Smartmontools internet sitesinde, burada oldukça teknik olduğunu ve ext2 / 3/4 ve reiser dosya sistemlerine özgü olmasına rağmen,.
Kendi (Mac) sürücülerimden birinde kullandığım daha basit bir yaklaşım, find / -xdev -type f -print0 | xargs -0 ...
sistemdeki her dosyayı okumak için kullanmaktır . Bunu çalıştırmadan önce bekleyen sayımı not edin. Sektör bir dosyanın içindeyse, dosyaları okumak için kullandığınız araçtan (örn. Md5sum) size yolunu gösteren bir hata iletisi alırsınız. Daha sonra, dikkatinizi başarıyla okuyana kadar bu dosyayı yeniden okumaya odaklanabilirsiniz. Genellikle, birkaç kez tekrar okunması gereken seyrek kullanılan bir dosyaysa, bu sorunu çözecektir. Hata giderilirse veya tüm dosyaları okurken herhangi bir hatayla karşılaşmazsanız, azaldığını görmek için bekleyen sayımı kontrol edin. Varsa, sorun okunarak çözüldü.
Birden çok denemeden sonra (örneğin 20) dosya başarıyla okunamıyorsa, sürücünün sektörü yeniden tahsis etmesine izin vermek için dosyanın veya dosya içindeki bloğun üzerine yazmanız gerekir. Geçici bir dosyaya kopyalayıp sonra tekrar kopyalayarak, tek bir sektörün üzerine yazmak için dosyadaki (bölüm yerine) ddrescue uygulamasını kullanabilirsiniz. Sadece bu noktada dosyayı kaldırmanın kötü bir fikir olduğunu unutmayın, çünkü kötü sektör, bulunmanın daha zor olacağı ücretsiz listeye girecektir. Tamamen üzerine yazmak da kötü, çünkü sektörler tekrar serbest listeye girecek. Mevcut blokları yeniden yazmanız gerekir. notrunc
Seçeneği dd
, bunu yapmanın bir yoludur.
Herhangi bir hatayla karşılaşırsanız ve beklemedeki sayım azalmazsa, sektörün serbest listede veya dosya sistemi altyapısının bir parçası olması gerekir (örn. Bir inode tablosu). Tüm boş alanı doldurmayı deneyebilir cat /dev/zero >tempfile
ve ardından beklemedeki sayımı kontrol edebilirsiniz. Aşağı giderse, sorun ücretsiz listesindeydi ve şimdi kayboldu.
Sektör altyapıdaysa, daha ciddi bir sorununuz var ve muhtemelen sadece dizin ağacında yürürken hatalarla karşılaşacaksınız. Bu durumda, tek mantıklı çözüm sürücüyü yeniden biçimlendirmek, isteğe bağlı olarak gerekirse verileri kurtarmak için ddrescue kullanmaktır.
Sürücüyü çok yakından takip edin. Sektörün yeniden tahsisi, kömür madeninde çok iyi bir kanaryadır ve muhtemelen başarısız olan bir sürücünün erken uyarısını verir. Erken harekete geçerek daha sonra felaketli ve çok acı veren bir toprak kaymasını önleyebilirsiniz. Birkaç sektör yeniden tahsisinin, sürücüyü atmanız gerektiğini gösteren bir gösterge olduğunu söylemiyorum. Tüm modern sürücülerin bir miktar yeniden tahsis yapması gerekir. Ancak, sürücü çok eski değilse (<1 yıl) veya sık sık yeni yeniden tahsisler alıyorsanız (> 1 / ay), en kısa zamanda değiştirmenizi öneririz.
Bunu kanıtlamak için ampirik kanıtım yok, ancak deneyimlerim, disk sorunlarının tüm diski arada bir dd
okuyarak, ham diskin biri tarafından veya kullanılarak her dosyayı okuyarak azaltılabileceğini gösteriyor find
. Son birkaç yıl içinde yaşadığım neredeyse tüm disk sorunları, nadiren kullanılan dosyalarda veya çok kullanılmayan makinelerde ilk olarak kırpıldı. Bu, sezgisel olarak da anlamlıdır, çünkü bir sektör sık sık tekrar okuyorsa, sektör, tamamen okunamayana kadar beklemek yerine, o sektörle ilgili ufak bir sorun tespit ettiğinde yeniden tahsis etme şansına sahiptir. Ana bilgisayar, bir şekilde okuyarak veya yazarak veya SMART testlerinden birini gerçekleştirerek, bir sektörle herhangi bir şey yapma yetkisine sahip değildir.
Tüm diski okuyan her gece veya haftalık cron işi fikrini denemek istiyorum. Şu anda makinede ikinci bir sabit diskim olan "fakir bir adamın RAID" i kullanıyorum ve ana diski her gece yedekliyorum. Bazı yönlerden, bu aslında RAID yansıtma daha iyidir, çünkü bir dosyayı yanlışlıkla silip silersem, dünün sürümünü hemen yedek diskten alabilirim. Öte yandan, bir donanım RAID denetleyicisinin ortaya çıktıkça disk sorunlarını izlemek, raporlamak ve düzeltmek için arka planda çok iyi işler yaptığına inanıyorum. Geçerli yedekleme komut dosyam rsync
değişmemiş verileri kopyalamaktan kaçınmak için kullanıyor , ancak tüm sektörleri yeniden okuma ihtiyacı nedeniyle her şeyi kopyalamak veya her hafta tüm ham diski okuyan ayrı bir komut dosyasına sahip olmak daha iyi olur.