Επίλυση προβλημάτων


Επισκόπηση:

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

Ορολογία:

  • fsck: Το εργαλείο "fsck" χρησιμοποιείται για τον έλεγχο και την επιδιόρθωση ατελειών στα συστήματα αρχείων. Μπορεί να χρησιμοποιηθεί χειροκίνητα, αλλά μπορεί να εκτελεστεί και αυτόματα αν είναι ενεργοποιημένη η ανίχνευση σφαλμάτων στα συστήματα αρχείων κατά την εκκίνηση του υπολογιστή, ή αν έχει ρυθμιστεί στο "fstab". Για να γίνει χρήση αυτού το εργαλείου πρέπει το σύστημα αρχείων στο οποίο θα χρησιμοποιηθεί να μην είναι προσαρτημένο.
  • dd: Η εντολή "dd" χρησιμοποιείται για την αντιγραφή και προεραιτικά για την μετατροπή δεδομένων. Αν γίνει λανθασμένη χρήση της, μπορεί να προκαλέσει απώλεια δεδομένων.

Σενάριο:

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

ΠΡΟΣΟΧΗ: Μην το εφαρμόσετε σε κάποιο σύστημα αρχείων που χρησιμοποιείτε, διότι μπορεί να προκληθεί απώλεια δεδομένων!

Δοκιμάστε το:

  1. Χρησιμοποιήστε την εντολή "dd" για να αντιγράψετε τυχαία δεδομένα σε ένα άδειο σύστημα αρχείων το οποίο θα φθαρεί εσκεμμένα.

    dd if=/dev/zero count=1 bs=4096 seek=0 of=/dev/PARTITION

    Όπου αντικαθιστάτε το "PARTITION" με το σύστημα αρχείων στο οποίο θα εφαρμόσετε το εν λόγω σενάριο. ΜΗΝ εφαρμόσετε αυτή τη διαδικασία σε κάποιο σύστημα αρχείων που περιέχει σημαντικά δεδομένα, διότι θα χαθούν.

  2. Ελέγξτε και επιδιορθώστε το φθαρμένο σύστημα αρχείων με τη χρήση της εντολής "fsck":

    fsck /dev/PARTITION

  3. Επιβεβαιώστε με την χρήση της εντολής "fsck" πως το σύστημα αρχείων έχει επιδιορθωθεί:

    fsck /dev/PARTITION

  4. Επαληθεύστε πραγματοποιώντας έναν εξαναγκασμένο έλεγχο, με την χρήση της εντολής "fsck" και την παράμετρο "-f":

    fsck -f /dev/PARTITION

  5. Χρησιμοποιείστε την εντολή "dd" για να προκαλέσετε ξανά φθορά στο σύστημα αρχείων:

    dd if=/dev/zero count=1 bs=4096 seek=0 of=/dev/PARTITION

  6. Ελέγξτε και επιδιορθώστε αυτόματα το φθαρμένο σύστημα αρχείων με την χρήση της εντολής "fsck" και την παράμετρο "-y":

    fsck -y /dev/PARTITION

Μην χρησιμοποιείτε την εντολή "fsck" σε προσαρτημένο σύστημα αρχείων.

Απαντήσεις:

  1. Η έξοδος της εντολής "dd" θα είναι:

    1+0 records in
    1+0 records out
    4096 bytes (4.1 kB) copied, 0.00825589 s, 496 kB/s
    
  2. Η έξοδος της εντολής "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
    
  3. Η έξοδος της εντολής "fsck" θα είναι:

    fsck from util-linux 2.23.2
    e2fsck 1.42.9 (28-Dec-2013)
    /dev/md0: clean, 11/24096 files, 8695/96128 blocks
    
  4. Η έξοδος της εντολής "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
    
  5. Η έξοδος της εντολής "dd" θα είναι η ίδια όπως στο πρώτο βήμα.
  6. Η έξοδος της εντολής "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
    

results matching ""

    No results matching ""