A 3 legjobb módszer a „Nincs hely az eszközön” hiba javítására Linux rendszerben


Az egyértelmű ok nélküli hibák a legbosszantóbb problémák. És bár a Linux rendszerint specifikus a hibaüzeneteiben, ez azon kevés alkalmak egyike, amikor elejti a labdát.

A „Nincs hely az eszközön hiba” megjelenítése nagyon kevés magyarázatot ad, különösen akkor, ha a meghajtó messze nincs tele. Miért jelenik meg ez a hibaüzenet? Miért nem tud új fájlokat létrehozni annak ellenére, hogy elegendő hely van a lemezen? És ami a legfontosabb: hogyan javítod?

Tudjuk meg.

Valóban van elég hely a merevlemezen?

Mielőtt rohanna megoldást keresni, először győződjön meg arról, hogy van probléma. Végül is, ha a lemezterület valóban elfogyott a rendszeren, akkor nincs ok a pánikba. Csak eltávolíthatja a felesleges adatokat, hogy több helyet szabadítson fel.

Két Linux-rendszerparancs áll rendelkezésre a lemezterülettel kapcsolatos információk megszerzéséhez – a du és a df. A du parancs a lemezterület-használatot becsüli meg, míg a df parancs a lemezen lévő szabad területet elemzi. Ha ezeket a sudo -val együtt használja, pontos jelentést kap arról, hogy mennyi hely áll rendelkezésre a lemezen.

  1. Kezdjük a du paranccsal. A kimenete meglehetősen hosszú és nehézkes lehet, ezért az -s és -h jelzőket fogjuk használni. -s összegzi az eredményeket, míg a -h biztosítja, hogy ember által olvasható. Tehát írja be a sudo du -sh /parancsot, ahol a /az alapkönyvtárra mutat.
    1. Ne aggódjon a megtagadott engedélyek miatt – ez így járja át a rendszer összes alkönyvtárát. A meghajtó méretétől függően előfordulhat, hogy hagynia kell futni egy ideig, mivel mindenen rekurzív módon megy keresztül.
      1. Amikor du befejezi a szkennelést, egy egyszerű listát ad ki a könyvtárakról a méretük mellett. Például ez a du parancs kimenete, amely egy közönséges könyvtárra vonatkozik.
      2. Most a df segítségével megtudjuk, mennyi szabad hely áll rendelkezésre. A df parancs használata sokkal egyszerűbb, mivel csak a csatlakoztatott fájlrendszereket és azok használati statisztikáit mutatja. Ismét a -h jelzőt fogjuk használni, hogy a kimenetet ember által olvashatóvá tegyük.

        sudo df -h .

        Az ötlet az, hogy a du és a df parancsok eredményeit összevessük. Bármilyen eltérés olyan lemezterületre utal, amely nem áll rendelkezésre szabadon, annak ellenére, hogy egyetlen fájl vagy mappa sem használja.

        Miért jelenik meg a Linux „Nincs hely az eszközön” üzenet?

        Ha a „Nincs hely az eszközön” hibaüzenetet látja annak ellenére, hogy van elegendő szabad hely a lemezen, akkor nem a hardver a hibás. A hiba pontos okának kiderítése némi hibaelhárítást igényelhet.

        • Nemrég törölt fájl: A hiba leggyakoribb oka egy nemrégiben törölt fájl. Egy fájl gyakran törlődik, miközben egy folyamat még használja, így a hely fenntartva marad, még akkor is, ha a fájl már eltűnt.
        • Nincs elég Inodes: Egy másik gyakori ok az, hogy nincs elég inodes. Az Inodes a Unix fájlrendszer indexoldalai, amelyek a tárolón lévő összes fájl metaadatait tartalmazzák. Az inode-ok azonban nem korlátlanok, és ha a tárhely előtt elfogynak az inodok, akkor a „Nincs hely az eszközön” hibaüzenetet kaphat.
        • Meghibásodott merevlemez: Ekkor természetesen fennáll annak a lehetősége, hogy a merevlemez egyszerűen meghibásodik, és a látszólagos szabad hely nagy részét a hibás szektorok foglalják el. Mivel a rendszer nem tud fájlokat írni ezekre a helyekre, hibát jelez.
        • 1. javítás: A folyamatok újraindítása törölt fájlokkal

          A „Nincs hely az eszközön” hiba legvalószínűbb oka egy olyan folyamat, amely még mindig törölt fájlt használ. Szerencsére ezt a hibát könnyű kijavítani. Csak indítsa újra a folyamatot kell, hogy felszabadítsa a lefoglalt tárhelyet.

          1. A problémás folyamat megtalálásához az lsof és a grep parancsokat kell használnia. Az lsof parancs megjeleníti a futó folyamatok által használt összes nyitott fájl listáját, és a grep leszűkítheti a kijelölést a töröltekre. Tehát írja be: sudo lsof / | grep törölveahol / az alapkönyvtár és | egy cső az lsof kimenetének a grephez való kapcsolásához.
            1. Most újraindíthatja az érintett folyamatot a sudo systemctl restart service_nameparanccsal, ahol a szolgáltatás neve a keresés során felbukkant szolgáltatás neve.
            2. .
              1. Ha több ilyen folyamat is létezik, vagy egyszerűen nem szeretne bizonyos szolgáltatások keresésével foglalkozni, egyszerűen visszaállíthatja mindegyiket a sudo systemctl daemon-reloadparanccsal. Ez újragenerálja az összes függőséget, figyelembe véve a fájlrendszerben bekövetkezett változásokat.
              2. Ezt követően a folyamat által elfoglalt tárhelynek újra elérhetővé kell válnia, így hiba nélkül írhat fájlokat.

                2. javítás: Inodes ellenőrzése

                Bár minden meghajtónak nagy számú inode van, véges. És ha rendszere hihetetlenül sok fájllal van tele, akkor még a meghajtó tárolókapacitása kimerítése előtt elérheti ezt a határt. Ezért jobb, ha nagy fájlok vannak, mint túl sok kicsi.

                Könnyen ellenőrizheti az inode-ok elérhetőségét az -i kapcsolóval a df paranccsal. Így:

                sudo df -i

                Ez egyértelműen megmutatja a fájlrendszerben lévő inodok teljes számát, valamint a jelenleg használt mennyiséget. Ha nem maradt szabad inode a rendszeren, ez a „Nincs hely az eszközön” hiba forrása.

                Mivel az inodok csak a meghajtó első formázásakor jönnek létre, nincs lehetőség további inodok létrehozására. Csak annyit tehet, hogy töröl minden szükségtelen fájlt, hogy felszabadítson inode-okat a jövőbeli fájlok számára.

                3. javítás: Jelölje meg a rossz blokkokat

                Az adatsérülés minden merevlemez elkerülhetetlen sorsa. Míg az új meghajtók nem okoznak problémát, a régebbi merevlemezek fokozatosan „meghibásodnak”.

                Ez azt jelenti, hogy a merevlemez egyes részei használhatatlanná válnak, noha a fájlrendszer továbbra is működőképesnek tartja őket. Ezek a rossz blokkok hamisan megnövelik a látszólagos szabad helyet a meghajtón, holott valójában nem lehet fájlokat írni rájuk. Ez „Nincs hely az eszközön” hibaüzenethez vezet, mivel az operációs rendszer megpróbál adatot tárolni ezeken a helyeken, de nem sikerül.

                Nincs valódi módja ennek a probléma megoldásának, mivel a hibás szektorok a merevlemez fizikai kopásának és elhasználódásának következményei. Csak annyit tehet, hogy megjelöli a hibás szektorokat, hogy a fájlrendszer többé ne hivatkozzon rájuk..

                Ehhez egy Élő CD -ról kell indítania, mivel nem végezhet fájlrendszer-ellenőrzést futó meghajtón. Ha ezt megtette, csak használja a következő parancsot:

                sudo fsck -vcck /dev/sda

                Ez lecseréli a /dev/sda fájlt a javítani kívánt meghajtó elérési útjára. Ez automatikusan észleli az összes rossz blokkot a meghajtón, és használhatatlanként jelöli meg őket. Ez azonban nem ad plusz tárkapacitást, ezért készüljön fel arra, hogy megtisztít néhány haszontalan fájlt, hogy helyet szabadítson fel a meghajtón.

                Mi a legjobb módja a „Nincs hely az eszközön” hiba kijavításának?

                A „Nincs hely az eszközön” hibaüzenet megjelenítésének szokásos oka az Ubuntu vagy bármely más Linux disztribúció esetén, ha egy futó folyamat még mindig használ törölt fájlt. Ez lefoglalja a fájl által elfoglalt tárhelyet, megakadályozva, hogy más műveletek adatokat írjanak erre a helyre.

                A probléma megoldása is a legegyszerűbb, hiszen mindössze annyit kell tennie, hogy újraindítja a kérdéses folyamatot. A hiba egyéb okait azonban nem olyan egyszerű megoldani.

                Akár hibás adatblokkok sújtják meghajtóját, akár kifogytak az inode-ok, nincs közvetlen mód ezeknek a problémáknak a megoldására. Törölnie kell a meglévő fájlokat, hogy helyet adjon az új adatok írásához.

                .

                Kapcsolódó hozzászólások:


                30.08.2022