Θυμάμαι πριν κάποια χρόνια... Νόμιζα ότι είχα καλύψει όλα τα ενδεχόμενα με backups και κανόνες, μέχρι που έκανα το χειρότερο λάθος που μπορεί να κάνει ένας χρήστης Linux: διέγραψα κατά λάθος έναν ολόκληρο φάκελο με 40GB δεδομένων.

Κάτι που σε πολλούς από εμάς έχει συμβεί· να χάσουν δεδομένα. Μια στιγμή απροσεξίας στη γραμμή εντολών (rm -rf), ένα λάθος στο dd, μια λανθασμένη επιλογή σε κάποιο εργαλείο διαχείρισης δίσκων ή λάθος σε διαδικασία εγκατάστασης διανομής και η ζημιά είναι ακαριαία. Το πρώτο συναίσθημα είναι πανικός. Το δεύτερο, αναζήτηση λύσης.
Δεν ήθελα να καταφύγω σε εμπορικό λογισμικό Windows, ούτε να πληρώσω για υπηρεσίες ανάκτησης. Ψάχνοντας εναλλακτικές, έμεινα στο PhotoRec (μέρος του πακέτου TestDisk), το οποίο έχει διακριθεί για την αξιοπιστία του.
Αυτό το άρθρο δεν είναι απλώς μια θεωρητική οδηγία. Είναι το χρονικό της ανάκτησης των 40GB μου, βήμα-βήμα και με όσα έμαθα στην πράξη.
☞ 1. Τι είναι το PhotoRec και γιατί ξεχωρίζει
Το PhotoRec (επίσης γνωστό ως "Photo Recovery") είναι ένα εργαλείο ανοιχτού κώδικα (FOSS) για την ανάκτηση χαμένων αρχείων, γραμμένο από τον Christophe Grenier, μηχανικό από το Παρίσι, ο οποίος ξεκίνησε το project το 1998 ως ατομική πρωτοβουλία και παραμένει ο κύριος developer μέχρι σήμερα, με τη βοήθεια μιας μικρής ομάδας εθελοντών. Δεν βασίζεται στο αρχείο συστήματος (filesystem) όπως το ext4 ή το NTFS, αλλά σαρώνει τον δίσκο σε επίπεδο raw data, αναζητώντας τα "signatures" (υπογραφές) των αρχείων, μια τεχνική γνωστή ως file carving.
Παρότι το άρθρο γράφεται από τη σκοπιά ενός χρήστη Linux, αξίζει να αναφερθεί: το PhotoRec δεν είναι αποκλειστικά εργαλείο Linux. Είναι πλήρως cross-platform, με builds για Windows, macOS, και ακόμα και BSD/Solaris συστήματα. Μπορεί μάλιστα να τρέξει και ως φορητή εφαρμογή από USB stick, χωρίς καν να χρειάζεται εγκατάσταση, χρήσιμο αν βοηθάς κάποιον σε διαφορετικό μηχάνημα.
Μια πολύ σημαντική διευκρίνιση, ειδικά αν σκέφτεσαι να το χρησιμοποιήσεις σε SSD αντί για HDD: τεχνικά, το PhotoRec τρέχει κανονικά σε SSD, σαν οποιαδήποτε άλλη συσκευή αποθήκευσης. Το πρόβλημα δεν είναι το εργαλείο, είναι η ίδια η φύση του SSD. Όταν διαγράφεις ένα αρχείο σε SSD με ενεργό TRIM (που είναι η προεπιλογή σε κάθε σύγχρονο σύστημα), το λειτουργικό στέλνει εντολή στον δίσκο να «καθαρίσει» φυσικά τα αντίστοιχα blocks, κάτι που συμβαίνει μέσα σε δευτερόλεπτα έως λίγα λεπτά. Σε HDD, τα δεδομένα απλά μένουν εκεί μέχρι να γραφτεί κάτι νέο από πάνω τους, γι' αυτό και η ανάκτηση με file carving δουλεύει τόσο καλά. Σε SSD με TRIM, μπορεί απλά να μην υπάρχει πια τίποτα να βρεθεί, ανεξάρτητα από το πόσο καλό είναι το εργαλείο. Αν χάσεις δεδομένα σε SSD, η ταχύτητα αντίδρασης μετράει ακόμα περισσότερο απ' ό,τι σε HDD, καθώς κάθε λεπτό που περνάει μειώνει τις πιθανότητες.
☞ Ανοιχτός Κώδικας, χωρίς εταιρεία από πίσω: Είναι μέρος του πακέτου TestDisk, υπό άδεια GPLv2 (ή νεότερη). Ο κώδικας είναι διαθέσιμος στο GitHub (cgsecurity/testdisk). Το «CGSecurity» δεν είναι εταιρεία, είναι απλά ο τομέας/brand κάτω από το οποίο ο Grenier δημοσιεύει το έργο του. Μια μικρή λεπτομέρεια για την ορθότητα των γεγραμμένων:
στην επίσημη σελίδα λήψης υπάρχει σύσταση προς το Disk Drill, μια εμπορική, proprietary εφαρμογή με γραφικό περιβάλλον, ως συνεργάτης για όσους θέλουν κάτι πιο εύχρηστο. Αυτό είναι μια εμπορική σύσταση, όχι ιδιοκτησία· το ίδιο το PhotoRec παραμένει ανεξάρτητο και ελεύθερο.
☞ Διαφάνεια: Δεν κρύβει τι κάνει. Σου δείχνει ακριβώς τι σαρώνει και τι βρίσκει.
☞ Πολλαπλά Συστήματα Αρχείων: Λειτουργεί σε ext2/ext3/ext4, NTFS, FAT, HFS+, και πολλά άλλα.
☞ Εύρος αναγνώρισης: Αναγνωρίζει πάνω από 480 τύπους αρχείων, κατανεμημένους σε περίπου 300 οικογένειες μορφών, από JPEG και PDF μέχρι αρχεία Office και ZIP.
☞ 2. Η Κρίσιμη Προειδοποίηση
Πριν κάνεις οτιδήποτε, αυτό είναι το πιο σημαντικό σημείο:
ΜΗΝ ΓΡΑΨΕΙΣ ΤΙΠΟΤΑ ΣΤΟΝ ΔΙΣΚΟ ΠΟΥ ΕΧΟΥΝ ΔΙΑΓΡΑΦΕΙ ΤΑ ΑΡΧΕΙΑ!
Αν διαγράψεις αρχεία από τον δίσκο /dev/sda1, μην εγκαταστήσεις το PhotoRec εκεί, μην αποθηκεύσεις τα recovered αρχεία εκεί.
- Λύση: Εγκατάστησε το εργαλείο σε άλλο δίσκο ή σε RAM disk.
- Αποθήκευση: Ο προορισμός των recovered αρχείων πρέπει να είναι σε διαφορετικό φυσικό δίσκο (π.χ. ένα εξωτερικό USB).
Αν γράψεις στον ίδιο δίσκο, μπορεί να πατήσεις (overwrite) τα διαγραμμένα δεδομένα και τότε η ανάκτηση γίνεται αδύνατη. Τα 40GB μου θα ήταν χαμένα οριστικά αν είχα προσπαθήσει να τρέξω το εργαλείο από τον ίδιο δίσκο.
☞ 3. Εγκατάσταση και Προετοιμασία στο Ubuntu/Debian
Η διαδικασία είναι απλή, αλλά απαιτεί προσοχή στις εντολές.
Ενημέρωση πακέτων:
sudo apt update
Εγκατάσταση TestDisk (περιλαμβάνει το PhotoRec):
sudo apt install testdisk
Δημιουργία φακέλου αποθήκευσης σε ΕΞΩΤΕΡΙΚΟ δίσκο:
mkdir -p /media/external/recovered_data
(Βεβαιώσου ότι ο /media/external είναι ο εξωτερικός δίσκος σου).
☞ 4. Η Διαδικασία Ανάκτησης (Βήμα-Βήμα)
Το PhotoRec έχει ένα interface βασισμένο σε κείμενο (TUI), που μπορεί να φαίνεται vintage, αλλά είναι εξαιρετικά ισχυρό.
Εκτέλεση με root δικαιώματα:
sudo photorec
Επιλογή Δίσκου:
Θα δεις μια λίστα με τους δίσκους σου (π.χ. /dev/sda, /dev/sdb)
Επίλεξε τον δίσκο από τον οποίο χάθηκαν τα αρχεία (χρησιμοποίησε τα βελάκια και Enter).
Επιλογή Πίνακα Διαμερισμάτων (Partition Table):
Συνήθως επιλέγουμε [Intel] για PC.
Επιλογή Διαμερίσματος (Partition):
Επίλεξε το διαμέρισμα όπου ήταν τα αρχεία (π.χ. [ext4]).
Αν τα αρχεία διαγράφηκαν πρόσφατα, επίλεξε [Free] (για σάρωση μόνο του ελεύθερου χώρου). Αν θέλεις να σαρώσεις όλο το διαμέρισμα, επίλεξε [Whole].
Επιλογή Τύπου Αρχείων (File Opt):
Πατάς [File Opt].
Πατάς s για να τα αποεπιλέξεις όλα.
Επιλέγεις μόνο όσα χρειάζεσαι (π.χ. jpg, png, pdf, docx).
Σημείωση: Αν επιλέξεις τα πάντα, η σάρωση θα πάρει πολύ περισσότερο χρόνο και θα γεμίσει τον φάκελο με άχρηστα αρχεία.
Επιλογή Προορισμού:
Πηγαίνεις στο [Browse] και επιλέγεις τον φάκελο που δημιουργήθηκε νωρίτερα (/media/external/recovered_data).
Έναρξη Σάρωσης:
Πατάς [Search] και μετά [C] για επιβεβαίωση.
Το PhotoRec θα ξεκινήσει να σαρώνει. Θα δεις τον αριθμό των αρχείων να αυξάνεται.
☞ 5. Σύγκριση: TestDisk vs PhotoRec
Πολλοί μπερδεύουν τα δύο εργαλεία. Ας τα ξεκαθαρίσουμε:
| Χαρακτηριστικό | TestDisk | PhotoRec |
| Κύρια Λειτουργία | Ανάκτηση διαμερισμάτων (partitions) και boot records. | Ανάκτηση αρχείων (photos, docs, videos) από raw data. |
| Επίπεδο Λειτουργίας | Δομή πίνακα διαμερισμάτων. | Raw data signatures (υπογραφές αρχείων). |
| Όνομα Αρχείου | Συχνά διατηρεί το όνομα (αν βρει τη δομή). | Χάνει το αρχικό όνομα (ονομάζει f001.jpg, f002.doc). |
| Χρήση | Όταν χαθεί ολόκληρο το partition. | Όταν διαγραφούν αρχεία ή μορφοποιηθεί ο δίσκος. |
| Περίπτωση Χρήσης | "Δεν είναι ορατό το διαμέρισμα μου". | "Διαγραφή αρχείων, αλλά το διαμέρισμα υπάρχει". |
☞ 6. Μπορεί να ανακτήσει τα πάντα;
Τεχνικά ναι, πρακτικά εξαρτάται.
Και τι πετυχαίνει:
- Αν τα αρχεία δεν έχουν γίνει overwrite από νέα δεδομένα, το PhotoRec τα βρίσκει σχεδόν πάντα.
- Στα 40GB που έχασα, κατάφερα να ανακτήσω το 95% των αρχείων.
- Ακόμα και fragmented αρχεία μπορούν να ανακτηθούν σε αρκετές περιπτώσεις: το εργαλείο ελέγχει τα προηγούμενα data blocks όταν εντοπίζει ημιτελή ανάκτηση και προσπαθεί ξανά.
Τι δεν πετυχαίνει:
- Τα ονόματα των αρχείων: Επειδή σαρώνει raw data, τα αρχεία θα έχουν ονόματα όπως
f12345.jpg. Θα χρειαστεί να ταξινομηθούν χειροκίνητα ή με scripts.
- Overwritten δεδομένα: Αν γράψατε κάτι στον δίσκο μετά τη διαγραφή, τα συγκεκριμένα τμήματα είναι χαμένα για πάντα.
- Fragmented αρχεία: Αν ένα μεγάλο αρχείο είναι κομμένο σε πολλά μη γειτονικά κομμάτια, μπορεί να μην ανακτηθεί σωστά.
- Δεδομένα σε SSD μετά από TRIM: Όπως εξηγήσαμε παραπάνω, αν το TRIM έχει ήδη τρέξει, τα δεδομένα μπορεί απλά να μην υπάρχουν πια φυσικά στον δίσκο.
Συνοψίζοντας:
Αν το κριτήριο είναι η δωρεάν και ανοιχτή τεχνολογία, το PhotoRec κερδίζει κατά κράτος. Αν το κριτήριο είναι η ακρίβεια ονομάτων και η ευκολία, τα εμπορικά εργαλεία μπορεί να έχουν το πάνω χέρι, αλλά κοστίζουν.
☞ 7. Συμπερασματικά
Η εμπειρία με τα 40GB μου έδειξε δύο πράγματα:
- Το backup είναι ο μόνος σίγουρος τρόπος προστασίας. Η ανάκτηση είναι πάντα ένα "επείγον μέτρο", όχι λύση.
- Το PhotoRec είναι ένα εργαλείο που πρέπει να υπάρχει σε κάθε toolkit Linux. Είναι ισχυρό, δωρεάν και σωτήριο όταν τα πράγματα πάνε στραβά.
Εκεί όπου τα εμπορικά εργαλεία υπόσχονται miracles, το PhotoRec δίνει πραγματικά αποτελέσματα, αρκεί να το χρησιμοποιήσεις σωστά και να μην κάνεις το λάθος του "overwrite".
Πηγές & Τεχνικές Αναφορές:
- Επίσημη Ιστοσελίδα CGSecurity: cgsecurity.org
- Εγχειρίδιο TestDisk: testdisk_doc
- PhotoRec FAQ: cgsecurity.org/wiki/PhotoRec_FAQ
- Πηγαίος Κώδικας στο GitHub: github.com/cgsecurity/testdisk
- Ομάδα του project: cgsecurity.org/wiki/TestDisk_Team
- Οδηγός Ubuntu: ubuntu.com