Ανάκτηση αρχείων και εικόνων με το Photorec

dimitris | Πέμ, 10/17/2013 - 00:41 | 13'

Έκανα format στην κάρτα της μηχανής και έχασα τις φωτογραφίες μου.... Εχασα τα αρχεία από το δίσκο μου.... Και τώρα; Μην ανησυχείτε. Υπάρχει η λύση και λέγεται PhotoRec για να σώσετε φωτογραφίες αλλά και γενικότερα αρχεία με απλά βήματα

Του Δημήτρη Τομαρά

Πολλές φορές, έχει συμβεί σε πολλούς από εμάς, να διαγράψουμε φωτογραφίες ή άλλου είδους αρχέια από τον δίσκο μας, είτε από μια κάρτα μνήμης και στην συνέχεια να μετανιώσουμε για το βήμα το οποίο μόλις κάναμε. Δεν φοβόμαστε όμως γιατί υπάρχει λύση! :)

Σημαντικό: Όταν αντιληφθούμε ότι έχουμε κάνει κάποιο τέτοιο λάθος,πρέπει να σταματήσουμε την λειτουργία του αποθηκευτικού μέσου. Αν πρόκειται για usb stick, memory card κάποιας ψηφιακής μηχανής,απλά κλείνουμε την μηχανή, ώστε να μην γράψουμε νέα δεδομένα.

Η λειτουργία ενός αποθηκευτικού μέσου είτε αυτό είναι κάποιος σκληρός δίσκος, είτε είναι κάποιo memory stick είναι απλή. Όταν διαγράφουμε δεδομένα,ο χώρος «σημειώνεται» ως ελεύθερος πλέον, και είναι πολύ πιθανό να γραφούν νέα δεδομένα, πάνω στο σημείο του δίσκου που είχαμε τα παλιά μας, διεγραμμένα πια, δεδομένα.

Θα χρησιμοποιήσουμε ένα πολύ απλό, ανοικτού κώδικα εργαλείο που λέγεται PhotoRec [1]. Το εργαλείο αυτό, σε συνδυασμό με το TestDisk [2], έχει αναπτυχθεί από τον Christophe Grenier.

Τι είναι το PhotoRec

Το PhotoRec ένα πανίσχυρο εργαλείο ανάκτησης δεδομένων, που έχει σχεδιαστεί για να βρίσκει κυρίως εικόνες (JPEG, PNG, GIF, κοκ) αλλά και πολλά ακόμα είδη αρχείων, όπως βίντεο, έγγραφα γραφείου, συμπιεσμένα αρχεία ακόμα και HTML. Δείτε στη σελίδα http://goo.gl/YsGN3 τη λίστα με τα είδη αρχείων που αναγνωρίζει και μπορεί να ανακτήσει το PhotoRec.

Το ενδιαφέρον χαρακτηριστικό του προγράμματος είναι ότι το PhotoRec δεν ασχολείται ιδιαίτερα με το τι είδους είναι το σύστημα αρχείων που θα σαρώσει, αλλά ψάχνει κατευθείαν για διαγραμμένα δεδομένα. Αυτό σημαίνει μπορεί να ανακτήσει εικόνες και γενικότερα αρχεία ακόμα και σε σύστημα αρχείων που είναι κατεστραμμένο!

Για τις ανάγκες του άρθρου,θα χρησιμοποιήσουμε μία μνήμη φωτογραφικής μηχανής στην οποία θα περάσουμε το λογότυπο του περιοδικού, θα το διαγράψουμε, και θα το επαναφέρουμε ξανά στην κατάσταση στην οποία βρισκόταν πριν.

Βήμα 1: Πηγαίνουμε στην σελίδα http://goo.gl/LZ3Kr και κατεβάζουμε την stable έκδοση του προγράμματος. Μη σας παραξενεύει που η σελίδα γράφει μόνο για το test disk, μέσα στο αρχείο που θα κατεβάσετε περιέχονται και τα δύο εκτελέσιμα αρχεία. Όπως θα διαπιστώσετε είναι διαθέσιμες πολλές εκδόσεις για διάφορα λειτουργικά. Εμείς θα κατεβάσουμε εκείνη που ταιριάζει πιο πολύ στο λειτουργικό μας σύστημα.

ΠΡΟΣΟΧΗ: Θα χρειαστεί να τρέξουμε το PhotoRec από κάποιο άλλο μέσο αποθήκευσης, και όχι από το μέσο από το οποίο θέλουμε να κάνουμε ανάκτηση των δεδομένων.

