Επίλυση προβλημάτων
Επισκόπηση:
Όταν ένα λειτουργικό σύστημα σταματήσει να ανταποκρίνεται, για παράδειγμα, λόγω μίας δυσλειτουργίας στην παροχή ενέργειας, λανθασμένου τερματισμού, ή λόγω κάποιου άλλου γεγονότος, τα προσαρτημένα συστήματα αρχείων ενδέχεται να φθαρούν. Γενικότερα, η φθορά στα συστήματα αρχείων σημαίνει πως το superblock (το κομμάτι του συστήματος αρχείων το οποίο περιέχει πληροφορίες για το ίδιο το σύστημα αρχείων, όπως ο τύπος, το μέγεθος, τα δεδομένα, ο ελεύθερος χώρος και άλλα) δεν έχει ενημερωθεί και περιέχει λανθασμένες πληροφορίες.
Ορολογία:
- fsck: Το εργαλείο "fsck" χρησιμοποιείται για τον έλεγχο και την επιδιόρθωση ατελειών στα συστήματα αρχείων. Μπορεί να χρησιμοποιηθεί χειροκίνητα, αλλά μπορεί να εκτελεστεί και αυτόματα αν είναι ενεργοποιημένη η ανίχνευση σφαλμάτων στα συστήματα αρχείων κατά την εκκίνηση του υπολογιστή, ή αν έχει ρυθμιστεί στο "fstab". Για να γίνει χρήση αυτού το εργαλείου πρέπει το σύστημα αρχείων στο οποίο θα χρησιμοποιηθεί να μην είναι προσαρτημένο.
- dd: Η εντολή "dd" χρησιμοποιείται για την αντιγραφή και προεραιτικά για την μετατροπή δεδομένων. Αν γίνει λανθασμένη χρήση της, μπορεί να προκαλέσει απώλεια δεδομένων.
Σενάριο:
Για την προσομοίωση κάποιας δυσλειτουργίας στην παροχή ενέργειας όπου προκαλείται φθορά του συστήματος αρχείων, μπορείτε να χρησιμοποιήσετε την εντολή "dd" προκειμένο να γράψετε τυχαία δεδομένα σε ένα άδειο σύστημα αρχείων και εν συνεχεία να χρησιμοποιήσετε την εντολή "fsck" για να επιδιορθώσετε το σύστημα αρχείων.
ΠΡΟΣΟΧΗ: Μην το εφαρμόσετε σε κάποιο σύστημα αρχείων που χρησιμοποιείτε, διότι μπορεί να προκληθεί απώλεια δεδομένων!
Δοκιμάστε το:
Χρησιμοποιήστε την εντολή "dd" για να αντιγράψετε τυχαία δεδομένα σε ένα άδειο σύστημα αρχείων το οποίο θα φθαρεί εσκεμμένα.
dd if=/dev/zero count=1 bs=4096 seek=0 of=/dev/PARTITION
Όπου αντικαθιστάτε το "PARTITION" με το σύστημα αρχείων στο οποίο θα εφαρμόσετε το εν λόγω σενάριο. ΜΗΝ εφαρμόσετε αυτή τη διαδικασία σε κάποιο σύστημα αρχείων που περιέχει σημαντικά δεδομένα, διότι θα χαθούν.
Ελέγξτε και επιδιορθώστε το φθαρμένο σύστημα αρχείων με τη χρήση της εντολής "fsck":
fsck /dev/PARTITION
Επιβεβαιώστε με την χρήση της εντολής "fsck" πως το σύστημα αρχείων έχει επιδιορθωθεί:
fsck /dev/PARTITION
Επαληθεύστε πραγματοποιώντας έναν εξαναγκασμένο έλεγχο, με την χρήση της εντολής "fsck" και την παράμετρο "-f":
fsck -f /dev/PARTITION
Χρησιμοποιείστε την εντολή "dd" για να προκαλέσετε ξανά φθορά στο σύστημα αρχείων:
dd if=/dev/zero count=1 bs=4096 seek=0 of=/dev/PARTITION
Ελέγξτε και επιδιορθώστε αυτόματα το φθαρμένο σύστημα αρχείων με την χρήση της εντολής "fsck" και την παράμετρο "-y":
fsck -y /dev/PARTITION
Μην χρησιμοποιείτε την εντολή "fsck" σε προσαρτημένο σύστημα αρχείων.
Απαντήσεις:
Η έξοδος της εντολής "dd" θα είναι:
1+0 records in 1+0 records out 4096 bytes (4.1 kB) copied, 0.00825589 s, 496 kB/s
Η έξοδος της εντολής "fsck" θα είναι:
fsck from util-linux 2.23.2 e2fsck 1.42.9 (28-Dec-2013) ext2fs_open2: Bad magic number in super-block fsck.ext2: Superblock invalid, trying backup blocks... /dev/md0 was not cleanly unmounted, check forced. Resize inode not valid. Recreate
? yes Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong for group #0 (4883, counted=4884). Fix ? yes Free blocks count wrong (87432, counted=87433). Fix ? yes /dev/md0: ***** FILE SYSTEM WAS MODIFIED ***** /dev/md0: 11/24096 files (9.1% non-contiguous), 8695/96128 blocks Η έξοδος της εντολής "fsck" θα είναι:
fsck from util-linux 2.23.2 e2fsck 1.42.9 (28-Dec-2013) /dev/md0: clean, 11/24096 files, 8695/96128 blocks
Η έξοδος της εντολής "fsck" θα είναι:
[root@localhost thildred]# fsck -f /dev/md0 fsck from util-linux 2.23.2 e2fsck 1.42.9 (28-Dec-2013) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/md0: 11/24096 files (9.1% non-contiguous), 8695/96128 blocks
- Η έξοδος της εντολής "dd" θα είναι η ίδια όπως στο πρώτο βήμα.
Η έξοδος της εντολής "fsck" θα είναι:
fsck from util-linux 2.23.2 e2fsck 1.42.9 (28-Dec-2013) ext2fs_open2: Bad magic number in super-block fsck.ext2: Superblock invalid, trying backup blocks... /dev/md0 was not cleanly unmounted, check forced. Resize inode not valid. Recreate? yes Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Free blocks count wrong for group #0 (4883, counted=4884). Fix? yes Free blocks count wrong (87432, counted=87433). Fix? yes /dev/md0: ***** FILE SYSTEM WAS MODIFIED ***** /dev/md0: 11/24096 files (9.1% non-contiguous), 8695/96128 blocks