Najlepšie 3 spôsoby, ako opraviť chybu „Na zariadení nezostáva miesto“ v systéme Linux

Chyby bez jasnej príčiny sú najdráždivejšie problémy, ktoré treba riešiť. A zatiaľ čo Linux je zvyčajne špecifický vo svojich chybových hláseniach, toto je jeden z mála prípadov, kedy mu upustí loptu.

Zobrazenie chyby „Na zariadení nezostalo žiadne miesto“ vysvetľuje veľmi málo, najmä ak váš disk nie je ani zďaleka plný. Prečo sa zobrazuje toto chybové hlásenie? Prečo nemôžete vytvárať nové súbory napriek tomu, že máte na disku dostatok miesta? A čo je najdôležitejšie, ako to opraviť?

Poďme zistiť.

Má váš pevný disk skutočne dostatok miesta(Hard Drive Actually Have Enough Space) ?

Predtým, ako sa ponáhľate hľadať opravu, najprv sa uistite, že existuje problém. Koniec koncov, ak sa na vašom systéme skutočne minulo miesto na disku, nie je dôvod na paniku. Môžete jednoducho odstrániť nepotrebné dáta, aby ste uvoľnili viac miesta.

Na získanie informácií o mieste na disku existujú dva systémové príkazy systému Linux – du a df. (Linux)Príkaz du odhaduje využitie miesta na disku, zatiaľ čo príkaz df analyzuje voľné miesto na disku. Ich použitie v spojení so sudom(sudo) vám poskytne presnú správu o tom, koľko miesta je na disku skutočne k dispozícii.

  1. Začnime príkazom du. Jeho výstup môže byť dosť dlhý a ťažkopádny, takže použijeme príznaky -s a -h. -s sumarizuje výsledky, zatiaľ čo -h zabezpečuje, že sú čitateľné pre človeka. Zadajte teda príkaz sudo du -sh / kde / ukazuje na základný adresár.

  1. Nerobte si starosti so všetkými správami o zamietnutí povolenia – tak to prechádza cez všetky podadresáre systému. V závislosti od veľkosti disku ho možno budete musieť chvíľu nechať spustený, pretože rekurzívne prechádza všetkým.

  1. Keď du dokončí skenovanie, vypíše jednoduchý zoznam adresárov spolu s ich veľkosťami. Toto je napríklad výstup príkazu du aplikovaného na obyčajný adresár.

Teraz použijeme df, aby sme zistili, koľko voľného miesta je k dispozícii. Príkaz df sa používa oveľa jednoduchšie, pretože zobrazuje iba pripojené súborové systémy a štatistiky ich používania. Opäť použijeme príznak -h, aby bol výstup čitateľný pre človeka.

sudo df -h

Cieľom je spočítať výsledky príkazov du a df. Akákoľvek nezrovnalosť poukazuje na miesto na disku, ktoré nie je voľne dostupné napriek tomu, že ho nevyužívajú žiadne súbory alebo priečinky.

Prečo Linux zobrazuje(Does Linux Show) „Na zariadení nezostáva miesto(Space Left) “?

Ak sa vám zobrazuje chybové hlásenie „Na zariadení nezostáva miesto“ napriek tomu, že máte na disku dostatok voľného miesta, na vine nie je hardvér. Zistenie presnej príčiny chyby môže vyžadovať trochu riešenia problémov.

  • Nedávno odstránený súbor: Najčastejším dôvodom, prečo sa táto chyba zobrazuje, je nedávno odstránený súbor. Súbor sa často vymaže, keď ho proces stále používa, čím sa zachová rezervované miesto, aj keď je súbor už preč.
  • Nedostatok inódov(Enough Inodes) : Ďalšou častou príčinou je nedostatok inódov(inodes) . Inody sú indexové stránky unixového(Unix) súborového systému, ktoré obsahujú metadáta každého súboru v úložisku. Počet inódov však nie je neobmedzený a ak dôjde k vyčerpaniu inódov pred úložným priestorom, môže sa zobraziť chyba „Na zariadení nezostáva miesto“.
  • Zlyhajúci pevný(Hard) disk: Potom je tu samozrejme možnosť, že pevný disk jednoducho zlyhá a veľkú časť zdanlivého voľného miesta zaberajú chybné sektory. Keďže systém nedokáže zapísať žiadne súbory do týchto umiestnení, vyvolá chybu.

Oprava 1: Reštartujte procesy pomocou odstránených súborov(Using Deleted Files)

