Kötü sektörden “hasarlı dosyaya” - Linux / ext3 için mi yaptı, Windows / NTFS için yapabilir miyim?


17

Bir diskteki SMART denetimi bozuk bir sektörü rapor ettiğinde, bozuk sektörü olan dosyayı tanımlayabilmek ve onu yedeklerden geri yüklemek önemlidir. Aşağıda, bunu Linux / ext3 VMWARE sunucum için nasıl yaptığımı gösterdim - ancak bunun Windows / NTFS için yapıp yapamayacağını bilen var mı?

Linux / ext3 için şöyle yaptım: İlk olarak sürücüye bir donanım yüzey taraması yapmasını istedim (işletim sistemi seviyesinin altında, sürücü SMART devreleriyle):

vserver:~# smartctl -t long /dev/sdc

Sonuçlara baktım:

vserver:~# smartctl -a /dev/sdc
...
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       9
...
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed: read failure       90%     27679         591363172

Yani, bir sektör zaten kötü, 9 sektör "evreleme" sektör alanından yerini aldı. Daha da önemlisi, okunamayan ilk mantıksal blok adresi (LBA) 591363172 idi.

Bu sayının "çevrildiği" bölümü (ve içindeki farkı) buldum:

vserver:~# fdisk -lu /dev/sdc
Device Boot      Start         End      Blocks   Id  System
/dev/sdc1           32   976773119   488386544   83  Linux

Bölme 32. sektörde başladı. Yani, kötü sektör ...

vserver:~# bc -l
591363172-32+1
591363141

... bölümün başlangıcından bu yana 591363141 sektörden bir ofset.

Şimdi hangi dosyanın "ıslatılacağını" bulabilirim:

vserver:~# tune2fs -l /dev/sdc1 | grep Block\ size
Block size:               4096

Bu EXT3 dosya sisteminin blok boyutu 4096 bayttı, bu nedenle kötü sektör dosya sistemindeki bu bloğu yok etti:

vserver:~# bc -l
591363141*512/4096
73920392.62500000000000000000

Ve blok numarası (73920392) bu dosyaya karşılık geldi:

vserver:~# debugfs
debugfs 1.41.3 (12-Oct-2008)
debugfs:  open /dev/sdc1
testb 73920392
debugfs:  testb 73920392
Block 73920392 marked in use
debugfs:  icheck 73920392
Block           Inode number
73920392        18472967
debugfs:  ncheck 18472967
Inode           Pathname
18472967        /path/to/filewithbadsector

Ve bu dosyayı yedeklemelerimden geri yükledim.

Windows / NTFS için uygulayabileceğim eşdeğer bir prosedür var mı?


Bilginize: 9 bekleyen mevcut sayı, sadece bir değil 9 kötü sektör olduğu anlamına gelir. Genişletilmiş kendi kendine test bulduğu ilk anda durur. Yedeklemeden geri yüklemeden önce, kötü sektöre sıfırlarla yazarak da uğraşmak istersiniz dd. Bu, sürücüyü onarmaya veya yeniden tahsis etmeye zorlayacaktır.
psusi

Evet, haklısın. Geri yükleme işleminden sonra, başka bir SMART kontrolü yaptım ve her şeyin yolunda olduğunu gördüm - bu yüzden dosyanın yazımı görünüşe göre 9 + 1 kötü sektör üzerine yazdı (ve hazırlama alanı yedekler sağladı). Peki ya Windows? :-)
ttsiodras

Bir bölümdeki sektör dengelemesi için yaptığınız hesaplamanın yanlış olduğunu düşünüyorum. Sektör sayıları (fiziksel, diğer adıyla CHS) sıfır tabanlıdır, çünkü sektör 32, bölüm sektörü 32-32 == 0, 1 değil.

Şok edici bir şekilde, henüz bir yıl eski bir soruda bunu söylemedi: Sürücüde kötü sektörleri görmeye başladığınızda , sürücünün otomatik dahili kötü blok yeniden eşlemesi artık telafi edilemez. Yedeklerden ölmekte olan bir sürücüye geri yüklemek yerine sürücüyü değiştirmeniz ve yeni sürücüye geri yüklemeniz gerekir.
voretaq7

Yanıtlar:


7

NTFS FS'niz olduğunu biliyorum ve bu FS'de pencereleri çalıştırın. Bu sürücü üzerinde çalışmak için canlı bir Linux'u "önyükleyebilir" misiniz bilmiyorum.

Linux'u CD veya USB'den önyükleyebiliyorsanız, ntfsprogs kullanabilirsiniz. bakmak -

ntfscluster 

ntfsinfo 

Ntfscluster'ın size belirli bir kümenin hangi dosyayı depoladığını söyleyeceğine inanıyorum. Umarım bu sizi doğru yöne yönlendirir.


Farklı dosya sistemleri üzerinde bunu yapmak için bir yardımcı sarıcı olan ve çok ntfscluster kullanan bu forum sonrası bulundu. ubuntuforums.org/showthread.php?t=1943721
Lethargy

Evet, ddrutility özelliği: Kötü sektörlerle ilgili dosyaları bulur, Sektör listesi olan bir dosyayı da kullanabilir, belki "badblocks -nvs" + "ddrutility" kullanabiliriz
diyizm
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.