Sida 1 av 1

För liten bootpartition...

Postat: 06 jun 2014, 15:03
av tberkert
Kan inte uppdatera längre för att min bootpartition är för liten. Provat enligt förslag med kommandot "sudo app-get clean", men det gör ingen skillnad. Får oxo förslaget att rensa gamla paket, men vet inte vilka filer det är. Går det att utöka bootpartitionen? Finns plats på disken.
tberkert.

Re: För liten bootpartition...

Postat: 06 jun 2014, 15:28
av johanre
dpkg -l 'linux-image*' | awk '/^ii/ { print $2 }' | grep "[0-9]" | grep -v `uname -r` | head -n -2 | xargs apt-get -y purge


Sent from my C6903 using Tapatalk

Re: För liten bootpartition...

Postat: 06 jun 2014, 15:28
av johanre
Måste köras som root.

Sent from my C6903 using Tapatalk

Re: För liten bootpartition...

Postat: 07 jun 2014, 07:24
av itmannen_online
Men nog går det väl bra att utöka den med Gparted?

Re: För liten bootpartition...

Postat: 09 jun 2014, 08:23
av johanre
itmannen_online skrev:Men nog går det väl bra att utöka den med Gparted?
Beror på: (1) hur bootpartitionen är skapad, (2) är det fyllt till bredden så kan man inte utöka utan att städa först.

Re: För liten bootpartition...

Postat: 09 jun 2014, 15:37
av Barre
johanre skrev:dpkg -l 'linux-image*' | awk '/^ii/ { print $2 }' | grep "[0-9]" | grep -v `uname -r` | head -n -2 | xargs apt-get -y purge

jag gillart! vilken one-liner :)
men, att klippa och klistra sådana här "kryptiska" rader utan att förstå dem ska man inte göra, så låt mig göra ett försök att förklara.

dpkg -l 'linux-image*'
Det kommandot kommer att lista alla linux kernels som paket hanteraren har vetskap om.

sen "slangas" (pipe) resultatet över till nästa kommando med | tecknet

awk '/^ii/ { print $2 }'
awk är program för text hantering, det lilla kommandot kommer enbart skriva ut rader som börjar med två stycken ii ('/^ii/), vilket betyder att denna kernel är installerad. print $2 meför att enbart den andra kolumenn i textraden kommer skrivas ut.

sen "slangas" (pipe) resultatet över till nästa kommando med | tecknet

grep "[0-9]"
grep är ett text-matchnings program och detta medför att alla rader från föregående kommando som inte innehåller siffror kommer filtreras bort.

sen "slangas" (pipe) resultatet över till nästa kommando med | tecknet

grep -v `uname -r`
Detta måste brytas ut till två bitar, först kommer kommandot innanför `` att utföras, alltså uname -r, uname är ett program som skriver ut systeminformation och med växeln -r så skriver den ut den "kernel release" som förnärvarande körs på systemet.
-v växeln till grep betyder att den skall invertera text-matchningen, alltså skriv ut alla rader som inte innehåller den nuvarande kernel-releasen.

sen "slangas" (pipe) resultatet över till nästa kommando med | tecknet

head -n -2
detta kommando kommer ta bort de två understa raderna i output från föregående kommando

sen "slangas" (pipe) resultatet över till nästa kommando med | tecknet

xargs apt-get -y purge
xargs tar input från standard input (det som slangats över från föregånde kommado) rad för rad och sätter sist i kommandot "apt-get -y purge", apt-get -y purge kommer i sin tur att avinstallera de kernels


Har dock upptäckt en liten "bugg" i denna one-liner (kanske inte är aktuell på ubuntu dock), men jag har ett meta paket (linux-image-amd64) som skulle blivit avinstallerat om jag kört det :)

Re: För liten bootpartition...

Postat: 09 jun 2014, 16:22
av johanre
Helt rätt, Barre - och tack! Jag borde ha förklarat lite mer kring det. :P Min ursäkt: jag hade endast tillgång till mobilen under helgen och ville ändå ge ett snabbt svar.

Re: För liten bootpartition...

Postat: 10 jun 2014, 14:47
av tberkert
Tack för svar, men jag blev inte mycket klokare. Troligtvis för att jag är ny på Linux. Det första kommandot genererade en lista, men när jag försökte gå vidare hände ingenting. Ser ju att det hänvisar till äldre versioner, som antagligen bara kan raderas. När jag kollar i mappen Boot hittar jag inget som påminner om den listning jag fick fram i terminalfönstret.
Så problemet kvarstår.
Tommy

Re: För liten bootpartition...

Postat: 10 jun 2014, 15:02
av tberkert
Hittar i mappen boot ett antal packade filer av typen "initrd.img-3.11.0-12-generic" 13, o.s.v av äldre datum. Senaste heter "initrd.img-3.11.0-20-generic". Kan jag radera de med tidigare datum? Det skulle räcka för att frigöra tillräckligt utrymme.
Tommy

Re: För liten bootpartition...

Postat: 10 jun 2014, 16:01
av johanre
Tommy; har du raderat några sådan filer i /boot redan? Det rekommenderas nämligen inte, du krånglar i så fall till det för systemets pakethantering.

Så; om jag återgår till min lite slarvigt formulerade lösning. Kör först (i terminalen):

Kod: Markera allt

sudo su -
Och därefter:

Kod: Markera allt

dpkg -l 'linux-image*' | awk '/^ii/ { print $2 }' | grep "[0-9]" | grep -v `uname -r` | head -n -2 | xargs apt-get -y purge
Då borde ett antal paket försvinna och även rensas bort från din /boot. Meddela gärna om du får några felmeddelanden när du kör ovan kommando.

Re: För liten bootpartition...

Postat: 10 jun 2014, 16:32
av tberkert
..så hela denna rad är som ett kommando? Bara att kopiera och klistra in?
Hur vet jag att jag står i rätt katalog?

Re: För liten bootpartition...

Postat: 10 jun 2014, 16:37
av tberkert
Ja nu hände det saker. Nästan 200 MB ledigt. Får se nu om det går att uppdatera.
Tommy

Re: För liten bootpartition...

Postat: 10 jun 2014, 16:38
av tberkert
...och det gör det ju. Tack för hjälpen.
Tommy

Re: För liten bootpartition...

Postat: 10 jun 2014, 17:31
av johanre
Lysande. :) Markerar du denna tråd som löst? (Klicka på den lilla gröna bocken)