Yanlışlıkla silinen dosyaları kurtarma


79

Yanlışlıkla dizüstü bilgisayarımdan bir dosyayı sildim. Fedora kullanıyorum. Dosyayı kurtarmak mümkün mü?


9
dosya sisteminiz nedir?
echox

Yanıtlar:


94

Bazı yardımcı programları hemen yüklememize karşı tavsiyede bulunabilirim. Temelde buradaki en büyük düşmanınız disk yazar. Şu anda ne pahasına olursa olsun onlardan kaçınmak istiyorsun.

En iyi seçeneğiniz, editörünüz tarafından oluşturulan bir otomatik yedeklemedir - varsa. Değilse, .tex dosyanızdaki bazı benzersiz dizeleri hatırlarsanız, grep kullanarak aşağıdaki numarayı deneyebilirim:

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

/dev/sda1Dosyanın bulunduğu aygıtla değiştirin ve dosyanızdaki 'string'benzersiz dizeyle değiştirin . Bu biraz zaman alabilir. Fakat temelde, bunun yaptığı şey, cihazdaki dizgiyi arar ve daha sonra bu satırdan önce ve sonra 100 satır döndürür ve onu yerleştirir file.txt. Daha fazla satıra ihtiyacınız varsa, sadece -Bve -Aseçeneklerini uygun şekilde ayarlayın . Bir sürü ekstra çöp geri alabilirsiniz, ancak metninizi geri alabilmeniz gerekir.

İyi şanslar.


8
Biri bana Linux'a geçtikten birkaç hafta sonra, gerçekten ihtiyaç duyduğum bir metin belgesini öldürdüğümde gösterdi - aklımı başımdan aldı
Michael Mrozek

18
Bu arada, -B100 -A100eşdeğer -C100("bağlam" için C) ile değiştirilebilir. Ve -imümkünse kesinlikle kullanmazdım , ama yerinde olsaydı -F.
rozcietrzewiacz,

Muhtemelen şaşırtıcı olmayan bir şekilde - Aynı disk bloklarının tekrar kullanıldığını farz ediyorum - bu yöntem yanlışlıkla üzerine yazdığım, yanlışlıkla silinmeyen bir dosya için işe yaramadı.
ntc2

Evet, çoğu dosya sisteminde, bir dosyanın üzerine yazıldığında aynı bloklar yeniden kullanılır. Bazı uygulamaların, önce geçici bir dosya yazarak (bu, ayrı bir yazı yapar), sonra da eski dosyanın üzerine (bu verileri kullanıcının bakış açısından değiştiren) yeniden adlandırmaya çalıştığını unutmayın. Bu, birkaç farklı nedenden dolayı yapılır. Bunu her zaman yapan depolama sistemleri (dosya sistemleri dahil) yazılı olarak kopyalanır .
CVn

/ dev / sda1'e ihtiyacınız var mı? Dosyanın bulunduğu ve / dev / sda1'sız çalıştırıldığı yönetmene gidebilir misiniz?
coolcool1994,

22

Mümkün, sadece bir güçlük olacak.

GÜNCELLEME: Bu yöntemi denemeden önce, lütfen Steven'ın cevabına bir göz atın .

Sen ihtiyacımız olacak testdisk paketi, bir çok disk alanı ve bir sürü zaman.

TestDisk'in bir parçası olan PhotoRec, neredeyse her diskten dosyaları kurtarabilir. PhotoRec dosyaları bulmayı destekler.tex .


İlk önce, çalıştırarak testdisk'i yükleyin.

yum install testdisk

not: Başka bir sürücüde kurtarılan dosyaları kaydedebileceğiniz çok fazla boş alana ihtiyacınız olacaktır.

Diskteki photorecboş alanı çalıştırarak diskinizdeki tüm silinmiş dosyaları kurtarın .

sudo photorec

ve talimatları izleyin ... (dosyaları, kurtardığınız diske kaydetmediğinizi unutmayın)

İşlem tamamlandıktan sonra, kurtarılan tüm dosyalar çalıştırmanız gereken tek bir dizinde olmalıdır:

find -name '*.tex' > filelist

