Πώς να ανακτήσετε τα διαγραμμένα αρχεία στο Linux με το testdisk

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

rm: Σύντομο για τις τύψεις;

Είναι πολύ εύκολο να χρησιμοποιήσετε την εντολή rm και να δείτε τον εαυτό σας να κοιτάζει ένα παράθυρο τερματικού με μια βαθύτερη αίσθηση λύπης. Ένα μικρό λάθος με τους χαρακτήρες μπαλαντέρ, και μπορείτε να εξαφανίσετε πολλά περισσότερα από όσα είχατε σκοπό.

Το προεπιλεγμένο σύστημα αρχείων Linux, το ext4 χρησιμοποιεί inodes για τη διατήρηση δεδομένων για κάθε αρχείο και έναν πίνακα inode για παρακολούθηση των inodes. Το inode περιέχει μεταδεδομένα σχετικά με το αρχείο, όπως το όνομά του, ποιος το κατέχει, ποια είναι τα δικαιώματα και ούτω καθεξής.

Περιέχει επίσης σημεία εισόδου σε σκληρούς συνδέσμους που οδηγούν στο αρχείο. Κάθε αρχείο έχει τουλάχιστον έναν σκληρό σύνδεσμο. Κάθε φορά που δημιουργείτε έναν νέο σκληρό σύνδεσμο, ο αριθμός των σκληρών συνδέσμων αυξάνεται κατά ένα. Κάθε φορά που αφαιρείτε έναν σκληρό σύνδεσμο, ο αριθμός των σκληρών συνδέσμων στο inode μειώνεται κατά ένα.

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

Ωστόσο, τα δεδομένα που αποτελούσαν τα περιεχόμενα του αρχείου εξακολουθούν να υπάρχουν στον σκληρό δίσκο. Ωστόσο, εάν μπορούσατε να επιδιορθώσετε το inode ώστε να περιέχει τις σωστές πληροφορίες, το αρχείο θα αποκατασταθεί. Φυσικά, αυτό θα λειτουργούσε μόνο εάν τα δεδομένα που απαρτίζουν το αρχείο στον σκληρό δίσκο παραμένουν άθικτα και δεν αντικαθίστανται.

Εναλλακτικά, θα μπορούσατε να δημιουργήσετε ένα νέο inode, να αντιγράψετε τα σωζόμενα δεδομένα από το παλιό inode και, στη συνέχεια, να αντικαταστήσετε τα bit που λείπουν.

Αυτές είναι μη τετριμμένες δραστηριότητες. Συνήθως, όταν διαγράφετε ένα αρχείο κατά λάθος, είναι στη χειρότερη δυνατή στιγμή. Είναι πάντα όταν χρειάζεστε αυτό το αρχείο, και το χρειάζεστε τώρα. Δεν έχετε χρόνο να τα βγάλετε κάτω και να λερωθείτε με τους συντάκτες τομέων και άλλα βοηθητικά προγράμματα. Επιπλέον, εάν είναι ένα αρχείο που μόλις δημιουργήσατε, πιθανότατα δεν έχει δημιουργηθεί ακόμα αντίγραφο ασφαλείας, επομένως ούτε αυτά θα σας βοηθήσουν.

  Πώς να χωρίσετε με μη αυτόματο τρόπο έναν σκληρό δίσκο από τη γραμμή εντολών στο Linux

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

Εγκατάσταση δοκιμαστικού δίσκου

Για να εγκαταστήσετε το testdisk στο Ubuntu, χρησιμοποιήστε αυτήν την εντολή:

sudo apt-get install testdisk

Στο Fedora, πρέπει να πληκτρολογήσετε:

sudo dnf install testdisk

Στο Manjaro, πρέπει να χρησιμοποιήσετε το pacman:

sudo pacman -Sy testdisk

Χρήση δοκιμαστικού δίσκου

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

Πληκτρολογούμε τα εξής για να δημιουργήσουμε έναν κατάλογο που ονομάζεται “restored” για τα αρχεία που έχουμε επαναφέρει:

