Skip to content

(Hala kullanılmakta olan) Silinen dosyaları kurtarma

Kullandığımız uygulamalar çalışırken okudukları/yazdıkları dosyaları (ya da uygulamaya göre dosyanın bir kısmını) bellekte tutarlar. Linux üzerinde birçok kez karşılaştığım bir güzellik olarak, siz kullanılan dosyayı sistemden silseniz bile uygulama bellekteki kopya ile çalışmaya devam eder. Bu duruma güzel bir örnek olarak çalışan bir uygulamayı sistemden silebilmeniz ve siz uygulamayı kapatana kadar uygulamanın sorunsuz çalışması gösterilebilir. (Tabi daha önce kullanılmamış ve sistemden silinmiş bir dosyaya ihtiyaç duymazsa.)

Bu özelliği yanlışlıkla sildiğimiz dosyaları kurtarmak için de kullanabiliriz. Örnek üzerinden gitmek gerekirse, firefox ile bir dosyayı upload etmekte olduğumuzu ve işlem bitmeden dosyayı yanlışlıkla sildiğimizi düşünelim.

Bu durumda dosyayı kurtarmak için önce firefox’un pid numarasını öğreniyoruz.

~$ pidof firefox
7945

Ardından firefox’un kullandığı dosyaların listesinden silinen dosyaları buluyoruz.

~$ lsof -p 7945 | grep deleted
firefox 7945 username    2w   REG        8,6   153447  1531906 /home/username/.xsession-errors (deleted)

Aradığımız dosyanın satırında dördüncü sütunda (FD sütununda) yazan değeri not ediyoruz. (Örnek satırdaki 2w değeri)

Son olarak elimizdeki iki bilgiyi kullanarak /proc dizini altında pid numarası ile oluşturulmuş dizin içindeki fd dizininden dosyamızı geri kopyalıyoruz. lsof çıktısındaki değer fd dizini içinde hangi dosyayı kopyalamamız gerektiğini gösteriyor. Aşağıdaki komutla dosyamızı sisteme geri kopyalıyoruz. Dosya adını orijinali ile aynı ya da farklı seçebilirsiniz.

~$ cp /proc/7945/fd/2 /home/username/kurtarilan_dosya

Post a Comment

You must be logged in to post a comment.