Yanıtlar:
ddrescue yeniden başlatılabilir, ancak bunu yapabilmek için bir günlük dosyası gerekir. Günlük dosyası ddrescue'nun şu ana kadar kaydettiği ilerlemeyi kaydeder ve ddrescue uygulamasını yeniden başlatmak günlük dosyasını okur ve kaldığı yerden başlar.
Günlük dosyası üçüncü parametre olacaktır:
ddrescue /dev/sdd1 ./bye1t.dd_rescue.image ~/sdd1.log
Bir günlük dosyası olmadan bir ddrescue çalıştırmasını zaten başlattıysanız ve iptal ederseniz, bir sonraki ddrescue çalıştırıldığında, zaten kurtarılmış olanların hiçbir kaydı olmadığından başlangıçta başlayacaktır.
Bir günlük dosyası belirtmeyi unutsanız bile, umut olabilir:
Yani öğreticiyi okumadınız ve bir günlük dosyası olmadan ddrescue uygulamasını başlattınız. Şimdi, iki gün sonra bilgisayarınız çöktü ve ddrescue'nun ne kadar veri kaydetmeyi başardığını bilemezsiniz. Ve daha da kötüsü, kurtarmaya devam edemezsiniz; en baştan yeniden başlatmanız gerekir.
Ya da belki bir sürücüyü kopyalamaya başladınız dd conv=noerror,sync
ve şu anda yukarıda anlatılanla aynı durumdasınız. Bu durumda, sync
dönüştürme bağımsız değişkeniyle çağrılmadığı sürece dd tarafından yapılan bir kopyayı kullanamayacağınızı unutmayın .
(Henüz) umutsuzluğa kapılmayın. Ddrescue, bazı durumlarda, giriş dosyasından ve (kısmi) kopyadan neredeyse tam bir günlük dosyası kadar iyi olan yaklaşık bir günlük dosyası oluşturabilir. Bunu, tüm sıfırları içeren sektörlerin kurtarılmadığını varsayarak yapar.
Ancak, kopyanın hedefi bir sürücü veya bölümse (veya varolan normal bir dosya ve kesme istenmezse), büyük olasılıkla ddrescue uygulamasını en baştan yeniden başlatmanız gerekir. (Bu sefer elbette bir log dosyası ile). Bunun nedeni, sürücüde henüz üzerine yazılmamış olan eski verilerin mevcut olabilmesidir ve bu nedenle denenmemiş ancak sıfırdan farklı olabilir.
Örneğin, ilk olarak şu komutlardan birini denediyseniz:
ddrescue infile outfile
veya
dd if=infile of=outfile conv=noerror,sync
bu komutla yaklaşık bir günlük dosyası oluşturabilirsiniz:
ddrescue --generate-mode infile outfile logfile
Diğerlerinin söylediği gibi, her zaman üçüncü parametre olarak sürdürmeye izin verecek bir günlük dosyası belirtmelisiniz. Bunu yapmadığınız için bu size yardımcı olmayacak. İşlemin yaklaşık olarak hangi noktaya geldiğini biliyorsanız , o noktadan başlamak için --input-position
ve --output-position
parametrelerini kullanabilirsiniz (her iki parametreyi de aynı değere ayarladığınızdan emin olun, aksi takdirde çıktı bozulur).
Bir günlük dosyasını üçüncü parametre olarak belirtmediğiniz için sürdürme otomatik olarak yapılamaz. Önceden kurtarılmış sektörleri biliyorsanız, sözdizimi kolaydır. Bir günlük belirtirken başka bir dosyaya başka bir sahte kurtarma başlatmanız ve farklı alanları okumasına izin vermeniz yeterlidir. Ardından, ilk dosyanızdaki önceden kurtarılmış alanları temsil edecek şekilde günlüğü düzenleyin. Şimdi önceki komutunuzu yeniden çalıştırın, ancak üçüncü parametre olarak günlük dosyasının adını verin. ddrescue ilk denenmemiş sektörde devam edecektir.
Başına https://wiki.archlinux.org/index.php/Disk_cloning onunla görünüyor conv=noerror,sync
anahtarı, dd
aslında eklenti sıfır yapar sonunda bir bloğun, tam olarak okuma hataları oluştuğu. Bu, Miles Wolbe'nin 2013-08-29'daki cevabındaki bilgilere aykırı.
Örneğin, doğru bir sıra varsa 198123283
ve ortasında bir okuma hatası varsa, yazmaz 198283000
, yazmaz 198000283
.
Bu yüzden gerçekten okuma hataları olması durumunda, önerilen yöntem doğru olmayacaktır - sıfırla doldurulmuş, ancak "kurtarılmış" olarak değerlendirilecek olan okunabilir alanlar olacaktır.
Bu arada, hedef sürücüyü sıfırlarla (veya en azından örneğin WinHex ile yapılabilecek boş alanı) doldurarak böyle bir kurtarma girişimine başlamak iyi bir uygulamadır.