Dosya gizemli bir şekilde boş. Kurtarma seçenekleri?


9

Silinen dosyaları kurtarma hakkında birkaç gönderi gördüm, ancak bu durum farklı. Eşim Journal.odt adlı bir dosyaya sahipti, burada çocuklarımızla ilgili özel anılar gibi birçok önemli kişisel bilgiyi sakladı. Geçen gün OpenOffice'de açmaya çalıştığı zaman formattan şikayet etti. İsabetini iptal ettirdim ve geri döndüm. Ben catdosya zaman tamamen boş. lsdosyanın 0 bayt olduğunu söylüyor.

Yanlışlıkla dosyadaki tüm metni seçmişse, geri tuşuna basmış ve kaydetmiş olsa bile, dosyada OpenOffice meta bilgileri olacaktır.

Yapacağım bir şey düşünene kadar diskte daha fazla değişiklik yapılmasını önlemek için hemen dizüstü bilgisayarını kapattım.

Geçmişte ddham metni diskten kurtarmak için kullanmak gibi bazı karmaşık şeyler yaptım ama burada ne yapacağım hakkında hiçbir fikrim yok. Odt dosyaları düz metin olmadığından, tüm diski grep ile borulayamam.

Herhangi bir öneri büyük mutluluk duyacağız.

Ayrıca kimse neyin yanlış gittiğine dair herhangi bir öngörü varsa onu duymak isterim.

Teşekkürler


