Πώς να διορθώσετε το σφάλμα "Δεν υπάρχει χώρος αριστερά στη συσκευή" στο Linux
Έτσι, το σύστημά σας Linux σας λέει ότι δεν έχετε χώρο στον σκληρό σας δίσκο, αλλά ξέρετε ότι υπάρχει στην πραγματικότητα πολύς ελεύθερος χώρος. Γιατί; Αυτό είναι ένα από αυτά τα λίγα απογοητευτικά ασαφή σφάλματα στα συστήματα Linux, αλλά υπάρχουν μερικοί συνηθισμένοι ενόχοντες.
Check du και df
Προτού προχωρήσετε περαιτέρω, καλό θα ήταν να ελέγξετε ότι υπάρχει πραγματικά χώρος στον δίσκο. Ενώ τα εργαλεία στο περιβάλλον εργασίας σας είναι καλά, είναι πολύ καλύτερο να χρησιμοποιήσετε τα άμεσα από τη γραμμή εντολών.
Ξεκινήστε με du
. Τοποθετήστε το στον κατάλογο βάσης στη μονάδα δίσκου που έχει το πρόβλημα. Αυτός ο οδηγός υποθέτει ότι είναι το διαμέρισμα με τη ρίζα.
sudo du -sh /
Θα χρειαστεί λίγος χρόνος για να περάσεις όλα. Τώρα δοκιμάστε με df
.
sudo df -h
Προσθέστε τον root και τα συστήματα αρχείων που είναι τοποθετημένα κάτω από αυτό. Για παράδειγμα, αν έχετε "/ home" σε ξεχωριστή μονάδα δίσκου, προσθέστε αυτό με την ανάγνωση για το root. Το σύνολο θα πρέπει να βγαίνει κοντά σε αυτό που είχατε με τον du
. Εάν όχι, αυτό μπορεί να δείχνει προς ένα διαγραμμένο αρχείο που χρησιμοποιείται από μια διαδικασία.
Φυσικά, η κύρια ανησυχία εδώ είναι εάν τα αποτελέσματα αυτών των εντολών έρχονται κάτω από το μέγεθος της κίνησης. Εάν το έπρατταν, είναι προφανές ότι υπάρχει κάτι λάθος.
Σχετικά : Χρησιμοποιήστε το Agedu για να αναλύσετε τη χρήση του σκληρού δίσκου στο Linux
Πιθανές αιτίες
Υπάρχουν μερικές κύριες αιτίες εδώ. Εάν δείτε μια διαφορά μεταξύ du
και df
μπορείτε να μεταβείτε στην πρώτη επιλογή εδώ. Διαφορετικά, ξεκινήστε από τη δεύτερη.
Το διαγραμμένο αρχείο δεσμεύεται από τη διαδικασία
Περιστασιακά, ένα αρχείο θα διαγραφεί, αλλά μια διαδικασία εξακολουθεί να το χρησιμοποιεί. Το Linux δεν θα απελευθερώσει την αποθήκευση που συσχετίζεται με το αρχείο ενώ η διαδικασία εξακολουθεί να εκτελείται. Απλά πρέπει να βρείτε τη διαδικασία και να την επανεκκινήσετε.
Προσπαθήστε να εντοπίσετε τη διαδικασία.
sudo lsof / | grep διαγράφηκε
Πρέπει να αναφερθεί η προβληματική διαδικασία και στη συνέχεια απλώς να την ξεκινήσετε ξανά.
sudo systemctl επανεκκίνηση service_name
Δεν είναι αρκετοί
Υπάρχει ένα σύνολο μεταδεδομένων σε συστήματα αρχείων που ονομάζονται "inodes". Οι Inodes παρακολουθούν πληροφορίες σχετικά με τα αρχεία. Πολλά συστήματα αρχείων έχουν ένα σταθερό ποσό inodes, οπότε είναι πολύ πιθανό να γεμίσετε τη μέγιστη κατανομή των inodes χωρίς να γεμίσετε το ίδιο το σύστημα αρχείων. Μπορείτε να χρησιμοποιήσετε df
για έλεγχο.
sudo df -i /
Συγκρίνετε τις inodes που χρησιμοποιούνται με τις συνολικές inodes. Εάν δεν υπάρχουν πλέον διαθέσιμα, δυστυχώς, δεν μπορείτε να πάρετε περισσότερα. Διαγράψτε ορισμένα άχρηστα ή μη ενημερωμένα αρχεία για να καθαρίσετε τα inodes.
Bad Blocks
Το τελευταίο κοινό πρόβλημα είναι τα κακά μπλοκ συστημάτων αρχείων. Τα συστήματα αρχείων καταστρέφονται και οι σκληροί δίσκοι πεθαίνουν. Το λειτουργικό σας σύστημα θα βλέπει πιθανότατα αυτά τα μπλοκ ως χρησιμοποιήσιμα, εκτός εάν σημειωθούν με άλλο τρόπο. Ο καλύτερος τρόπος για να βρείτε και να επισημάνετε αυτά τα μπλοκ είναι χρησιμοποιώντας το fsck
με τη σημαία -cc
. Θυμηθείτε ότι δεν μπορείτε να χρησιμοποιήσετε το fsck
από το ίδιο σύστημα αρχείων που δοκιμάζετε. Ίσως χρειαστεί να χρησιμοποιήσετε ένα ζωντανό CD.
sudo fsck -vcck / dev / sda2
Προφανώς, αντικαταστήστε τη θέση του δίσκου με τη μονάδα δίσκου που θέλετε να ελέγξετε. Επίσης, να έχετε κατά νου ότι αυτό πιθανόν θα χρειαστεί πολύς χρόνος.
Σχετικά : Ελέγξτε και επιδιορθώστε το σύστημα αρχείων σας με fsck [Linux]
Ευτυχώς, μία από αυτές τις λύσεις λύνει το πρόβλημά σας. Αυτό το θέμα δεν είναι ακριβώς εύκολο να διαγνωστεί σε κάθε περίπτωση. Με κάποια τύχη, όμως, μπορείτε να το ξεκαθαρίσετε και να επαναφέρετε το σκληρό δίσκο σας κανονικά.