mkdir restored

Πληκτρολογούμε τα εξής για να μεταβούμε στον νέο κατάλογο και να ξεκινήσουμε το testdisk από εκεί:

cd restored/

Πρέπει να χρησιμοποιήσουμε το sudo με το testdisk, οπότε πληκτρολογούμε τα εξής:

sudo testdisk

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

Μπορείτε απλώς να πατήσετε Enter για να αποδεχτείτε την επισημασμένη επιλογή και να δημιουργήσετε ένα νέο αρχείο καταγραφής. Θα δημιουργηθεί στον κατάλογο από τον οποίο ξεκινήσατε το testdisk. Όταν κάνετε την επιλογή σας, ο δοκιμαστικός δίσκος ρωτά ποιος σκληρός δίσκος περιέχει το σύστημα αρχείων στο οποίο θέλετε να εργαστείτε.

Παραθέτει τους σκληρούς δίσκους που μπορεί να βρει, καθώς και τα αρχεία squashfs “/dev/loop”. Θα υπάρχει ένα από αυτά για κάθε εφαρμογή που έχετε εγκαταστήσει από ένα snap. Είναι μόνο για ανάγνωση, επομένως δεν θα έπρεπε να έχετε καταφέρει να διαγράψετε τίποτα από αυτά τα συστήματα αρχείων.

  Πώς να χρησιμοποιήσετε άνετα έναν υπολογιστή Linux τη νύχτα με το Desktop Dimmer

Υπάρχει μόνο ένας φυσικός σκληρός δίσκος σε αυτόν τον δοκιμαστικό υπολογιστή, επομένως χρησιμοποιήσαμε το κάτω βέλος για να επισημάνουμε την επιλογή “/dev/sda”. Στη συνέχεια χρησιμοποιήσαμε το δεξί βέλος για να επιλέξουμε «Συνέχεια» και μετά πατήσαμε Enter.

Το testdisk πρέπει επίσης να γνωρίζει τον τύπο διαμερίσματος. Παρουσιάζει ένα μενού επιλογών, μαζί με τον τύπο του διαμερίσματος που εντοπίζεται αυτόματα στο κάτω μέρος.

Εκτός αν έχετε καλό λόγο να μην το κάνετε, επισημάνετε τον τύπο του διαμερίσματος που ανιχνεύεται αυτόματα και, στη συνέχεια, πατήστε Enter.

Στο μενού λειτουργιών που εμφανίζεται, επισημάνετε το “Advanced” και, στη συνέχεια, πατήστε Enter.

Θα εμφανιστεί το μενού επιλογής διαμερισμάτων.

Τα αρχεία που αναζητούμε βρίσκονται στο διαμέρισμα του συστήματος αρχείων Linux. Έχουμε μόνο ένα διαμέρισμα Linux στον σκληρό μας δίσκο, αλλά μπορεί να έχετε και περισσότερα.

Επιλέξτε το διαμέρισμα στο οποίο βρίσκονταν τα αρχεία σας, χρησιμοποιήστε τα πλήκτρα αριστερού και δεξιού βέλους για να επιλέξετε “List” και, στη συνέχεια, πατήστε Enter. Θα εμφανιστεί το μενού επιλογής αρχείου.

Χρησιμοποιήστε τα πάνω και κάτω βέλη ή τα πλήκτρα PgUp και PgDn για να περιηγηθείτε στη λίστα αρχείων και καταλόγων. Πατήστε το δεξί βέλος ή το Enter για να εισέλθετε σε έναν κατάλογο και το αριστερό βέλος ή το Esc για έξοδο από έναν κατάλογο.

Αναζητούμε αρχεία που ανήκαν στον dave. Τα αρχεία για όλους τους λογαριασμούς χρηστών βρίσκονται στον κατάλογο “Home”. Έτσι, επισημαίνουμε τον κατάλογο “Home” και, στη συνέχεια, μπορούμε να πατήσουμε είτε το δεξί βέλος είτε το Enter για να εισέλθουμε σε αυτόν τον κατάλογο.

