Topp 3 sätt att fixa felet "Inget utrymme kvar på enheten" i Linux

Fel utan tydlig orsak är de mest irriterande problemen att ta itu med. Och även om Linux vanligtvis är specifik i sina felmeddelanden, är detta en av få gånger när det tappar bollen.

Att få felet "Ingen plats kvar på enheten" förklarar väldigt lite, särskilt om din enhet är långt ifrån full. Varför visas detta felmeddelande? Varför kan du inte skapa nya filer trots att du har tillräckligt med utrymme på disken? Och viktigast av allt, hur fixar du det?

Låt oss ta reda på.

Har din hårddisk verkligen tillräckligt med utrymme(Hard Drive Actually Have Enough Space) ?

Innan du skyndar dig att hitta en lösning, se till att det finns ett problem, till att börja med. När allt kommer omkring, om diskutrymme faktiskt har tagit slut på ditt system, finns det ingen anledning att få panik. Du kan bara ta bort onödig data för att frigöra mer utrymme.

Det finns två Linux- systemkommandon för att få information om diskutrymme – du och df. Kommandot du uppskattar diskutrymmesanvändningen, medan df-kommandot analyserar det lediga utrymmet på disken. Att använda dem tillsammans med sudo ger dig en korrekt rapport om hur mycket utrymme som faktiskt finns tillgängligt på disken.

  1. Låt oss börja med kommandot du. Dess utdata kan vara ganska långa och besvärliga att gå igenom, så vi kommer att använda flaggorna -s och -h. -s sammanfattar resultaten, medan -h säkerställer att det är läsbart för människor. Så skriv in kommandot sudo du -sh / där / pekar på baskatalogen.

  1. Oroa dig inte för alla meddelanden som nekats tillstånd – det är så det trålar igenom alla underkataloger i systemet. Beroende på storleken på enheten kan du behöva låta den vara igång ett tag, eftersom den rekursivt går igenom allt.

  1. När du är klar med skanningen kommer den att mata ut en enkel lista med kataloger tillsammans med deras storlekar. Detta är till exempel resultatet av kommandot du som tillämpas på en vanlig katalog.

Nu kommer vi att använda df för att se hur mycket ledigt utrymme som finns tillgängligt. Kommandot df är mycket enklare att använda eftersom det bara visar de monterade filsystemen och deras användningsstatistik. Återigen kommer vi att använda flaggan -h för att göra utdata läsbar för människor.

sudo df -h

Tanken är att sammanställa resultaten av kommandona du och df. Alla avvikelser pekar på diskutrymme som inte är fritt tillgängligt trots att det inte används av några filer eller mappar.

Varför visar Linux(Does Linux Show) "Inget utrymme kvar(Space Left) på enheten"?

Om du ser felmeddelandet "Inget utrymme kvar på enheten" trots att du har tillräckligt med ledigt utrymme på din hårddisk, är det inte hårdvaran som är felet. Att ta reda på den exakta orsaken till felet kan ta lite felsökning.

  • Nyligen raderad fil: Den vanligaste orsaken till att det här felet visas är en nyligen raderad fil. Ofta tas en fil bort medan en process fortfarande använder den, vilket behåller utrymmet reserverat även om filen redan är borta.
  • Inte tillräckligt med inoder(Enough Inodes) : En annan vanlig orsak är inte tillräckligt med inoder(inodes) . Inoder är indexsidorna i ett Unix -filsystem, som innehåller metadata för varje fil på lagring. Inoder är dock inte obegränsade och att ta slut på inoder innan lagringsutrymmet kan ge dig felet "Inget utrymme kvar på enheten".
  • Felaktig hårddisk(Hard) : Sedan finns det naturligtvis möjligheten att hårddisken helt enkelt går sönder, och mycket av det uppenbara lediga utrymmet tas upp av dåliga sektorer. Eftersom systemet inte kan skriva några filer till dessa platser, ger det ett fel.

Fix 1: Starta om processer med borttagna filer(Using Deleted Files)

