Yazılmaz sektörlere sahip bir sabit disk nasıl silinir?


21

Yani arızalı bir sabit diskim var. Değiştirilmek üzere göndermeden önce üzerindeki verileri silmek istiyorum. Kullanmaya çalışıyorum dd if=/dev/zero of=/dev/sdXX, ancak ilk yazma hatası durur. Yazma hatalarını yoksayarak sürücünün sıfırlarıyla nasıl üzerine yazabilirim? conv=noerroryalnızca girdi dosyasını etkiliyor gibi görünüyor.


Orada Debian veritabanında bir hata raporu bu davranış hakkında, ancak henüz uygulanmadı var gibi görünüyor.
Bobby

badblocksHatalarda da durur mu ? Belki de bununla yıkıcı bir yazı yazabilirsiniz?
oKtosiTe

Ayrıca badblocks, Pazartesi günü diski iade etmeden önce ne kadar kötü blok bulunduğundan emin olmak için yıkıcı oldum. Diski de başarıyla sildi, ancak yaklaşık 50 saat sürdü.
TestUser16418

Yanıtlar:


18

dd yerine ddrescue deneyin - hatalarla daha çok çalışır


1
ddrescue, yazma hatalarını yok sayarak tüm diski başarıyla sildi. Çok teşekkür ederim.
TestUser16418

15

Sürücüyü /dev/sdb(sıfırlarla dolu) silmek /dev/zerove çıktıyı dosyaya kaydetmek için ddrescue ile kullandığım parametreler log.txt:

ddrescue --force /dev/zero /dev/sdb log.txt

Rasgele veri kullanımı ile silmek için: ddrescue --force / dev / urandom / dev / sdX tmp.log
Bastion

Ne zaman bittiğini nereden biliyorsun? Yaptım ve yaklaşık 20 dakika koşmasına izin verdim ve% 0.00 kurtarıldı. Silmeye çalıştığım kötü bloklara sahip bir NVMe SSD ... Samsung Secure Erase yardımcı programı benim için çalışmadı.
user1960364

3

Sadece sürücüyü silmek istiyorsanız dban'ı deneyin

Siteden:

Darik'in Önyükleme ve Nuke ("DBAN"), çoğu bilgisayarın sabit disklerini güvenli bir şekilde silen bağımsız bir önyükleme diskidir. DBAN, algılayabileceği herhangi bir sabit diskin içeriğini otomatik olarak ve tamamen siler, bu da onu toplu veya acil durum veri imhası için uygun bir yardımcı program yapar.


Bunu önerecektim.
qroberts

3

Kayıt için, dd'nin conv=noerrorhataları atlama seçeneği de vardır . Eğer bir giriş dosyası hataları vardı ve ne zaman olursa değil kullanarak /dev/zero, kullanmak isterdim conv=noerror,notruncveya conv=noerror,synchatalar girdi dosyada bulunan bazı çıkış dosyası kesiliyor dan dd önlemek için.

Sorgunuz için bunun yerine bu komutu deneyebilirsiniz:

dd if=/dev/zero of=/dev/sdXX conv=noerror  

Süreci hızlandırmak ve potansiyel olarak orta adımda sürücünün ölmesini önlemek için, bayt boyutunu varsayılan 512'den (sektör bazında dd okumayı yavaş yapan) 4K gibi daha büyük bir şeye yükseltmeyi deneyebilirsiniz. (sekiz kat daha büyük):

dd if=/dev/zero of=/dev/sdXX bs=4K conv=noerror  

Not: Daha büyük bir bayt boyutu ile atlanan hatalar, okunabilir verilerin bölümlerini seçtiğiniz bayt boyutundan biraz daha az bırakabilir, ancak diskin tamamı çalıştırıldıktan sonra herkesin bu bölümlerden herhangi bir şey alması olası değildir. süreci.

Bunun yanı sıra, sabit sürücü üreticilerinin garanti kapsamında değiştirme için iade edilen sabit sürücüleri, üzerine yazma işlemini tamamen tamamlayabilmeniz için sürücünün arızalanması durumunda uygun şekilde attığından eminim.


man dd"noerror", "okuma hatalarından sonra devam et" anlamına gelir
Kevin Smyth

1

Kesinlikle bir güç kullanıcısı çözümü değildir, ancak yazma hataları nadirse, oluştuktan sonra manuel olarak devam etmek isteyebilirsiniz.

Teorik olarak bunu otomatik olarak yapmak için bir şey komut dosyası olabilir, ama o kadar önemsiz değil ve ben hile yapmak için komut dosyası dd ile rahatsız daha bir araç yazmak istiyorum ..

   seek=BLOCKS
          skip BLOCKS obs-sized blocks at start of output

1
... ya da dd kurtarma kullanın ...
Antti Haapala

... dd-rescue yazma hatalarını doğru bir şekilde ele alır mı?
qdot
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.