Στη συνέχεια, όλοι οι λογαριασμοί χρηστών παρατίθενται για εμάς. Επισημαίνουμε το dave και, στη συνέχεια, πατάμε το δεξί βέλος ή Enter για να εισέλθουμε σε αυτόν τον κατάλογο.

Μπορούμε τώρα να δούμε τα αρχεία που ανήκουν στον λογαριασμό dave. Οι καταχωρήσεις με κόκκινο χρώμα έχουν διαγραφεί. Περιηγούμαστε στα αρχεία και τους καταλόγους μέχρι να εντοπίσουμε τα αρχεία που θέλουμε να ανακτήσουμε.

Για να ανακτήσετε ένα αρχείο, απλώς επισημάνετε το και, στη συνέχεια, πατήστε c (πεζά).

Η οθόνη αλλάζει και σας λέει να επιλέξετε έναν προορισμό για το ανακτημένο αρχείο. Επειδή δημιουργήσαμε έναν κατάλογο που ονομάζεται “Restored” και ξεκινήσαμε το testdisk από αυτόν, η πρώτη καταχώρηση στη λίστα (.) είναι αυτός ο κατάλογος. Για να ανακτήσουμε αυτό το διαγραμμένο αρχείο σε αυτόν τον κατάλογο, πατάμε C (κεφαλαία).

  Πώς να χρησιμοποιήσετε το Gkill για να σταματήσετε προβληματικά προγράμματα που εκτελούνται σε Linux

Αφού το κάνετε αυτό, επιστρέφετε στην οθόνη επιλογής αρχείου. Εάν θέλετε να ανακτήσετε περισσότερα αρχεία, απλώς επαναλάβετε τη διαδικασία. Επισημάνετε ένα διαγραμμένο αρχείο, πατήστε c (πεζά) για να το αντιγράψετε και, στη συνέχεια, πατήστε C (κεφαλαία) για να το ανακτήσετε.

Εργασία με αρχεία που έχουν αποκατασταθεί

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

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

Μπορείτε να πληκτρολογήσετε τα ακόλουθα για να δείτε τα περιεχόμενα του καταλόγου “Επαναφορά”:

ls

Εάν ζητήσατε από το testdisk να δημιουργήσει ένα αρχείο καταγραφής, θα βρίσκεται στον κατάλογο “Επαναφορά”. Επειδή τα ανακτημένα αρχεία μας βρίσκονταν στο “/home/dave”, έχουν αντιγραφεί στον κατάλογό μας “Restored”, που είναι ένθετα σε καταλόγους με το ίδιο όνομα.

Μπορούμε να αλλάξουμε στον αντιγραμμένο κατάλογο «dave» χρησιμοποιώντας cd. Βεβαιωθείτε ότι δεν έχετε συμπεριλάβει μια καθετή προς τα εμπρός (/) στη διαδρομή—θέλετε να αλλάξετε στο τοπικό “home” και όχι στο σύστημα “/home”.

Πληκτρολογούμε τα εξής:

cd home/dave

Τα ανακτημένα αρχεία βρίσκονται σε αυτόν τον κατάλογο, οπότε πληκτρολογούμε:

ls

Ας ρίξουμε μια άλλη ματιά στα ανακτημένα αρχεία χρησιμοποιώντας την επιλογή -l (μεγάλη λίστα):

ls -l

Επειδή χρησιμοποιήσαμε το sudo για την εκκίνηση του testdisk, τα ανακτημένα αρχεία έχουν αποκατασταθεί με το “root” ως κάτοχο. Μπορούμε να αλλάξουμε τον ιδιοκτήτη σε “dave” χρησιμοποιώντας chown:

sudo chown dave.dave *

Πληκτρολογούμε τα εξής για να βεβαιωθούμε ότι έχει αποκατασταθεί η σωστή ιδιοκτησία:

ls -l

testdisk: Code for Relief

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

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