Den mest troliga orsaken till felet "Inget utrymme kvar på enheten" är en process som fortfarande använder en raderad fil. Tack och lov är det enkelt att åtgärda detta fel. Du behöver bara starta om processen(restart the process) för att frigöra det reserverade lagringsutrymmet.

  1. För att hitta den problematiska processen måste du använda kommandona lsof och grep. Kommandot lsof ger dig en lista över alla öppna filer som används av processer som körs, och grep kan begränsa urvalet till de som tas bort. Så skriv in sudo lsof / | grep raderade där / är baskatalogen och | ett rör för att länka lsofs utdata till grep.

  1. Nu kan du starta om den berörda processen med kommandot sudo systemctl restart service_name, där tjänstens namn är namnet på tjänsten som dök upp i sökningen.

  1. Om det finns flera sådana här processer eller om du bara inte vill bry dig om att hitta specifika tjänster, kan du bara återställa dem alla med kommandot sudo systemctl daemon-reload. Detta återskapar alla beroenden, med hänsyn till eventuella ändringar i filsystemet.

Efter detta bör lagringsutrymmet som hålls uppe av processen vara tillgängligt igen, så att du kan skriva filer utan att stöta på några fel.

Fix 2: Kontrollera inoder

Även om varje enhet har ett stort antal inoder, är den ändlig. Och om ditt system är fyllt med ett otroligt antal filer är det möjligt att nå denna gräns innan du tar slut på lagringskapaciteten på enheten. Det är därför det är bättre att ha stora filer snarare än för många små.

Du kan enkelt kontrollera tillgängligheten för inoder genom att använda flaggan -i med kommandot df. Så här:

sudo df -i

Detta kommer tydligt att berätta det totala antalet inoder som finns i filsystemet, tillsammans med mängden som används för närvarande. Om det inte finns några lediga inoder kvar på ditt system är detta källan till felet "Inget utrymme kvar på enheten".

Eftersom inoder bara skapas vid första formateringen av enheten, finns det inget sätt att generera fler inoder. Allt du kan göra är att radera alla onödiga filer för att frigöra inoder för framtida filer.

Fix 3: Markera dåliga block

Datakorruption(Data) är det oundvikliga ödet för vilken hårddisk som helst. Även om en ny enhet inte kommer att stöta på det här problemet, kommer äldre hårddiskar gradvis att börja bli "dåliga".

Vad detta betyder är att delar av hårddisken görs oanvändbara, även om filsystemet fortfarande anser att de fungerar. Dessa dåliga block blåser felaktigt upp det uppenbara lediga utrymmet på enheten, när det i själva verket inte går att skriva några filer till dem. Detta leder till felet "Inget utrymme kvar på enheten", eftersom operativsystemet försöker och misslyckas med att lagra data på dessa platser.

Det finns inget riktigt sätt att lösa det här problemet, eftersom dåliga sektorer är ett resultat av det fysiska slitaget på en hårddisk. Det enda du kan göra är att markera de dåliga sektorerna så att de inte längre refereras av filsystemet.

För att göra detta måste du starta från en live-CD , eftersom du inte kan utföra en filsystemkontroll(File System Check) på en körande enhet. När du har gjort det, använd bara följande kommando:

sudo fsck -vcck /dev/sda

Detta ersätter /dev/sda med sökvägen för den enhet du vill reparera. Detta kommer automatiskt att upptäcka alla dåliga block på enheten och markera dem som oanvändbara. Det kommer dock inte att ge dig någon extra lagringskapacitet, så var beredd att rensa upp några värdelösa filer för att frigöra utrymme på enheten.

Vad är det bästa sättet att åtgärda felet "Inget utrymme kvar på enheten"?

Den vanliga anledningen till att se felet "Inget utrymme kvar på enheten" på Ubuntu eller någon annan Linux -distro är en raderad fil som fortfarande används av en pågående process. Detta reserverar lagringen som var upptagen av filen, vilket förhindrar andra operationer från att skriva data till det utrymmet.

Att åtgärda det här problemet är också det enklaste, eftersom allt du behöver göra är att starta om processen i fråga. De andra orsakerna till felet är dock inte så lätta att lösa.

Oavsett om din enhet plågas av dåliga datablock eller har slut på inoder, finns det inget direkt sätt att lösa dessa problem. Du måste ta bort befintliga filer för att göra plats för ny data att skrivas.



About the author

Jag är en erfaren Windows 10 och 11/10 expert, med erfarenhet av både webbläsare och smartphone-appar. Jag har varit mjukvaruingenjör i över 15 år och har arbetat med ett antal stora namnföretag, inklusive Microsoft, Google, Apple, Ubisoft med flera. Jag har också undervisat i Windows 10/11-utveckling på högskolenivå.



Related posts