Najpravdepodobnejšou príčinou chyby „Na zariadení nezostáva miesto“ je proces, ktorý stále používa odstránený súbor. Našťastie je oprava tejto chyby jednoduchá. Stačí reštartovať proces(restart the process) , aby ste uvoľnili rezervované úložisko.

  1. Ak chcete nájsť problematický proces, musíte použiť príkazy lsof a grep. Príkaz lsof vám poskytne zoznam všetkých otvorených súborov používaných spustenými procesmi a grep môže zúžiť výber na tie, ktoré sú odstránené. Zadajte teda sudo lsof / | grep odstránený, kde / je základný adresár a | potrubie na prepojenie výstupu lsof s grep.

  1. Teraz môžete reštartovať ovplyvnený proces pomocou príkazu sudo systemctl restart service_name, kde názov služby je názov služby, ktorá sa objavila vo vyhľadávaní.

  1. Ak existuje viacero takýchto procesov alebo sa jednoducho nechcete obťažovať hľadaním konkrétnych služieb, môžete ich všetky resetovať príkazom sudo systemctl daemon-reload. Týmto sa obnovia všetky závislosti, pričom sa zohľadnia všetky zmeny v súborovom systéme.

Potom by mal byť úložný priestor zadržiavaný procesom opäť dostupný, čo vám umožní zapisovať súbory bez toho, aby ste narazili na chyby.

Oprava 2: Skontrolujte Inodes

Aj keď má každý disk veľký počet inódov, je konečný. A ak je váš systém posiaty neskutočným množstvom súborov, je možné tento limit dosiahnuť ešte pred vyčerpaním úložnej kapacity disku. To je dôvod, prečo je lepšie mať veľké súbory ako príliš veľa malých.

Dostupnosť inodov môžete ľahko skontrolovať pomocou príznaku -i s príkazom df. Páči sa ti to:

sudo df -i

Toto jasne povie celkový počet inódov prítomných v súborovom systéme spolu s množstvom, ktoré sa momentálne používa. Ak vo vašom systéme nezostali žiadne voľné inódy, toto je zdroj chyby „Na zariadení nezostáva miesto“.

Keďže inody sa vytvárajú iba pri prvom naformátovaní disku, neexistuje spôsob, ako vygenerovať ďalšie inody. Jediné, čo môžete urobiť, je odstrániť nepotrebné súbory, aby ste uvoľnili inody pre budúce súbory.

Oprava 3: Označte zlé bloky

Poškodenie údajov(Data) je nevyhnutným osudom každého pevného disku. Zatiaľ čo nový disk sa s týmto problémom nestretne, staršie pevné disky sa postupne začnú „kaziť“.

To znamená, že časti pevného disku sú nepoužiteľné, aj keď ich súborový systém stále považuje za funkčné. Tieto zlé bloky falošne zväčšujú zdanlivé voľné miesto na disku, pričom v skutočnosti do nich nemožno zapisovať žiadne súbory. To vedie k chybe „Na zariadení nezostáva žiadne miesto“, pretože operačný systém sa pokúša uložiť údaje na tieto miesta a zlyhá.

Neexistuje žiadny skutočný spôsob, ako tento problém vyriešiť, pretože chybné sektory sú výsledkom fyzického opotrebovania pevného disku. Jediné, čo môžete urobiť, je označiť chybné sektory tak, aby na ne už neodkazoval súborový systém.

Ak to chcete urobiť, musíte spustiť systém z Live CD , pretože nemôžete vykonať kontrolu systému súborov(File System Check) na spustenom disku. Keď to urobíte, stačí použiť nasledujúci príkaz:

sudo fsck -vcck /dev/sda

Toto nahradí /dev/sda cestou k disku, ktorý chcete opraviť. To automaticky zistí všetky zlé bloky na disku a označí ich ako nepoužiteľné. Neposkytne vám však žiadnu extra úložnú kapacitu, takže buďte pripravení vyčistiť niektoré zbytočné súbory, aby ste uvoľnili miesto na disku.

Aký je najlepší spôsob, ako opraviť chybu „Na zariadení nezostáva miesto“?

Zvyčajným dôvodom chyby „Na zariadení nezostáva miesto“ na Ubuntu alebo inej linuxovej(Linux) distribúcii je odstránený súbor, ktorý stále používa bežiaci proces. Tým sa rezervuje úložisko, ktoré bol obsadený súborom, čím sa zabráni iným operáciám zapisovať údaje do tohto priestoru.

Riešenie tohto problému je tiež najjednoduchšie, pretože všetko, čo musíte urobiť, je reštartovať príslušný proces. Ostatné príčiny chyby však nie je také ľahké vyriešiť.

Či už je váš disk sužovaný zlými dátovými blokmi alebo sa mu minuli inódy, neexistuje žiadny priamy spôsob, ako tieto problémy vyriešiť. Existujúce súbory musíte vymazať, aby ste uvoľnili miesto na zápis nových údajov.



About the author

Som počítačový profesionál s viac ako 10 ročnou praxou. Vo voľnom čase rada pomáham v kancelárii a učím deti používať internet. Moje schopnosti zahŕňajú veľa vecí, ale najdôležitejšie je, že viem pomáhať ľuďom riešiť problémy. Ak potrebujete niekoho, kto vám môže pomôcť s niečím súrne, alebo chcete len nejaké základné tipy, obráťte sa na mňa!



Related posts