1
Dosyanın yanlışlıkla silinmesi veya başka bir şey olması farklı olurdu, ancak bir metin düzenleyicisinde vb. Kaydedildiğinde, adli güç kurtarma ile kurtarılabilecek her şeyi etkili bir şekilde silerek "yerinde" yazar. Sistemi hemen kapatmasaydınız daha iyi olurdu, kontrol + z (Open Office'te "geri al" işlevinde yerleşik olarak) birkaç kez basmak sorunu düzeltirdi.
Tim

@Zaman senin fikrini görüyorum, ama ne yazık ki dosya günler önce boşaltılmıştı. Dosyadaki son değiştirilme süresi birkaç gün önceydi. Açıklamam OO'da açtığında zaten boştu. Yine de teşekkürler.
jcbwlkr

2
Ölü bir atı dövmeye ya da düştüğünde bir adamı tekmelemeye çalışmıyorum, ancak bu deneyimin sizi yedek bir çözüme bakacağından şüpheleniyorum. Basit, Linux uyumlu bir yedekleme uygulaması için "Areca Backup" a bakın.
Tim

Disk dolu olabilir mi? df -h
Şununla

@Tim Dosya 0 baytsa, OO belgesi değildir; Ctrl+Zdosya OO tarafından kaydedildiği için hiçbir şey yapmazdı. @ Jacobwalker0814 ODT dosyaları zip dosyalarıdır, bu nedenle testdisk gibi kurtarma araçlarının bunları bulma şansı vardır; ancak hiçbir garanti yoktur ve veriler hala orada olsa bile, diğer birçok zip dosyasında dolaşmak zorunda kalabilirsiniz. Ve gelecek için, geri çekilin!
Gilles 'SO- kötü olmayı kes'

Yanıtlar:


3

Ext3 dosya sistemi kullanıyorsanız Carlo Wood'un NASIL belgesini izlemeyi deneyin

Birkaç kelimeyle,

  • Ext3grep $ IMAGE kullanın --ls --inode 2 | u aradığınız dosyayı bulmak için dosya_grep (burada $ IMAGE örneğin / dev / sda2 için ur bölümüdür)
  • Ayrılmamış alan günlüğünü içeren dosya sistemi bloğunu bulun.
  • Daha önce bulunan tüm blok tanımlayıcılarına referans bloklarını bulun.
  • Bloğu dd ile kopyalayın.
  • Sondaki sıfırları silmek için dosyayı düzenleyin.
  • İstediğin yerde dosyayı seç

Kaynaktan:

"Manuel kurtarma örneği bölümü

Aşağıdaki örnekte, küçük bir dosyayı manuel olarak kurtaracağız. Yerden tasarruf etmek ve örneği daha okunaklı hale getirmek için sadece kısmi çıktı verilir.

Ext3grep $ IMAGE --ls --inode kullanarak kurtarmak istediğimiz dosyanın adını buluruz:

$ ext3grep $ GÖRÜNTÜ --ls --inode 2 | grep carlo 3 son d 195457 D 1202352103 Per 7 Şub 03:41:43 2008 drwxr-xr-x carlo

$ ext3grep $ GÖRÜNTÜ --ls --inode 195457 | grep 'bin $' | kafa -n 1 34 35 d 309540 D 1202352104 Per 7 Şub 03:41:44 2008 drwxr-xr-x bin

$ ext3grep $ GÖRÜNTÜ --ls --inode 309540 | grep start_azureus 9 10 r 309631 D 1202351093 Per 7 Şub 03:24:53 2008 rrwxr-xr-x start_azureus

Açıkça, inode 309631 silinir ve bu dosya için blok numaralarımız yok:

$ ext3grep $ IMAGE --print --inode 309631 [...] Inode Ayrılmamış Grup: 19 Nesil No: 2771183319 uid / gid: 1000/1000 modu: rrwxr-xr-x boyut: 0 bağlantı sayısı: 0 sektör: 0 (-> 0 dolaylı blok).

Inode Times: Erişim tarihi: 1202350961 = Perş 7 Şub 03:22:41 2008 Dosya Değiştirildi: 1202351093 = Per 7 Şub 03:24:53 2008 Inode Değiştirildi: 1202351093 = Per 7 Şub 03:24:53 2008 Silme süresi: 1202351093 = Per 7 Şubat 03:24:53 2008

Doğrudan Bloklar:

Bu nedenle, dergide daha eski bir kopyasını aramaya çalışacağız. İlk olarak, bu inode'u içeren dosya sistemi bloğunu buluyoruz:

$ ext3grep $ GÖRÜNTÜ --inode-blok 309631 | grep, Inode 309631, 0xf00 göreli konumunda 622598 bloğunda bulunur.

Sonra tüm dergi tanımlayıcılarını 622598 bloğuna referansla buluyoruz:

$ ext3grep $ IMAGE --journal --block 622598 [...] 622598 numaralı bloğa referans veren dergi tanımlayıcıları: 4381294 26582 4381311 28693 4381313 28809 4381314 28814 4381321 29308 4381348 30676 4381349 30986 4381350 31299 4381374 327 438138 438 438 438 438 4382137 6672 4382138 7536 4382139 7984 4382140 8931

Bu, 4381294 sıra numaralı işlemin 26582 bloğunda 622598 bloğunun bir kopyasına sahip olduğu anlamına gelir. En alttaki sıra numarası, diske yazılan son veri olmalı ve bu nedenle blok 8931, geçerli blok 622598 ile aynı olmalıdır. Son silinmemiş kopyayı bulmak için, alttan başlamalı ve çalışmalıdır. yukarı.

Böyle bir bloğu yazdırmaya çalışırsanız, ext3grep bunun bir inode tablosundan bir blok olduğunu fark eder ve içindeki 32 inodun içeriğini yazdırır. Ancak sadece inode 309631'i görmek istiyoruz; bu yüzden akıllı bir grep kullanıyoruz:

$ ext3grep $ GÖRÜNTÜ - baskı - blok 8931 | grep -A15 'Inode 309631' -------------- Inode 309631 ----------------------- Nesil Kimliği: 2771183319 uid / gid: 1000/1000 modu: rrwxr-xr-x boyut: 0 bağlantı sayısı: 0 sektör: 0 (-> 0 dolaylı blok).

Inode Times: Erişim tarihi: 1202350961 = Perş 7 Şub 03:22:41 2008 Dosya Değiştirildi: 1202351093 = Per 7 Şub 03:24:53 2008 Inode Değiştirildi: 1202351093 = Per 7 Şub 03:24:53 2008 Silme süresi: 1202351093 = Per 7 Şubat 03:24:53 2008

Doğrudan Bloklar:

Bu gerçekten de blok 622598'de gördüğümüzle aynıdır. Sonra 0 Silme zamanı olan bir tane bulana kadar daha küçük dizi numaralarına bakarız. İlk bulduğumuz (aşağıdan yukarıya) blok 6073:

$ ext3grep $ GÖRÜNTÜ - baskı - blok 6073 | grep -A15 'Inode 309631' -------------- Inode 309631 ----------------------- Nesil Kimliği: 2771183319 uid / gid: 1000/1000 modu: rrwxr-xr-x boyutu: 40 bağlantı sayısı: 1 sektör: 8 (-> 0 dolaylı blok).

Inode Times: Erişim tarihi: 1202350961 = Perş 7 Şub 03:22:41 2008 Dosya Değiştirildi: 1189688692 = Per 13 Eyl 15:04:52 2007 Inode Değiştirildi: 1189688692 = Per 13 Eyl 15:04:52 2007 Silme süresi: 0

Doğrudan Bloklar: 645627

Yukarıdakiler otomatiktir ve komut satırı seçeneği olan show-journal-inodes ile çok daha hızlı yapılabilir. Bu seçenek, inode ait olduğu bloğu bulur, sonra o bloğun tüm kopyalarını günlükte bulur ve daha sonra bu bloğun her birinden (her biri bildiğiniz gibi 32 inode içeren) yalnızca istenen inode'yu yazdırır ve kopyaları ortadan kaldırır. :

$ ext3grep $ IMAGE --show-journal-inodes 309631 Grup sayısı: 75 Minimum / maksimum günlük bloğu: 1115/35026 Günlük tanımlayıcıları yükleniyor ... bitti Günlük işlem 4381435 tamamlanıyor, bu işlemin bazı veri blokları kaybolmuş olabilir. Dergideki tanımlayıcı sayısı: 30258; min / max dizi numaraları: 4379495/4382264 Dergide bulunan inode 309631'in kopyaları:

-------------- Inode 309631 ----------------------- Nesil Kimliği: 2771183319 uid / gid: 1000/1000 mod: rrwxr-xr-x boyut: 0 bağlantı sayısı: 0 sektör: 0 (-> 0 dolaylı blok).

Inode Times: Erişim tarihi: 1202350961 = Perş 7 Şub 03:22:41 2008 Dosya Değiştirildi: 1202351093 = Per 7 Şub 03:24:53 2008 Inode Değiştirildi: 1202351093 = Per 7 Şub 03:24:53 2008 Silme süresi: 1202351093 = Per 7 Şubat 03:24:53 2008

Doğrudan Bloklar:

-------------- Inode 309631 ----------------------- Nesil Kimliği: 2771183319 uid / gid: 1000/1000 modu: rrwxr-xr-x boyutu: 40 bağlantı sayısı: 1 sektör: 8 (-> 0 dolaylı blok).

Inode Times: Erişim tarihi: 1202350961 = Perş 7 Şub 03:22:41 2008 Dosya Değiştirildi: 1189688692 = Per 13 Eyl 15:04:52 2007 Inode Değiştirildi: 1189688692 = Per 13 Eyl 15:04:52 2007 Silme süresi: 0

Doğrudan Bloklar: 645627

Dosya gerçekten küçük: sadece bir blok. Bu bloğu dd ile daha önce gösterildiği gibi kopyalarız:

$ dd = = IMAGE bs = 4096 sayım = 1 atlama = 645627 / = blok.645627 1 + 0'da 1 + 0 kayıt 4096 bayt (4,1 kB) kopyalandı, 0,0166104 saniye, 247 kB / s

ve ardından sıfırları silmek için dosyayı düzenleyin veya ilk 40 baytı (dosyanın belirtilen boyutu) kopyalayın:

$ dd if = block.645627 bs = 1 sayım = = 40 start_azureus 40 + 0 kayıt 40 + 0 kayıt 40 bayt (40 B) kopyalanmış, 0.000105397 saniye, 380 kB / s

$ cat start_azureus cd / usr / src / azureus / azureus ./azureus &

Kurtarılan!"


Buna bakmak isterdim ama bağlantı ölü gibi görünüyor.
jcbwlkr

3
Bana ölü gibi gelmiyor.
Bay Lister

evet, ben de erişebilirim.
java_xof

Şimdi iyi çalışıyor. Kesinlikle daha erken değildi. Kim bilir? Teşekkürler java. Ben bakacağım.
jcbwlkr

Sorun değil, umarım bu yardım u, suç yok ama etkileşim eşi hakkında bir şey biliyorum <-> bilgisayar;)
java_xof

