Επιδιόρθωση συστημάτων αρχείων

Εικόνα: markos
Submitted by markos on Δευ, 05/03/2007 - 03:08

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

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

Από την άλλη, οι λογικές βλάβες αφορούν κάποιες λάθος πληροφορίες που έχουν αποθηκευτεί στο σύστημα αρχείων και προκαλούν σύγχυση στον υπολογιστή. Για παράδειγμα, αν ο υπολογιστής έκλεισε τη στιγμή που γινόταν εγγραφή ενός αρχείου, όταν επανεκκινήσει, το αρχείο θα έχει μείνει σε μια αντιφατική κατάσταση. Ορισμένα από τα δεδομένα ίσως να έχουν προλάβει να εγγραφούν αλλά όχι όλα. Πιθανόν να έχουν δεσμευτεί πληροφοριακοί κόμβοι (i-nodes) για το αρχείο οι οποίοι να είναι κενοί ή να ανήκουν σε κάποιο άλλο αρχείο. Άλλωστε, μπορεί να έχει γίνει κάποια λάθος κίνηση ακόμη και από τον ίδιο το χρήστη, όπως π.χ. να έχει γράψει απευθείας δεδομένα στο σημείο επαφής του διαμερίσματος (dd if=/dev/random of=/dev/sda1). Αυτά και άλλα προβλήματα είναι πολύ εύκολο να συμβούν, ειδικά σε συστήματα που έχουν πρόβλημα με τη σταθερή παροχή ρεύματος ή απρόσεχτους χρήστες!

Ευτυχώς, τα περισσότερα από τα προβλήματα αυτά μπορούν να επιλυθούν με τη χρήση λογισμικού ελεγχου και επιδιόρθωσης (filesystem check & repair software). Κάθε είδος συστήματος αρχείων έχει δικό του τέτοιο λογισμικό το οποίο θα πρέπει να χρησιμοποιείται σε κάθε πρόβλημα.

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

Ωστόσο, σε μερικές περιπτώσεις, το πρόβλημα που έχει δημιουργηθεί είναι αρκετά σοβαρό και θα πρέπει να υπάρξει παρέμβαση χρήστη (θα εμφανισθεί το μήνυμα “user intervention required”). Στην περίπτωση αυτή το σύστημα θα μεταβεί σε κατάσταση ανάγκης (βλ. Παράρτημα V, σελ. ). Στην περίπτωση αυτή θα πρέπει να εκτελέσετε δια χειρός το αντίστοιχο πρόγραμμα επιδιόρθωσης και να το καθοδηγήσετε κατά τη διαδικασία της επιδιόρθωσης.

Είναι ιδιαίτερα σημαντικό να χρησιμοποιήσετε το σωστό λογισμικό επιδιόρθωσης. Είναι ανώφελο να προσπαθήσετε να χρησιμοποιήσετε το λογισμικό επιδιόρθωσης του ext3 σε διαμέρισμα που φιλοξενεί NTFS σύστημα αρχείων. Οι δομές τους είναι τελείως διαφορετικές και το πιθανότερο είναι ότι το ίδιο το λογισμικό δε θα σας αφήσει να προχωρήσετε. Υπάρχει όμως περίπτωση να νομίζει ότι πρόκειται για κατεστραμμένο ext3 σύστημα αρχείων και να προχωρήσει στην επιδιόρθωση καταστρέφοντας έτσι και το NTFS. Βεβαιωθείτε ότι χρησιμοποιείτε το σωστό λογισμικό πριν προσπαθήσετε να κάνετε κάποια επιδιόρθωση δια χειρός. Ευτυχώς, κάτι τέτοιο είναι αρκετά απίθανο και σπάνια θα χρειαστεί να καλέσετε απευθείας το πρόγραμμα επιδιόρθωσης του συγκεκριμένου συστήματος αρχείων. Για τυπικά συστήματα αρχείων του Linux (ext2, ext3, reiserfs, jfs, xfs), αρκεί να καλέσετε την εντολή fsck και αυτή αναλαμβάνει να εκτελέσει το σωστό πρόγραμμα επιδιόρθωσης.

Η εντολή fsck

Όπως αναφέραμε, η εντολή αυτή καλείται αυτόματα κατά την εκκίνηση του συστήματος για τον έλεγχο των συστημάτων αρχέιων. Η ίδια η εντολή δεν πραγματοποιεί κάποιου είδους επιδιόρθωση στο σύστημα αρχείων, παρά μόνο εκτελεί το σωστό πρόγραμμα επιδιόρθωσης (συνήθως υπό το όνομα fsck.fstype όπου fstype το είδος του συστήματος αρχείων, π.χ. ext2, minix). Σε περίπτωση που θα χρειαστεί να την εκτελέσετε δια χειρός, η σύνταξή της είναι η εξής:

fsck [OPTIONS] device | dir [--] [FS-OPTIONS]

όπου device είναι το σημείο επαφής της συσκευής που φιλοξενεί το σύστημα αρχείων ή dir το όνομα του καταλόγου που λειτουργεί ως αρμός (στην περίπτωση χρήσης αρμού, θα πρέπει να υπάρχει αντίστοιχη καταχώρηση στο αρχείο /etc/fstab). Ως επιλογές αναφέρουμε τις σημαντικότερες:

Επιλογές
Λειτουργία
-t fslist
Ορίζει το είδος ή τα είδη του συστήματος αρχείων (χωρισμένα με κόμμα) που θα ελεγχθούν/επιδιορθωθούν.
-A
Ελέγχει/επιδιορθώνει όλα τα συστήματα αρχείων που είναι δηλωμένα στο αρχείο fstab.
-C
Εμφανίζει μια ράβδο προόδου (progress bar) για την διαδικασία ελέγχου/επιδιόρθωσης.
-N
Απλώς εμφανίζει τα βήματα της διαδικασίας ελέγχου/επιδιόρθωσης αλλά δεν κάνει καμία αλλαγή στο σύστημα αρχείων.
--
Μετά την επιλογή αυτή οποιαδήποτε επιλογή περνάει στο πραγματικό πρόγραμμα επιδιόρθωσης. Μερικές συνηθισμένες επιλογές που ισχύουν στα περισσότερα προγράμματα είναι οι εξής:
-a: Αυτόματη επιδιόρθωση του συστήματος αρχείων.
-r: Διαλογική επιδιόρθωση του συστήματος αρχείων.
Στην περίπτωση που θέλετε να χρησιμοποιήσετε πιο περίπλοκες επιλογές καλό είναι να καλέσετε το ίδιο το πρόγραμμα επιδιόρθωσης (π.χ. fsck.ext2) και όχι το wrapper fsck.

Το θέμα της επιδιόρθωσης ενός συστήματος σίγουρα δε σταματάει εδώ. Υπάρχουν πολλά κείμενα στο Internet αλλά και στην ίδια τη διανομή Debian, που θα σας δώσουν περισσότερες πληροφορίες. Πολύ χρήσιμες θα βρείτε και τις σελίδες οδηγιών των προγραμμάτων fsck, fsck.ext2, αλλά και τα κείμενα περιγραφής του συστήματος ext2. Άν έχετε εγκατεστημένο το πακέτο λογισμικού kernel-source-2.4.xx (όπου 2.4.xx η έκδοση του πυρήνα1), ενα καλό σημείο για να ξεκινήσετε τη μελέτη είναι:

/usr/src/kernel-source-2.4.20/Documentation/filesystems/ext2.txt

0
Your rating: None