Linuxde Silinen Dosyaları Geri Getirme

Sevgili Tahribat.Com müritleri veya mürit adayları bu dökümanımda size Linuxta  silinen verilerinizi geri getirme yöntemini anlatacağım.
 

Bilgisayarımıza yani Hard Diskimize(HDD) çoğu zaman çok önemli dosyalarımızı teslim ediyoruz. Günlerce gece gündüz demeden hatta aylarca uğraşıp hazırladığımız çalışmalar sabit sürücümüzde önemsiz bytelar olarak saklanıp korunmaktadır.


Bilgileri kaybetmek ise  kullanıcılarının korkulu rüyası oluyor..

Ama öncelikle bilgilerin nasıl olup da kurtulduğu hakkında bilgi vermekte yarar var: Bir dosyayı sildiğinizde üzeri sıfırla kaplanır. Bu başka bir dosya yazılırken bu alanın boşmuş gibi görülmesinin sağlar. O zaman buraya bir dosya yazılmadığı sürece siz veriyi kurtarabilirsiniz.

Bunu daha detaylı  bir şekilde anlatmak gerekirse;

111 gibiyse
rapidhack.dosyam

gibi bir şekilde olan dosyanız silindiğinde aşağıdaki şekle dönüşür;

000 olur
rapidhack.dosyam

ve böylece bu dosya\adı başka bir bilginin yazılabilmesi için serbest bırakılmış olur.

Bu bilgilere dayanarak, size söyleyeceğim bir iki önerim var; sonra görmedim bilmiyordum demeyin müritler :)

Normal bir sistemde kayıt yapan servisler sürekli açık bulunurlar ve buda kısa aralıklarla Hard Diskinize(HDD) birşeyler yazıldığı anlamına gelir.

1) Yanlış bir işlem yaptığınızda olabildiğince hızlı bir şekilde init 1 seviyesine geçin.Seviye dediğim yani  init 1 komutunu verin o ona yeter. :)

2) Veya diskinizin Read-Only olarak mount edilmesini sağlayın.
(mount -o remount,ro /dev/hdXX)

3) Eğer silinen dosya o an çalışan Harddiskinizden başka bir yerde ise, o sürücüye ya da  Hard Diske kesinlik ile birşey yazmayın/yazdırmayın.Yani anlamadıysanız siz silinen dosyayı geri getirmek istiyorsanız o bu işe odaklanın yani başka bir işlem yapmayın!

Evet, gerekli uyarıları da yaptıktan sonra silinen dosyamızı ya da verimizi geri getirmek için yola koyulalım.
------------
Debugfs yöntemi
------------

Bu yöntemi mount EDİLMEMİŞ disklerde kullanın veya kullanacağınız diski öncelikle umount edin. Verdiğim örnek mount edilmiş ek bir sürücünün yani HDB nin örneğidir
# Hangi dizinde olduğumuza bir bakalım
$ pwd /mnt/hdb/

# Yanlışlıkla gerekli bir dosyamızı silelim
$ rm -f tbtrapor_2009_06_29.txt

# Aman Tanrım biz ne yaptık böyle allah belamızı vermesin
# Hemen diskimizi umount edelim
$ umount /mnt/hdb

# Eger yetkili değilseniz root olalım ilk önce ve sonra işleme devam edelim
$ su -

# debugfs ile diskimizi açalım
$ debugfs /dev/hdb

# Artık komut satırımızda debugfs:  yazacaktır
# Neyse biz önce silinen dosyalarımızı bir listeyelim
$ debugfs: lsdel

# Burada birçok satır karşınıza çıkabilir.
# Önemli olan, sizin sildiğiniz dosya ile bilgileri uyuşanı bulmaktır
# Karşılaştırma için Boyut, Mod, Tarih gibi bilgileri kullanabilirsiniz
# İşte aradığım dosya
$ debugfs: lsdel

1 deleted inodes found. Inode Owner Mode Size Blocks Time deleted 25794 515 100644 1050 2/ 2 Mon Jun 13 23:06:43 2009

# Bizim için gerekli olan INODE numarası olacak
# Aşağıdaki komuttaki <> işaretlerini aynen sizde yazın!
$ debugfs: dump -p <25794> /tmp/tbt   (burada yeni yerine siz tmp klasöründe hangi dosya olacaksa siz onu yazın)

# İşimiz bitti.Artık çıkalım.
$ debugfs: quit
Şimdi bir ohh çekelim :)

Dosyamız aynı kullanıcı hakları ile birlikte silme işleminin gerçekleştiği sabit sürücünün /tmp dizini altında tbt adıyla saklandı. Emin olmak için

$ mount -t ext2 /dev/hdb /mnt/hdb
$ ls /mnt/hdb/tmp/tbt


ve göreceksiniz ki dosya orada bize  bakıyor  ::))
 
Her Hakkı Saklıdır!
Saygılarımla!
 
Tahribat.Com
Tarih:
Hit: 3235
Yazar: rapidhacker550



Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.