Tri najbolja načina za ispravljanje pogreške "Nema preostalog prostora na uređaju" u Linuxu

Pogreške bez jasnog uzroka najiritantniji su problemi s kojima se treba nositi. I dok je Linux obično specifičan u svojim porukama o pogreškama, ovo je jedan od rijetkih slučajeva kada ispusti loptu.

Dobivanje poruke "Nema mjesta na pogrešci uređaja" objašnjava vrlo malo, pogotovo ako je vaša disk jedinica daleko od pune. Zašto se pojavljuje ova poruka o pogrešci? Zašto ne možete stvoriti nove datoteke iako imate dovoljno prostora na disku? I što je najvažnije, kako to popraviti?

Hajde da vidimo.

Ima li vaš tvrdi disk doista dovoljno prostora(Hard Drive Actually Have Enough Space) ?

Prije nego što požurite pronaći rješenje, za početak provjerite postoji li problem. Uostalom, ako je na vašem sustavu stvarno ponestalo prostora na disku, nema mjesta panici. Možete jednostavno ukloniti nepotrebne podatke kako biste oslobodili više prostora.

Postoje dvije naredbe sustava Linux za dobivanje informacija o prostoru na disku – du i df. Naredba du procjenjuje zauzetost prostora na disku, dok naredba df analizira slobodni prostor prisutan na disku. Njihova uporaba u kombinaciji sa sudom(sudo) daje vam točan izvještaj o tome koliko je prostora stvarno dostupno na disku.

  1. Počnimo s naredbom du. Njegov izlaz može biti prilično dug i glomazan za prolazak, pa ćemo koristiti zastavice -s i -h. -s sažima rezultate, dok -h osigurava da su čitljivi. Dakle, unesite naredbu sudo du -sh / gdje / pokazuje na osnovni direktorij.

  1. Ne brinite o svim porukama o odbijenom dopuštenju – tako se vuče kroz sve poddirektorije u sustavu. Ovisno o veličini pogona, možda ćete ga morati ostaviti da radi neko vrijeme, jer rekurzivno prolazi kroz sve.

  1. Kada du završi skeniranje, ispisat će jednostavan popis direktorija uz njihovu veličinu. Na primjer, ovo je izlaz naredbe du primijenjene na obični imenik.

Sada ćemo koristiti df da vidimo koliko je slobodnog prostora dostupno. Naredba df puno je jednostavnija za korištenje budući da prikazuje samo montirane datotečne sustave i njihovu statistiku korištenja. Još jednom, koristit ćemo zastavicu -h kako bi izlaz bio čitljiv ljudima.

sudo df -h

Ideja je zbrojiti rezultate naredbi du i df. Svako odstupanje ukazuje na prostor na disku koji nije slobodno dostupan iako ga ne koriste datoteke ili mape.

Zašto Linux prikazuje(Does Linux Show) "Nema preostalog prostora(Space Left) na uređaju"?

Ako vidite poruku o pogrešci "Nema preostalog prostora na uređaju" iako imate dovoljno slobodnog prostora na disku, nije kriv hardver. Utvrđivanje točnog uzroka pogreške može zahtijevati malo rješavanja problema.

  • Nedavno izbrisana datoteka: najčešći razlog za prikaz ove pogreške je nedavno izbrisana datoteka. Često se datoteka briše dok je proces još uvijek koristi, zadržavajući prostor rezerviran iako je datoteka već nestala.
  • Nema dovoljno inodesa(Enough Inodes) : Još jedan čest uzrok je nedostatak inodesa(inodes) . Inodes su stranice indeksa Unix datotečnog sustava, koje sadrže metapodatke svake datoteke na pohrani. Međutim, inode nisu neograničene, a ponestaje vam inode prije prostora za pohranu može vam dati pogrešku "Nema više prostora na uređaju".
  • Tvrdi disk u kvaru(Hard) : Naravno, postoji mogućnost da je tvrdi disk jednostavno u kvaru i da je velik dio prividnog slobodnog prostora zauzet lošim sektorima. Budući da sustav ne uspijeva zapisati nijednu datoteku na te lokacije, izbacuje pogrešku.

Popravak 1: Ponovno pokretanje procesa pomoću izbrisanih datoteka(Using Deleted Files)

