Top 3 způsoby, jak opravit chybu „Na zařízení nezbývá místo“ v Linuxu


Chyby bez jasné příčiny jsou nejdráždivějšími problémy, které je třeba řešit. A i když je Linux obvykle specifický ve svých chybových zprávách, toto je jeden z mála případů, kdy mu to upustí.

Zobrazení chyby „Na zařízení nezbývá místo“ vysvětluje velmi málo, zvláště pokud váš disk není zdaleka plný. Proč se tato chybová zpráva zobrazuje? Proč nemůžete vytvářet nové soubory, přestože máte na disku dostatek místa? A co je nejdůležitější, jak to napravíte?

Pojďme to zjistit.

Má váš pevný disk skutečně dostatek místa?

Než budete spěchat s hledáním opravy, nejprve se ujistěte, že došlo k problému. Pokud totiž ve vašem systému skutečně došlo místo na disku, není třeba panikařit. Stačí odstranit nepotřebná data, abyste uvolnili více místa.

Pro získání informací o místě na disku existují dva systémové příkazy Linux – du a df. Příkaz du odhaduje využití místa na disku, zatímco příkaz df analyzuje volné místo na disku. Když je použijete ve spojení s sudo, získáte přesnou zprávu o tom, kolik místa je na disku skutečně k dispozici.

  1. Začněme příkazem du. Jeho výstup může být poměrně dlouhý a těžkopádný, takže použijeme příznaky -s a -h. -s shrnuje výsledky, zatímco -h zajišťuje, že jsou čitelné pro člověka. Zadejte tedy příkaz sudo du -sh /, kde /ukazuje na základní adresář.
    1. Nedělejte si starosti se všemi zprávami o zamítnutí povolení – tak to prochází všemi podadresáři systému. V závislosti na velikosti disku ho možná budete muset chvíli nechat běžet, protože rekurzivně prochází vším.
      1. Když du dokončí skenování, vytiskne jednoduchý seznam adresářů spolu s jejich velikostmi. Toto je například výstup příkazu du aplikovaný na běžný adresář.
      2. Nyní použijeme df, abychom viděli, kolik volného místa je k dispozici. Použití příkazu df je mnohem jednodušší, protože zobrazuje pouze připojené souborové systémy a jejich statistiky využití. Ještě jednou použijeme parametr -h, aby byl výstup čitelný pro člověka.

        sudo df -h .

        Cílem je sečíst výsledky příkazů du a df. Jakákoli nesrovnalost ukazuje na místo na disku, které není volně dostupné, přestože jej nevyužívají žádné soubory nebo složky.

        Proč Linux zobrazuje „Na zařízení nezbývá místo“?

        Pokud se vám zobrazuje chybová zpráva „Na zařízení nezbývá místo“, přestože máte na disku dostatek volného místa, není na vině hardware. Zjištění přesné příčiny chyby může vyžadovat trochu odstraňování problémů.

        • Nedávno smazaný soubor: Nejčastějším důvodem pro zobrazení této chyby je nedávno smazaný soubor. Soubor je často smazán, když jej proces stále používá, čímž je ponecháno vyhrazené místo, i když je soubor již pryč.
        • Nedostatek inodů: Další častou příčinou je nedostatek inody. Inody jsou indexové stránky unixového souborového systému, které obsahují metadata každého souboru v úložišti. Počet inodů však není neomezený a jejich vyčerpání dříve, než je úložný prostor, může způsobit chybu „Na zařízení nezbývá místo“.
        • Selhání pevného disku: Pak samozřejmě existuje možnost, že pevný disk prostě selže a velkou část zjevně volného místa zabírají vadné sektory. Protože se systému nedaří zapsat žádné soubory do těchto umístění, vyvolá chybu.
        • Oprava 1: Restartování procesů pomocí smazaných souborů

          Nejpravděpodobnější příčinou chyby „Na zařízení nezbývá místo“ je proces, který stále používá smazaný soubor. Naštěstí je oprava této chyby snadná. K uvolnění vyhrazeného úložiště stačí restartujte proces.

          1. Chcete-li najít problematický proces, musíte použít příkazy lsof a grep. Příkaz lsof vám poskytne seznam všech otevřených souborů používaných běžícími procesy a grep může zúžit výběr na ty, které jsou odstraněny. Zadejte tedy sudo lsof / | grep deletekde / je základní adresář a | roura pro propojení výstupu lsof s grep.
            1. Nyní můžete postižený proces restartovat pomocí příkazu sudo systemctl restart service_name, kde název služby je název služby, která se objevila ve vyhledávání.
            2. .
              1. Pokud takových procesů existuje více nebo se nechcete obtěžovat hledáním konkrétních služeb, můžete je všechny resetovat pomocí příkazu sudo systemctl daemon-reload. Tím se obnoví všechny závislosti, přičemž se zohlední všechny změny v souborovém systému.
              2. Poté by měl být úložný prostor zadržovaný procesem znovu k dispozici, což vám umožní zapisovat soubory bez jakýchkoli chyb.

                Oprava 2: Check Inodes

                I když má každý disk velký počet inodů, je konečný. A pokud je váš systém posetý neuvěřitelným množstvím souborů, je možné tohoto limitu dosáhnout ještě před vyčerpáním úložné kapacity disku. To je důvod, proč je lepší mít velké soubory než příliš mnoho malých.

                Dostupnost inodů můžete snadno zkontrolovat pomocí parametru -i s příkazem df. Takto:

                sudo df -i

                To jasně řekne celkový počet inodů přítomných v souborovém systému spolu s množstvím, které se aktuálně používá. Pokud ve vašem systému nezbývají žádné volné inody, je to zdroj chyby „Na zařízení nezbývá místo“.

                Vzhledem k tomu, že inody se vytvářejí pouze při prvním naformátování disku, neexistuje způsob, jak vygenerovat další inody. Jediné, co můžete udělat, je odstranit všechny nepotřebné soubory, abyste uvolnili inody pro budoucí soubory.

                Oprava 3: Označit špatné bloky

                Poškození dat je nevyhnutelným osudem každého pevného disku. Zatímco nový disk s tímto problémem nenarazí, starší pevné disky se postupně začnou „kazit“.

                To znamená, že části pevného disku jsou nepoužitelné, i když je souborový systém stále považuje za funkční. Tyto špatné bloky falešně zvětšují zdánlivé volné místo na disku, i když ve skutečnosti na ně nelze zapisovat žádné soubory. To vede k chybě „Na zařízení nezbývá místo“, protože se operační systém pokouší do těchto umístění uložit žádná data.

                Neexistuje žádný skutečný způsob, jak tento problém vyřešit, protože vadné sektory jsou výsledkem fyzického opotřebení pevného disku. Jediné, co můžete udělat, je označit chybné sektory tak, aby na ně již souborový systém neodkazoval..

                To vyžaduje, abyste zavedli systém z Živé CD, protože nemůžete provést kontrolu systému souborů na běžícím disku. Jakmile to uděláte, použijte následující příkaz:

                sudo fsck -vcck /dev/sda

                Tím se nahradí /dev/sda cestou k disku, který chcete opravit. To automaticky detekuje všechny špatné bloky na disku a označí je jako nepoužitelné. Neposkytne vám však žádnou extra kapacitu úložiště, takže buďte připraveni vyčistit některé zbytečné soubory, abyste uvolnili místo na disku.

                Jaký je nejlepší způsob, jak opravit chybu „Na zařízení nezbývá místo“?

                Obvyklým důvodem pro zobrazení chyby „Na zařízení nezbývá místo“ na Ubuntu nebo jakékoli jiné distribuci Linuxu je smazaný soubor, který běžící proces stále používá. Tím se rezervuje úložiště, které bylo obsazeno souborem, což zabrání jiným operacím zapisovat data do tohoto prostoru.

                Oprava tohoto problému je také nejjednodušší, protože vše, co musíte udělat, je restartovat příslušný proces. Jiné příčiny chyby však není tak snadné vyřešit.

                Ať už je váš disk sužován špatnými datovými bloky nebo mu došly inody, neexistuje žádný přímý způsob, jak tyto problémy vyřešit. Musíte odstranit existující soubory, abyste vytvořili prostor pro zápis nových dat.

                .

                Související příspěvky:


                30.08.2022