2

Testdisk ve photorec'i deneyin , ancak yazınızı anlamanın yolu muhtemelen düzenli yedeklemelerin değerini öğrenmenin zor yoludur. Ayrıca sabit diskin daha fazla değiştirilmesini önlemek için CD'den önyükleme yapmak isteyebilirsiniz. Şahsen bunun için Sistem Kurtarma Diskini seviyorum , ancak büyük ölçüde komut satırı tabanlı.


1

Caine'i dijital adli tıp için özel bir linux dağıtımı kullanın. Dosya ve sabit disk kurtarma için birçok araç.


Teşekkürler. Bu dağıtımlara bakacağım ve bir şey olup olmadığını göreceğim. Belirli araçlar veya konuya yaklaşma yolları hakkında tavsiyeleriniz var mı? Buradaki sorun, dosya birçok araç gibi görünüyor silinmedi; sadece içeriğini kaybetti.
jcbwlkr

1
Open Office bazen önceden kaydedilmiş belgeyi içeren gizli bir dosya oluşturur. Şanslıysanız, örneğin "extundelete" veya "testdisk" kullanarak kurtarmayı deneyebilirsiniz cgsecurity.org/wiki/TestDisk
PsyStyle

Bakın ~ / .openoffice.org / 3 / user / backup / veya ~ / .libreoffice.org / 3 / user / backup / Bu dizinleri silmek için bir komut dosyası yazdım, böylece sildiğim hassas şeyler hala orada değildi.
Joe
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.