Στην περίπτωση μας, αφού θέλουμε να πάρουμε τα δεδομένα από τη μνήμη, αρκεί να κατεβάσουμε το κατάλληλο αρχείο για Linux και να το εγκαταστήσουμε. Την ώρα που γράφονται αυτές τις γραμμές δεν υπάρχει κάποιο έτοιμο πακέτο RPM ή DEB. Αντίθετα προσφέρεται ένα συμπιεσμένο αρχείο που περιλαμβάνει την μεταγλωττισμένη, εκτελέσιμη μορφή των προγραμμάτων. Αν έχουμε πρόβλημα ή η διανομή μας δεν μπορεί να τρέξει τα αρχεία αυτά, μπορούμε να κατεβάσουμε το αρχείο με τον πηγαίο κώδικα των εφαρμογών για την περίπτωση που θέλουμε να κάνουμε compile σύμφωνα με την αρχιτεκτονική του συστήματός μας.

 

Βήμα 2: Στη συνέχεια, αφού έχουμε κατεβάσει το κατάλληλο αρχείο, το αποσυμπιέζουμε (εικόνα 2) μέσα στον φάκελο που κατέβηκε. Π.χ. Ο Firefox τα βάζει εξορισμού στον φάκελο /home/$USER/Downloads). Στην περίπτωση μας κατεβάσαμε το testdisk-6.13.linux26.tar.bz2.

Αποσυμπίεση από τη γραμμή εντολών:

$ tar jxfv testdisk-6.13.linux26.tar.bz2
testdisk-6.13/
testdisk-6.13/photorec.8
testdisk-6.13/README
testdisk-6.13/l/
testdisk-6.13/l/linux
testdisk-6.13/NEWS
testdisk-6.13/readme.txt
testdisk-6.13/ChangeLog
testdisk-6.13/fidentify_static
testdisk-6.13/testdisk_static
testdisk-6.13/documentation.html
testdisk-6.13/fidentify.8
testdisk-6.13/testdisk.8
testdisk-6.13/VERSION
testdisk-6.13/THANKS
testdisk-6.13/INFO
testdisk-6.13/COPYING
testdisk-6.13/AUTHORS
testdisk-6.13/photorec_static
testdisk-6.13/ico/
testdisk-6.13/ico/photorec.ico
testdisk-6.13/ico/testdisk.ico

Θα δημιουργηθεί ένας νέος φάκελος (testdisk-6.13) και μέσα σε αυτόν θα δούμε διάφορα αρχεία όπως στην εικόνα 3.

Το εκτελέσιμο που μας ενδιαφέρει να τρέξουμε είναι το photorec_static.

Τώρα ανοίγουμε ένα τερματικό στο φάκελο αυτό. Στο Ubuntu αυτό γίνεται με δεξί κλικ στο Ναυτίλο > Open In Terminal.

Αν πάμε να εκκινήσουμε σαν απλοί χρήστες το PhotoRec με την εντολή:

./photorec_static

Θα μας εμφανίσει ένα σφάλμα (εικόνα 4):

Οπότε πρέπει να αποκτήσουμε δικαιώματα root. Δίνουμε την εντολή:

sudo su
ή
su

Πληκτρολογούμε τον κωδικό και εκτελούμε ξανά το πρόγραμμα (εικόνα 5)

 

Βήμα 3: Η πρώτη οθόνη του PhotoRec μας εμφανίζει μια λίστα με όλα τα μέσα αποθήκευσης που βρίσκει (εικόνα 6). Εδώ η κάθετη μετακίνηση ανάμεσα στις επιλογές γίνεται με τα βελάκια «πάνω-κάτω» στο πληκτρολόγιο μας. Με Enter επιλέγουμε ότι θέλουμε.

Επιλέγουμε, στην περίπτωση μας, την κάρτα μνήμης στην οποία είχαμε ήδη αποθηκεύσει το λογότυπο, το κάναμε διαγραφή «κατά λάθος» και τώρα θέλουμε να επαναφέρουμε. Με τα βελάκια επιλέγουμε /dev/mmcblck0 όπως ονομάζεται η κάρτα μνήμης στο Linux και έπειτα πατάμε Proceed με Enter.

 

Βήμα 4: Στην συνέχεια, το PhotoRec θα σκανάρει την εν λόγω καρτούλα και θα μας εμφανίσει τον πίνακα με όλες τις κατατμήσεις που υπάρχουν σε αυτήν (partition table). Στην δική μας περίπτωση (εικόνα 7) βλέπουμε ότι η κάρτα μνήμης διαθέτει μόνο ένα partition FAT32.