Bu, kaybetmiş olabileceğiniz dosyaların bir listesini çıkartacaktır . Dosya isimleri kaybolacağından hepsini kontrol etmeniz gerekecek.


11
photorec iyi bir kullanımdır, kurulum sırasında gerçekleşecek olan disk yazmaları için endişeleniyorum. Bunu harici medyadan çalıştırılabilen bağımsız bir yürütülebilir dosya olarak almak için yine de var mı?
Steven D

1
Evet çok haklısın. Bağımsız bir çalıştırılabilir dosya bilmiyorum, ancak bazıları live-cd kullanmayı deneyebilir mi?
Stefan

2
Photorec ile kurtarılan dosyaları azaltmak için, üçüncü ekranda [Dosya Seçimi] bunu seçecektir. Bir listeden hangi dosya türünü istediğinizi veya kurtarılmasını istemediğinizi seçebilirsiniz.
Steve Burdine

13

Birçok metin editörü yedekleme dosyalarını tutar. Eğer gerçekten şanslıysanız, dosyanızın önceki bir sürümü de dahil olmak üzere dosya.tex ~ gibi bir şey olabilir.



4

Her durumda, herhangi bir diskin yazılmasını önlemek için en kısa sürede cihaz üzerinde çalışmayı bırakmalıyım ve bir Live-CD olan SystemRescueCd gibi özel bir kurtarma işletim sistemine önyükleyin ; Daha fazla veri kaybını önlemek için.

Bu dağıtımlar, diğerleri tarafından belirtilen birçok kurtarma aracını içerir ve çoğu noktayı yükleyebilirsiniz.

Her durumda, harici USB okuyucumda her zaman SystemRescueCd'nin son sürümüne sahip bir CD bulundurma eğilimindeyim.


3

NOT: Bu cevabı, silinen ve kapatılan ve silinen veritabanı dosyaları (MySQL sunucusu) hakkındaki başka bir soru için ekledim. Diğer benzer durumlarda da yararlı olabileceğine inanıyorum (bazı işlemlerin hala dosya tanımlayıcıları açık tuttuğu sürece).

İşleminiz hala devam ediyorsa, dosyalarınızı bulabilir /proc/<pid>fd/ve kopyalayabilirsiniz. Gönder SIGSTOPsüreç grubuna ilk. Dosyaları kopyala Yana yeni bir örnek oluşturun ve bu işlemi durdurun ya kill -9da durdurun ve dosyaları tekrar yerlerine yerleştirin. InnoDB çalıştırıldığında kendi başına düzelir, ancak eğer bir miktar MyISAM varsa, bunu manuel olarak yapmanız gerekecek.


2

Yanlışlıkla sqlite db dosyamı sildim.

Dosyayı bulmak için yaptığım şey,

Konumu /proc/bir dosya tarayıcısında açtı ve orada silinen sqlite db dosyasını aradı.

Bu dosyayı bir arama sonucunda öğrendim. O dosyayı oradan eski yerime kopyaladım.


0

İki yıl önce aynı problemi yaşadım ve debugfs, photorec, ext3grep ve extundelete gibi birçok program denedim. ext3grep, dosyaları kurtarmak için en iyi programdı. Sözdizimi çok kolaydır:

ext3grep image.img --restore-all

veya:

ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’

Bu video size yardımcı olabilecek küçük bir rehberdir.


0

Yedeklemeniz yoksa, 3. taraf bir Disk Kurtarma Aracı verilerin bir kısmını veya tamamını kurtarabilir, ancak şimdi makineyi kullanmayı bırakmanız gerekir. Silinen dosyalar artık sisteminizin üzerine yazması için hazır. Bir kere üzerine yazıldıktan sonra, verilerin kurtarılması son derece pahalıdır. Uflysoft veri kurtarma'yı (başka Mac OS veri kurtarma uygulamaları vardır) kullanma konusunda başarılı oldum - kurtarılan verilerin kaydedileceği bir "kurtarma sürücünüz" (ana sürücünüz veya sizi temizleyen sürücü değil) olmalıdır. Veri Kurtarma diskinden önyükleme yapıyorsunuz (sistem)

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.