Bozuk disk kafası, bozuk motor veya sabit sürücünün verileri çok yavaş ve çok hızlı bir şekilde okumasına neden olan diğer mekanik sorunlar nedeniyle okunamayan bozuk bloklar veya sektörlerle sabit diskim var okuma hataları. Ortalama 50 KB / sn görüyorum, bazı okumalar 10 KB / sn'nin altına düşüyor ve genellikle bir dosyaya veya sektöre, genellikle oldukça uzun bir süre, 2-10 dakika veya daha fazla ( zaman aşımına uğramadan önce rsync kullanarak).
Hız çılgınca değişiyor gibi görünüyor ve dosyalarda çok fazla sıkışıyor ve sonunda "takılı kaldığında" tekrar sıkışmadan önce sadece kısa bir patlama sürüyor gibi görünüyor. Sürücü, yalnızca ara sıra dosya kopyalama sesi ile çok sessizdir (genellikle tekrar takılmadan önce kısa bir süre takılır / takılırsa). Bu nedenle, normalde HDD ölümüyle ilişkili olan kötü seslerden hiçbiri yoktur. Birisi, sorunların yanlış hizalanmış bir disk kafasından kaynaklanıyormuş gibi geldiğini öne sürdü; Kulağa mantıklı geliyor, ama konuţuyorum ...
Her neyse, rsync ile ilgili sorun, iyi bir hata işleme desteği yok gibi görünüyor. Açıkçası, sabit diskler başarısız veri kurtarma kullanılmak için demek değildi, ama orada tüm sözde "veri kurtarma" programları vardır bu tür kullanım için bir anlamı genellikle silinen dosyaların geri kazanımı odaklanmak veya yerine, bölümler berbat ölen sabit sürücülerden dosya kopyalama. Silinen dosya kurtarma, ihtiyacım olan şey değil, tabii ki, belki de henüz sonra ne bulamıyorum hayal kırıklığı anlayabilirsiniz.
Doğal olarak, muhtemelen "ddrescue kullanmalısın!" Eh, hepsi iyi ve züppe, ama zaten verilerin çoğunu yedekledim, bu yüzden sadece belirli dosyaları kurtarmak istiyorum. Ben ddrescue gibi tam bir blok blok blok kurtarma ile ilgilenmiyorum. Sadece belirli dosyaları ve dizinleri kurtarmakla ilgileniyorum.
İdeal olarak, rsync ve ddrescue arasında bir tür çapraz geçiş: kaynak ve hedefi rsync gibi normal dosyaların dizinleri olarak belirtmeme izin veren bir şey (ddrescue'nun gerektirdiği gibi iki tam bölüm yerine), ilk çalıştırmada hatalar ve daha sonra bu dosyaları daha sonraki bir çalıştırmada (tabii ki biraz değiştirilmiş bir komutla) hatalarla kurtarmaya çalışmamı sağlar, hatta belki de yeniden deneme girişimlerinin sayısını belirtmek için bir seçenek sunar ... ddrescue nasıl bloklarla çalışır, sadece rsync gibi belirli dosyaları / dizinleri ile çalışan bir yardımcı program istiyorum.
Yani burada hayal mi kuruyorum, yoksa bunu yapabilecek bir şey var mı? Ya da belki de rsync veya ddrescue'yu bu şekilde çalıştırmanın bir yolu? Hangi dosyaları "kurtarmak" istediğimi seçmeme izin verdiği sürece ilk çözümde işe yarayabilir ve ilk çalıştırmada hata içeren dosyaları atlayabilir ve bu hataları daha sonra tekrar deneyebilirim.
Şimdiye kadar rsync'i aşağıdaki seçeneklerle denedim, ancak genellikle bir dosyada zaman aşımından daha uzun süre takılı kalıyor ve ideal olarak bir sonraki dosyaya geçip daha sonra aldığı dosyalara geri dönmesini istiyorum sıkışmış. Bunun mümkün olduğunu düşünmüyorum. Her neyse, şimdiye kadar kullandığım şey şu:
rsync -avP --stats --block-size=512 --timeout=600 /path/to/source/* /path/to/destination/