3 parasta tapaa korjata "Laitteessa ei ole tilaa" -virhe Linuxissa

Virheet, joilla ei ole selvää syytä, ovat ärsyttävimpiä ongelmia. Ja vaikka Linux on yleensä täsmällinen virheilmoituksissaan, tämä on yksi harvoista kertoista, kun se pudottaa pallon.

"Laitteessa ei ole paikkaa jäljellä" -virheilmoituksen saaminen selittää hyvin vähän, varsinkin jos asema on kaukana täynnä. Miksi tämä virheilmoitus tulee näkyviin? Miksi et voi luoda uusia tiedostoja, vaikka levyllä on riittävästi tilaa? Ja mikä tärkeintä, kuinka korjaat sen?

Otetaan selvää.

Onko kiintolevylläsi todella tarpeeksi tilaa(Hard Drive Actually Have Enough Space) ?

Ennen kuin kiirehdit etsimään ratkaisua, varmista aluksi, että ongelma on olemassa. Loppujen lopuksi, jos järjestelmästäsi on todellakin loppunut levytila, ei ole syytä paniikkiin. Voit vapauttaa lisää tilaa poistamalla tarpeettomat tiedot.

Levytilatietojen saamiseksi on kaksi Linux -järjestelmäkomentoa – du ja df. (Linux)Du-komento arvioi levytilan käytön, kun taas df-komento analysoi levyllä olevan vapaan tilan. Niiden käyttäminen yhdessä sudon(sudo) kanssa antaa sinulle tarkan raportin siitä, kuinka paljon levytilaa on todellisuudessa käytettävissä.

  1. Aloitetaan du-komennolla. Sen tulos voi olla melko pitkä ja hankala käydä läpi, joten käytämme -s ja -h -lippuja. -s tekee yhteenvedon tuloksista, kun taas -h varmistaa, että se on ihmisen luettavissa. Joten anna komento sudo du -sh / missä / osoittaa perushakemistoon.

  1. Älä ole huolissasi kaikista luvat evättyistä viesteistä – näin se kulkee järjestelmän kaikkien alihakemistojen läpi. Aseman koosta riippuen saatat joutua jättämään sen käynnissä jonkin aikaa, koska se käy rekursiivisesti kaiken läpi.

  1. Kun du lopettaa skannauksen, se tulostaa yksinkertaisen luettelon hakemistoista niiden koon lisäksi. Tämä on esimerkiksi tavalliseen hakemistoon käytetyn du-komennon tulos.

Nyt käytämme df:ää nähdäksemme kuinka paljon vapaata tilaa on käytettävissä. Df-komento on paljon yksinkertaisempi käyttää, koska se näyttää vain liitetyt tiedostojärjestelmät ja niiden käyttötilastot. Jälleen kerran käytämme -h-lippua, jotta tuloste on luettavissa.

sudo df -h

Ajatuksena on laskea yhteen du- ja df-komentojen tulokset. Kaikki erot viittaavat levytilaan, joka ei ole vapaasti käytettävissä, vaikka tiedostot tai kansiot eivät käytä sitä.

Miksi Linux näyttää(Does Linux Show) "Laitteessa ei ole tilaa(Space Left) "?

Jos näet "Laitteessa ei ole tilaa" -virhesanoman, vaikka levyllä on riittävästi vapaata tilaa, vika ei ole laitteistossa. Virheen tarkan syyn selvittäminen voi viedä jonkin verran vianmääritystä.

  • Äskettäin poistettu tiedosto: Yleisin syy tämän virheen näkemiseen on äskettäin poistettu tiedosto. Usein tiedosto poistetaan, kun prosessi vielä käyttää sitä, jolloin tilaa pidetään varattuna, vaikka tiedosto on jo poissa.
  • Ei tarpeeksi inodeja(Enough Inodes) : Toinen yleinen syy on liian vähän inodeja(inodes) . Inodit ovat Unix -tiedostojärjestelmän hakemistosivuja, jotka sisältävät jokaisen tallennustilassa olevan tiedoston metatiedot. Inodeja ei kuitenkaan ole rajattomasti, ja jos inodit loppuvat ennen tallennustilaa, saat "Laitteessa ei ole tilaa" -virheilmoituksen.
  • Viallinen kiintolevy(Hard) : Sitten on tietysti mahdollista, että kiintolevy yksinkertaisesti epäonnistuu, ja suuren osan näennäisestä vapaasta tilasta vievät huonot sektorit. Koska järjestelmä ei pysty kirjoittamaan tiedostoja näihin paikkoihin, se antaa virheilmoituksen.

Korjaus 1: Käynnistä prosessit uudelleen käyttämällä poistettuja tiedostoja(Using Deleted Files)

Todennäköisin syy "Laitteessa ei ole tilaa jäljellä" -virheeseen on prosessi, joka käyttää edelleen poistettua tiedostoa. Onneksi tämän virheen korjaaminen on helppoa. Sinun tarvitsee vain käynnistää prosessi(restart the process) uudelleen vapauttaaksesi varatun tallennustilan.

  1. Ongelmallisen prosessin löytämiseksi sinun on käytettävä lsof- ja grep-komentoja. Lsof-komento antaa sinulle luettelon kaikista käynnissä olevien prosessien käyttämistä avoimista tiedostoista, ja grep voi rajata valinnan poistettaviin tiedostoihin. Joten kirjoita sudo lsof / | grep poistettu missä / on perushakemisto ja | putki lsof:n lähdön liittämiseksi grepiin.

  1. Nyt voit käynnistää prosessin uudelleen komennolla sudo systemctl restart palvelun_nimi, jossa palvelun nimi on haussa löytyneen palvelun nimi.

  1. Jos tällaisia ​​prosesseja on useita tai et vain halua vaivautua etsimään tiettyjä palveluita, voit nollata ne kaikki komennolla sudo systemctl daemon-reload. Tämä luo uudelleen kaikki riippuvuudet ottaen huomioon tiedostojärjestelmän muutokset.

Tämän jälkeen prosessin pidättämän tallennustilan pitäisi olla jälleen käytettävissä, jolloin voit kirjoittaa tiedostoja ilman virheitä.

Korjaus 2: Tarkista Inodes

Vaikka jokaisessa asemassa on suuri määrä inodeja, se on rajallinen. Ja jos järjestelmäsi on täynnä uskomattoman paljon tiedostoja, tämä raja on mahdollista saavuttaa ennen kuin aseman tallennuskapasiteetti kuluu loppuun. Tästä syystä on parempi käyttää suuria tiedostoja kuin liian monia pieniä tiedostoja.

Voit helposti tarkistaa inodien saatavuuden käyttämällä -i-lippua df-komennolla. Kuten tämä:

sudo df -i

Tämä kertoo selvästi tiedostojärjestelmässä olevien inodien kokonaismäärän sekä tällä hetkellä käytössä olevan määrän. Jos järjestelmässäsi ei ole vapaita inodeja, tämä on "Laitteessa ei ole tilaa" -virheen lähde.

Koska inodeja luodaan vasta aseman alustamisen yhteydessä, ei ole mahdollista luoda lisää inodeja. Ainoa mitä voit tehdä, on poistaa kaikki tarpeettomat tiedostot vapauttaaksesi inodeja tulevia tiedostoja varten.

Korjaus 3: Merkitse huonot lohkot

Tietojen(Data) korruptio on minkä tahansa kiintolevyn väistämätön kohtalo. Vaikka uusi asema ei törmää tähän ongelmaan, vanhemmat kiintolevyt alkavat vähitellen mennä "huonoksi".

Tämä tarkoittaa, että kiintolevyn osat tehdään käyttökelvottomiksi, vaikka tiedostojärjestelmä pitää niitä edelleen toimivina. Nämä huonot lohkot lisäävät virheellisesti levyn näennäistä vapaata tilaa, vaikka todellisuudessa niihin ei voi kirjoittaa tiedostoja. Tämä johtaa "Laitteessa ei ole tilaa" -virheeseen, koska käyttöjärjestelmä yrittää tallentaa tietoja näihin paikkoihin mutta epäonnistuu.

Ei ole todellista tapaa korjata tätä ongelmaa, koska huonot sektorit ovat seurausta kiintolevyn fyysisestä kulumisesta. Ainoa asia, jonka voit tehdä, on merkitä huonot sektorit, jotta tiedostojärjestelmä ei enää viittaa niihin.

Tämä edellyttää käynnistämistä Live CD :ltä , koska et voi suorittaa tiedostojärjestelmän tarkistusta(File System Check) käynnissä olevassa asemassa. Kun olet tehnyt sen, käytä vain seuraavaa komentoa:

sudo fsck -vcck /dev/sda

Tämä korvaa /dev/sda:n sen aseman polulla, jonka haluat korjata. Tämä havaitsee automaattisesti kaikki aseman huonot lohkot ja merkitsee ne käyttökelvottomiksi. Se ei kuitenkaan anna sinulle ylimääräistä tallennuskapasiteettia, joten ole valmis puhdistamaan joitain turhia tiedostoja vapauttaaksesi levytilaa.

Mikä on paras tapa korjata "Laitteessa ei ole tilaa" -virhe?

Tavallinen syy "Laitteessa ei ole tilaa" -virheen näkemiseen Ubuntussa(Ubuntu) tai missä tahansa muussa Linux -distrossa on poistettu tiedosto, jota edelleen käyttää käynnissä oleva prosessi. Tämä varaa tiedoston käyttämän tallennustilan, mikä estää muita toimintoja kirjoittamasta tietoja kyseiseen tilaan.

Tämän ongelman korjaaminen on myös helpoin, koska sinun tarvitsee vain käynnistää kyseinen prosessi uudelleen. Muita virheen syitä ei kuitenkaan ole niin helppo ratkaista.

Riippumatta siitä, ovatko asemaasi vaivanneet huonot tietolohkot tai siitä on loppunut inode, näitä ongelmia ei ole suoraa tapaa korjata. Sinun on poistettava olemassa olevat tiedostot tehdäksesi tilaa uusille tiedoille.



About the author

Minulla on laaja kokemus Windows 10:stä ja älypuhelimista, joten kannatan vahvasti Microsoft Edgeä ja sen tarjoamia kykyjä. Sen lisäksi, että olen virhe- ja wifi-asiantuntija, tiedän kuinka käyttää OneDriven ja Cortanan kaltaisia ​​työkaluja työsi helpottamiseksi.



Related posts