Dd kullanarak bir Giriş / Çıkış hatasını nasıl düzeltirim?


14

Merhaba Windows 7 sistemimi bozuk bir sabit disk ile düzeltmeye çalışıyorum, ancak hala çalışıyor.

Windows 7'yi yeniden yüklemek için tüm verileri yeni bir sürücüye kopyalamaya çalışıyorum. SQSERVICE adlı sürücü.

Hiç kopyalayamıyorum - aşağıya bakın:

$ sudo dd if=/dev/sdc1 of=/dev/sda1
dd: reading `/dev/sdc1': Input/output error
11233976+0 records in
11233976+0 records out
5751795712 bytes (5.8 GB) copied, 187.731 s, 30.6 MB/s

Bu "Giriş / çıkış hatası" nasıl düzeltilir?


1
@Gertvddijk yazım sorunumu düzeltmek için teşekkürler, hollanda hala iyi İngilizce öğreniyorum.
Erazer

Yanıtlar:


16

Bunu kendin söyledin: diskiniz bozuk. Deneyebilirsiniz ddrescue, bozuk yolun etrafında çalışabilir. Ancak veri kaybedeceğinize dikkat edin.

Yedeklemeden geri yükleme daha kolay olacaktır :)

Doğru kullanımı ddrescueaşağıdaki gibidir:

sudo apt-get install gddrescue
sudo ddrescue /dev/sdc1 /dev/sda1

veya stdoutprogess izleme aracına yöneltmek istiyorsanız :

sudo ddrescue /dev/sdc1 /dev/sda1 | pv

evet dedim ama yedekleme geri yükleme bu sürücüde .. ve bu sürücüde sadece sektör sorunu var, iyi nasıl bu komutu kullanabilirsiniz? im just newbie linux user ..
Erazer

2
Yedeğiniz yedeklediğiniz sürücü ile aynı sürücüde mi ?! boggles
Dennis Kaarsemaker

1
aynı sürücü evet ama aynı bölümde değil. peki ben biraz aptalım: '(hiç de önemsiz değil yedekleme
Erazer

6

Bunun herkes için yararlı olup olmadığını bilmiyorum, ancak bu sayfayı aramamda bulduysam, belki birine yardımcı olabilir (umarım ay önce sorununu çözen OP'den başka).

ddrescue, Dennis'in önerdiği gibi, veri kurtarma (hatayı / diski orijinal soru olarak "düzeltmek" ten farklı) için en iyi seçim olabilir.

Alternatif olarak, diski takabilir ve dosyaları kopyalayabilirsiniz. Çok fazla boş alan varsa veya yalnızca belirli dosyalar istiyorsanız, bu ÇOK daha hızlıdır. UYARI: bir Linux makinesinden yapıldığında, dosya izinleri gibi tüm genişletilmiş öznitelikleri kaybeder, bu nedenle OS dosyaları için çok kötü bir seçimdir, ancak kullanıcı dosyaları için tolere edilebilir. Pencerelerden yapmak bunları korumalı, ancak hataları düzgün bir şekilde işlemeyebilir, muhtemelen çok yavaş gitmesine neden olabilir.

Sektörleri sadece atlamak için değil, "düzeltmek" için başka bir seçenek de kötü sektörleri yeniden tahsis etmektir. Sektör numarasını biliyorsanız (sizin durumunuzda, dd cinsinden blok boyutunuzu ve sektör boyutunun 512 olduğunu varsayarak 11233976), bunu çalıştırın ve bulduğunuz her yeni bozuk sektör için tekrar çalıştırın:

hdparm –write-sector 11233976 –yes-i-know-what-i-am-doing /dev/sdb

UYARI: Bu, söz konusu sektördeki verileri yok edecektir. Bu yüzden ne yaptığınızı gerçekten bildiğinizden emin olun. Bu sektör okunamıyorsa, üzerine yazmak hataları durduracaktır, ancak sektörün çöp içereceği ve muhtemelen önemli bir dosyayı bozacağı anlamına gelecektir.

Daha fazla bilgi için buna bakın: http://www.sjvs.nl/forcing-a-hard-disk-to-reallocate-bad-sectors/

Diskinizde çok sayıda (belki de binlerce) kötü sektör varsa (Current_Pending_Sector, Offline_Uncorrectable veya Reallocated_Sector_Ct olarak görünüyorsa) veya yeni ve hala garanti kapsamındaysa veya sayı sürekli olarak artarsa, yine de disk. Yeniden tahsis etmenin diski düzelttiğini söylemelerine izin vermeyin. Sadece bilinen kötü sektörleri düzeltir ve yeniden tahsis için ayrılmış sektörleri tüketir. Disk daha kötü sektörler geliştirmeye eğilimliyse, sorun her seferinde bazı verileri bozarak geri gelmeye devam edecektir.


1

Diskin bazı kısımları kırıkken, diskin iyi kısımlarını kopyalayabilirsiniz.

$ dd --help
...
 noerror   continue after read errors
...
sudo dd if=/dev/sdc1 of=/dev/sda1 conv=noerror
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.