Najvjerojatniji uzrok pogreške "Nema više prostora na uređaju" je proces koji još uvijek koristi izbrisanu datoteku. Srećom, ispravljanje ove greške je lako. Samo trebate ponovno pokrenuti postupak(restart the process) kako biste oslobodili rezerviranu pohranu.

  1. Da biste pronašli problematični proces, trebate koristiti naredbe lsof i grep. Naredba lsof dat će vam popis svih otvorenih datoteka koje koriste pokrenuti procesi, a grep može suziti izbor na one koje su izbrisane. Dakle, unesite sudo lsof / | grep izbrisan gdje je / osnovni direktorij i | cijev za povezivanje lsof-ovog izlaza s grep-om.

  1. Sada možete ponovno pokrenuti pogođeni proces s naredbom sudo systemctl restart service_name, gdje je naziv usluge naziv usluge koja se pojavila u pretraživanju.

  1. Ako postoji više ovakvih procesa ili se jednostavno ne želite zamarati traženjem određenih usluga, možete ih sve jednostavno resetirati pomoću naredbe sudo systemctl daemon-reload. Ovo regenerira sve ovisnosti, uzimajući u obzir sve promjene u datotečnom sustavu.

Nakon toga bi prostor za pohranu koji proces zadržava ponovno trebao biti dostupan, omogućujući vam pisanje datoteka bez ikakvih pogrešaka.

Popravak 2: Provjerite Inodes

Iako svaki pogon ima veliki broj inoda, on je konačan. A ako je vaš sustav zatrpan nevjerojatnim brojem datoteka, moguće je dosegnuti ovu granicu prije iscrpljivanja kapaciteta za pohranu na disku. Zbog toga je bolje imati velike datoteke nego previše malih.

Možete jednostavno provjeriti dostupnost inodesa pomoću oznake -i s naredbom df. Kao ovo:

sudo df -i

Ovo će jasno reći ukupan broj inodeova prisutnih u datotečnom sustavu, zajedno s količinom koja se trenutno koristi. Ako na vašem sustavu nema slobodnih inodeova, to je izvor pogreške "Nema više prostora na uređaju".

Budući da se inode stvaraju samo nakon prvog formatiranja pogona, ne postoji način za generiranje više inodeova. Sve što možete učiniti je izbrisati sve nepotrebne datoteke kako biste oslobodili inode za buduće datoteke.

Popravak 3: Označite loše blokove

Oštećenje podataka(Data) je neizbježna sudbina svakog tvrdog diska. Dok se novi pogon neće susresti s ovim problemom, stariji tvrdi diskovi postupno će se "pokvariti".

To znači da su dijelovi tvrdog diska neupotrebljivi, iako ih datotečni sustav i dalje smatra funkcionalnima. Ovi loši blokovi lažno povećavaju prividni slobodni prostor na pogonu, dok se zapravo na njih ne mogu pisati datoteke. To dovodi do pogreške "Nema više prostora na uređaju", budući da operativni sustav pokušava i ne uspijeva pohraniti bilo kakve podatke na te lokacije.

Ne postoji pravi način za rješavanje ovog problema jer su loši sektori rezultat fizičkog trošenja i habanja tvrdog diska. Jedino što možete učiniti je označiti loše sektore tako da ih sustav datoteka više ne spominje.

Da biste to učinili, morate se pokrenuti s Live CD-a(Live CD) jer ne možete izvršiti provjeru sustava datoteka(File System Check) unutar pogona koji radi. Kada to učinite, samo upotrijebite sljedeću naredbu:

sudo fsck -vcck /dev/sda

Ovo zamjenjuje /dev/sda putanjom pogona koji želite popraviti. Ovo će automatski otkriti sve loše blokove na disku i označiti ih kao neupotrebljive. Međutim, to vam neće dati dodatni kapacitet za pohranu, stoga budite spremni počistiti neke beskorisne datoteke kako biste oslobodili prostor na disku.

Koji je najbolji način da popravite pogrešku "Nema preostalog prostora na uređaju"?

Uobičajeni razlog za pojavu pogreške "Nema više prostora na uređaju" na Ubuntuu(Ubuntu) ili bilo kojoj drugoj distribuciji Linuxa(Linux) je izbrisana datoteka koju još uvijek koristi pokrenuti proces. Time se rezervira prostor za pohranu koji je zauzimala datoteka, sprječavajući druge operacije da zapisuju podatke u taj prostor.

Rješavanje ovog problema je također najlakše, jer sve što trebate učiniti je ponovno pokrenuti dotični proces. Druge uzroke pogreške, međutim, nije tako lako riješiti.

Bez obzira na to je li vaš pogon mučen lošim podatkovnim blokovima ili mu je ponestalo inodea, ne postoji izravan način za rješavanje ovih problema. Morate izbrisati postojeće datoteke kako biste napravili mjesta za upisivanje novih podataka.



About the author

Ja sam računalni profesionalac s više od 10 godina iskustva. U slobodno vrijeme volim pomagati za uredskim stolom i učiti djecu kako se koristiti internetom. Moje vještine uključuju mnoge stvari, ali najvažnije je da znam kako pomoći ljudima u rješavanju problema. Ako trebate nekoga tko vam može pomoći s nečim hitnim ili samo želite neke osnovne savjete, obratite mi se!



Related posts