Aug 29, 2012

Undelete στο Linux

Αν και η τήρηση συχνών αντιγράφων ασφαλείας (backup) είναι η καλύτερη πρακτική, τι συμβαίνει όταν βρισκόμαστε σε ένα γραφείο, μακριά από τη συσκευή μαζικής αποθήκευσης των backups μας και μόλις έχουμε πληκτρολογήσει rm -rf σε ένα σημαντικό αρχείο ή κατάλογο μας;

Σε μια τέτοια θέση βρέθηκα πολύ πρόσφατα διαγράφοντας έναν κατάλογο μιας μηχανής του VirtualBox. Το σύστημα αρχείων ήταν βασισμένο στο ext4 και βρισκόταν στον δεύτερο δίσκο (όχι boot) του laptop μου. Για καλή μου τύχη υπάρχει ένα φοβερό πρόγραμμα ονόματι extundelete που με βοήθησε να ανακτήσω τα σβησμένα αρχεία μου. Αρχικά, και για λόγους ασφάλειας, έκανα unmount το partition στο οποίο έγινε η διαγραφή. Σε περίπτωση που επρόκειτο για το root partition θα έπρεπε να σταματήσω το σύστημα και να το επανεκκινήσω με ένα usb stick ενός live distribution, που έτσι κι αλλιώς κάθε επαγγελματίας πρέπει να έχει μαζί του, και να ακολουθήσω τα μετέπειτα βήματα. Έπειτα, κατέβασα το extundelete στο Ubuntu μου (10.10) Επειδή το πρόγραμμα διατίθεται σε μορφή πηγαίου κώδικα, βεβαιωθείτε πως ήδη έχετε εγκατεστημένα τα προαπαιτούμενα για το Ubuntu (αν όχι ακολουθεί η γραμμή εγκατάστασης):


sudo apt-get install build-essential e2fslibs e2fslibs-dev


Έπειτα από αυτό, δεν έχουμε παρά να χτίσουμε το executable με τον γνωστό συνδυασμό στον κατάλογο που έχουμε κάνει unzip το extundelete:


./configure && make


Στον κατάλογο src που θα δημιουργηθεί θα βρούμε το πρόγραμμα extundelete. Γνωρίζοντας το όνομα του καταλόγου που είχα διαγράψει, πληκτρολόγησα:


./extundelete --restore-directory <διαδρομή διαεγραμμένου καταλόγου>


πχ,


./extundelete /dev/sdb1 --restore-directory /opt/myfiles


Κατά αναλογία για την περίπτωση ενός αρχείου:


./extundelete /dev/sdb1 --restore-file /opt/myfile.odt

Το extundelete θα ξεκινήσει τότε την προσπάθεια ανάκτησης των αρχείων σας. Σημειώστε πως τα ανακτημένα αρχεία θα καταλήξουν στον κατάλογο RESTORED FILES από εκεί που καλέσατε την εντολή, οπότε βεβαιωθείτε πως έχετε αρκετό χώρο σε αυτό το partition.

No comments: