Top 3 måder at rette "Ingen plads tilbage på enheden"-fejl i Linux

Fejl uden en klar årsag er de mest irriterende problemer at håndtere. Og selvom Linux normalt er specifik i sine fejlmeddelelser, er dette en af ​​de få gange, hvor den taber bolden.

At få en "Ingen plads tilbage på enhedens fejl" forklarer meget lidt, især hvis dit drev er langt fra fuldt. Hvorfor vises denne fejlmeddelelse? Hvorfor kan du ikke oprette nye filer, selvom der er tilstrækkelig plads på disken? Og vigtigst af alt, hvordan løser du det?

Lad os finde ud af det.

Har din harddisk faktisk nok plads(Hard Drive Actually Have Enough Space) ?

Før du skynder dig at finde en løsning, så sørg for, at der er et problem, til at begynde med. Når alt kommer til alt, hvis diskplads rent faktisk er løbet tør på dit system, er der ingen grund til panik. Du kan bare fjerne unødvendige data for at frigøre mere plads.

Der er to Linux -systemkommandoer til at få information om diskplads – du og df. Kommandoen du estimerer diskpladsforbruget, mens df-kommandoen analyserer den ledige plads på disken. Ved at bruge dem sammen med sudo får du en nøjagtig rapport om, hvor meget plads der faktisk er tilgængelig på disken.

  1. Lad os starte med kommandoen du. Dets output kan være ret langt og besværligt at gå igennem, så vi vil bruge -s og -h flagene. -s opsummerer resultaterne, mens -h sikrer, at det er læseligt for mennesker. Så indtast kommandoen sudo du -sh / hvor / peger på basismappen.

  1. Du skal ikke bekymre dig om alle beskeder med nægtet tilladelse – det er sådan, den trawler gennem alle undermapper af systemet. Afhængigt af størrelsen på drevet skal du muligvis lade det køre i et stykke tid, da det rekursivt går igennem alt.

  1. Når du er færdig med at scanne, udsender den en simpel liste over mapper sammen med deres størrelser. Dette er f.eks. outputtet af kommandoen du anvendt på en almindelig mappe.

Nu vil vi bruge df til at se, hvor meget ledig plads der er til rådighed. Kommandoen df er meget enklere at bruge, da den kun viser de monterede filsystemer og deres brugsstatistik. Endnu en gang vil vi bruge flaget -h til at gøre outputtet menneskeligt læsbart.

sudo df -h

Ideen er at opgøre resultaterne af du og df kommandoerne. Enhver uoverensstemmelse peger på diskplads, der ikke er frit tilgængelig, selvom den ikke bruges af nogen filer eller mapper.

Hvorfor viser Linux(Does Linux Show) "Ingen plads tilbage(Space Left) på enheden"?

Hvis du ser fejlmeddelelsen "Ingen plads tilbage på enheden", selvom du har tilstrækkelig ledig plads på din disk, er det ikke hardwaren, der er skyld i. At finde ud af den nøjagtige årsag til fejlen kan tage lidt fejlfinding.

  • Nyligt slettet fil: Den mest almindelige årsag til at se denne fejl er en nyligt slettet fil. Ofte slettes en fil, mens en proces stadig bruger den, hvilket holder pladsen reserveret, selvom filen allerede er væk.
  • Ikke nok inoder(Enough Inodes) : En anden hyppig årsag er ikke nok inoder(inodes) . Inoder er indekssiderne i et Unix -filsystem, der indeholder metadataene for hver fil på lager. Inoder er dog ikke ubegrænsede, og at løbe tør for inoder før lagerpladsen kan give dig fejlen "Ingen plads tilbage på enheden".
  • Defekt harddisk(Hard) : Så er der selvfølgelig muligheden for, at harddisken simpelthen fejler, og meget af den tilsyneladende ledige plads optages af dårlige sektorer. Da systemet ikke kan skrive nogen filer til disse placeringer, giver det en fejl.

Rettelse 1: Genstart processer ved hjælp af slettede filer(Using Deleted Files)

Den mest sandsynlige årsag til fejlen "Ingen plads tilbage på enheden" er en proces, der stadig bruger en slettet fil. Heldigvis er det nemt at rette denne fejl. Du skal bare genstarte processen(restart the process) for at frigøre den reserverede lagerplads.

  1. For at finde den problematiske proces skal du bruge kommandoerne lsof og grep. Kommandoen lsof vil give dig en liste over alle åbne filer, der bruges af kørende processer, og grep kan indsnævre valget til dem, der slettes. Så indtast sudo lsof / | grep slettet hvor / er basismappen og | et rør til at linke lsofs output til grep.

  1. Nu kan du genstarte den berørte proces med kommandoen sudo systemctl restart service_name, hvor tjenestenavnet er navnet på den tjeneste, der dukkede op i søgningen.

  1. Hvis der er flere processer som denne, eller du bare ikke vil genere med at finde specifikke tjenester, kan du bare nulstille dem alle med kommandoen sudo systemctl daemon-reload. Dette regenererer alle afhængigheder, idet der tages højde for eventuelle ændringer i filsystemet.

Herefter skulle den lagerplads, der holdes op af processen, være tilgængelig igen, så du kan skrive filer uden at løbe ind i nogen fejl.

Fix 2: Tjek inoder

Mens hvert drev har et stort antal inoder, er det endeligt. Og hvis dit system er fyldt med et utroligt antal filer, er det muligt at nå denne grænse, før drevets lagerkapacitet opbruges. Det er derfor, det er bedre at have store filer frem for for mange små.

Du kan nemt kontrollere tilgængeligheden af ​​inoder ved at bruge flaget -i med kommandoen df. Sådan her:

sudo df -i

Dette vil tydeligt fortælle det samlede antal inoder, der er til stede i filsystemet, sammen med den mængde, der aktuelt er i brug. Hvis der ikke er nogen ledige inoder tilbage på dit system, er dette kilden til fejlen "Ingen plads tilbage på enheden".

Da inoder kun oprettes ved første formatering af drevet, er der ingen måde at generere flere inoder på. Alt du kan gøre er at slette alle unødvendige filer for at frigøre inoder til fremtidige filer.

Rettelse 3: Marker dårlige blokke

Datakorruption(Data) er enhver harddisks uundgåelige skæbne. Selvom et nyt drev ikke vil løbe ind i dette problem, vil ældre harddiske gradvist begynde at blive "dårlige".

Hvad dette betyder er, at dele af harddisken gøres ubrugelige, selvom filsystemet stadig betragter dem som funktionelle. Disse dårlige blokke puster fejlagtigt den tilsyneladende ledige plads på drevet op, når der i sandhed ikke kan skrives filer til dem. Dette fører til fejlen "Ingen plads tilbage på enheden", da operativsystemet forsøger og undlader at gemme data på disse steder.

Der er ingen reel måde at løse dette problem på, da dårlige sektorer er et resultat af det fysiske slid på en harddisk. Det eneste du kan gøre er at markere de dårlige sektorer, så de ikke længere refereres til af filsystemet.

For at gøre dette kræver det, at du starter fra en live-cd , da du ikke kan udføre et filsystemtjek(File System Check) på et kørende drev. Når du har gjort det, skal du bare bruge følgende kommando:

sudo fsck -vcck /dev/sda

Dette erstatter /dev/sda med stien til det drev, du vil reparere. Dette vil automatisk opdage alle dårlige blokke på drevet og markere dem som ubrugelige. Det vil dog ikke give dig nogen ekstra lagerkapacitet, så vær forberedt på at rydde op i nogle ubrugelige filer for at frigøre plads på drevet.

Hvad er den bedste måde at rette fejlen "Ingen plads tilbage på enheden"?

Den sædvanlige grund til at se fejlen "Ingen plads tilbage på enheden" på Ubuntu eller enhver anden Linux -distro er en slettet fil, der stadig bruges af en kørende proces. Dette reserverer det lager, der var optaget af filen, hvilket forhindrer andre operationer i at skrive data til det pågældende rum.

At løse dette problem er også det nemmeste, da alt du skal gøre er at genstarte den pågældende proces. De andre årsager til fejlen er dog ikke så lette at løse.

Uanset om dit drev er plaget af dårlige datablokke eller er løbet tør for inoder, er der ingen direkte måde at løse disse problemer på. Du skal slette eksisterende filer for at give plads til, at nye data kan skrives.



About the author

Jeg er webudvikler med erfaring med at arbejde med både Windows 11 og 10. Jeg har også været Firefox-bruger i mange år og er blevet ret dygtig til at bruge den helt nye Xbox One-spilkonsol. Mine store interesser ligger inden for softwareudvikling, specifikt inden for web- og mobiludvikling, samt datavidenskab. Jeg er meget vidende om forskellige computersystemer og deres brug, så jeg kan give upartisk feedback på forskellige programmer eller tjenester, du måtte bruge.



Related posts