Στο κάτω μέρος της οθόνης, εμφανίζονται επιλογές στις οποίες μετακινούμαστε με τα βελάκια «αριστερά-δεξιά». Αφού κάνουμε την επιλογή του partition, επιλέγουμε Search και πατάμε Enter.

 

Βήμα 5: Στην επόμενη οθόνη, το PhotoRec μας ζητά να επιλέξουμε τον τύπο αρχείων συστήματος στον οποίο είχαν αποθηκευτεί οι εικόνες. Συνήθως, σε ότι αφορά τις μνήμες που χρησιμοποιούμε στις φωτογραφικές μηχανές, ο τύπος είναι πάντα FAT, οπότε πηγαίνουμε στην επιλογή [Other] και πατάμε Enter (εικόνα 8).

 

Βήμα 6: Σε αυτό το βήμα, το PhotoRec μας ρωτάει αν θέλουμε να ψάξουμε στο ελεύθερο τμήμα της κατάτμησης [Free] είτε σε ολόκληρη την κατάτμηση [Whole].

Εμείς επιλέγουμε [Whole], μόνο και μόνο για να ελέγξουμε σε όλη τη μνήμη (εικόνα 9).

 

Βήμα 7: Εδώ, το PhotoRec θα μας ζητήσει να επιλέξουμε το μέσο στο οποίο θέλουμε να αποθηκευτούν τα δεδομένα τα οποία θα προκύψουν από την ανάκτηση (εικόνα 10).

Με το πάνω και κάτω βελάκι, πλοηγούμαστε στο σύστημα αρχείων. Στην περίπτωση που δεν θέλουμε να γίνουν αποθήκευση στον φάκελο από τον οποίο τρέχουμε το PhotoRec, πηγαίνουμε στην επιλογή [ .. ] η οποία μας πάει στον προηγούμενο φάκελο. Eγώ πχ επέλεξα να αποθηκευτούν στον φάκελο Desktop, στον υποφάκελο test.

Μόλις έχουμε επιλέξει τον φάκελο τον οποίο θέλουμε πατάμε “C” και ξεκινά η διαδικασία σάρωσης και ανάκτησης, όπως φαίνεται στην εικόνα 11.

 

Βήμα 8: Αν πάμε στον φάκελο στον οποίο επιλέξαμε να αποθηκευτούν τα δεδομένα τα οποία ανασύρουμε από την κάρτα μνήμης,θα δούμε ότι υπάρχει ένας φάκελος με το όνομα recup_dir.X, όπου Χ είναι ένας αύξων αριθμός που ξεκινά από το 1,μέσα στον οποίο,έχουμε μόνο read-only πρόσβαση, και περιέχει τα δεδομένα τα οποία ανακτώνται (εικόνα 12).

Για κάθε εικόνα η οποία ανασύρεται και είναι σε μια από τις υποστηριζόμενες από το πρόγραμμα και γνωστές μορφές (.jpg .png), μπορούμε να δούμε την προεπισκόπησή της και να διαπιστώσουμε τελικά ότι η εικόνα που είχαμε σβήσει τελικά βρέθηκε.

Σε ότι αφορά τον χρόνο που απαιτείται, μια βαθιά ανάλυση σε έναν σκληρό δίσκο με 40GB πήρε περίπου 11-12 ώρες. Μπορεί να ακούγεται πολύ,αλλά σίγουρα το αποτέλεσμα μας ανταμείβει. Για μια κάρτα μνήμης των 8GB πάντως δεν θα σας πάρει παραπάνω από 1 ώρα.

 

Συμβουλή

Όταν ανασύρουμε δεδομένα από δίσκο στον οποίο έχει γίνει format λόγω ιού, καλό είναι γενικά τα ελέγξουμε με κάποιο αντιικό πρόγραμμα,γιατί μαζί με τα bytes των δεδομένων που είχαμε χάσει ανασύρουμε και τα bytes του ιού.

 

Σύνδεσμοι

[1] Το Wiki του PhotoRec http://www.cgsecurity.org/wiki/PhotoRec
[2] Το Wiki του TestDisk http://www.cgsecurity.org/wiki/TestDisk

 

Λίγα λόγια για τον συντάκτη
Ο Δημήτρης είναι μέλος του Greek Fedora Community, φοιτητής Πληροφορικής στο Τμήμα Πληροφορικής και Τηλ/νιων ΕΚΠΑ

 

Δώσε αστέρια!

MO: 3.6 (ψήφοι: 5)