Hjälp! Min /boot -partition är full i mitt linux-system, nu kan jag inte uppdatera linux-kärnan, hur gör jag?


Om /boot blir full kan du inte installera nya versioner av Linux. Många är oroliga över att "pilla" med /boot  - med rätta! gör man fel i /boot kan man mycket väl fastna med ett system som inte bootar.

 

Det du behöver göra när /boot är full är egentligen att:

1. Frigöra utrymmet. Detta gör man lämpligen genom att avinstallera gamla versioner av linux som inte längre behövs.

2. Säkerställa att du INTE avinstallerar den version av Linux som just nu körs på din server!

3. Skapa om bootfilerna (grub-konfigurationen)

 

4. Efter att du gjort detta kan du uppdatera Linuxkärnan på nytt i ditt system.

 

Ett smart och enkelt sätt att göra allt detta utan att riskera att någonting går fel är att som root köra följande kommando som är skriven för i första hand Ubuntu-system (fungerar EJ i Red Hat, CentOS mfl system utan enbart i Linuxbaserade operativsystem som är baserade på Debian/Ubuntu):

 

dpkg --get-selections|grep 'linux-image*'|awk '{print $1}'|egrep -v "linux-image-$(uname -r)|linux-image-generic" |while read n;do apt-get -y remove $n;done

Det som kodsnutten ovan gör är i tur blir lite mer överskådligt här:

 

dpkg --get-selections | \
  grep 'linux-image*' | \
  awk '{print $1}' | \
  egrep -v "linux-image-$(uname -r)|linux-image-generic" | \
  while read n
  do
    apt-get -y remove $n
  done

 

Du börjar med dpkg titta efter vilka versioner av Linux som finns (grep) och hämta ut allt som matchar linux-image-generic (som är en vanlig sorts linuxkärna, använder du istället linux-image-server så byter du ut mot detta).

Därefter hämtar "snurran" sig igenom alla förekomster och avinstallerar dem som INTE matchar på uname -r vilket är den version som körs just nu.

 

Vill du först bara se vilken version av Linux du kör just nu (rekommenderas) så kan du alltså, som root, köra programmet uname -r.

 

Föredrar du att manuellt avinstallera vissa kärnor så gör du det genom att lista filerna i /boot och manuellt plocka bort dem var för sig med tex: apt-get remove linux-image-<version>-generic.

 

Har du således version 2.6.14-1 av Linux installerad men kör just nu 2.6.14-2 så ser kommandot ut så här:

apt-get remove linux-imge-2.6.14-1-generic

 

Det smarta med Ubuntus sätt att hantera detta är att du nu automatiskt kommer att få alla boot-filerna omskapade och du behöver inte göra någonting alls mer.

För säkerhetsskull kan du starta om systemet, särskilt om det är första gången du gör det så rekommenderar vi att du tar bort en kärna som inte används, uppdaterar systemet med kommandot:

apt-get updata ; apt-get upgrade

och installerar alla nya program inklusive linux-kärnor.

Nu kan du tryggt starta om ditt system och köra den senaste versionen av Linux.

 

Om du använder en annan sorts linux än Ubuntu, Debian eller ett Linux baserat på någon av dessa använder du motsvarande verktyg för din distribution, tex yum om du använder CentOS eller Red Hat.

Principen är exakt densamma och du måste tänka på att inte avinstallera den version av Linux som du kör just nu, dvs du kan som mest plocka bort alla gamla kärnor utom en.

 

Eftersom syftet var att frigöra utrymme för att installera nya kärnor så bör du nu kontrollera på nytt att det går att installera den nya kärnan.

Med YUM gör du det så här:

yum update

 

Var noga med att läsa vad som skrivs på skärmen. Verkar det för svårt? Ring vår support och få hjälp. Tips: be oss gärna göra en backup om det känns osäkert!

 

Taggar: /boot, apt-get, boot, centos, debian, grub, kärna, lilo, linux, linuxkärna, red hat, ubuntu, yum
Senast uppdaterad:
2014-08-26 21:19
Av: :
compartment AB
Ny version:
1.0
Resultat av röstning:0 (0 röster)

Du kan inte kommentera den här frågan

Chuck Norris has counted to infinity. Twice.

bannerbyte.eu