Qual è il modo più sicuro per pulire / avviare la partizione?

255

Ho 200 MB assegnati per la partizione /boot . Ogni volta che cerco di aggiornare il kernel, ricevo un messaggio di errore che afferma sostanzialmente che /boot è pieno.

Che cosa posso fare per pulire /boot e rimuovere / eseguire il backup dei kernel precedenti?

    
posta koba101 14.09.2013 - 21:41

7 risposte

306

Metodo della riga di comando:

Prima controlla la versione del tuo kernel, quindi non cancellerai l'immagine del kernel in uso, in esecuzione:

uname -r

Ora esegui questo comando per un elenco di kernel installati:

dpkg --list 'linux-image*' | grep ^ii

ed elimina i kernel che non vuoi / hanno più bisogno eseguendo questo:

sudo apt-get remove linux-image-VERSION

Sostituisci VERSION con la versione del kernel che vuoi rimuovere.

Quando hai finito di rimuovere i kernel più vecchi, puoi eseguirlo per rimuovere tutti i pacchetti che non ti serviranno più:

sudo apt-get autoremove

E finalmente puoi lanciarlo per aggiornare la lista del kernel di grub:

sudo update-grub
    
risposta data PeppeDAlterio 14.09.2013 - 22:34
250

NOTA: questo è solo se non puoi usare apt per ripulire a causa di un pieno al 100% / boot

Se apt-get non funziona perché il tuo / boot è al 100%, dovrai prima pulire / avviare. Questo probabilmente ha catturato un aggiornamento del kernel in un'installazione parziale, il che significa che apt ha praticamente bloccato tutto e continuerà a dirti di eseguire apt-get -f install anche se il comando continua a non riuscire.

Ottieni l'elenco delle immagini del kernel e determina cosa puoi fare senza. Questo comando mostrerà i kernel installati ad eccezione di un sudo dpkg --list 'linux-image*'|awk '{ if (=="ii") print }'|grep -v 'uname -r' attualmente in esecuzione. Nota le due versioni più recenti nell'elenco. Non devi preoccuparti di quello in esecuzione in quanto non è elencato qui. Puoi verificarlo con uname -r .

Crea un comando per eliminare tutti i file in / boot per kernel che non contano con l'espansione delle bretelle per mantenerti sano. Ricorda di escludere le attuali e due più recenti immagini del kernel. Esempio: sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-* . Puoi anche usare un intervallo con la sintassi {80..84}.

sudo apt-get -f install per ripulire ciò che rende scorbutico un po 'un'installazione parziale.

Se si verifica un errore che include una riga come "Errore interno: impossibile trovare l'immagine (/boot/vmlinuz-3.2.0-56-generic)", quindi eseguire il comando sudo apt-get purge linux-image-3.2.0-56-generic (con la versione appropriata ).

Infine, sudo apt-get autoremove per cancellare i vecchi pacchetti di immagine del kernel che sono stati resi orfani dal boot pulito manuale.

Suggerimento, esegui sudo apt-get update e sudo apt-get upgrade per occuparti di eventuali aggiornamenti di cui è stato eseguito il backup in attesa di scoprire la partizione completa / di avvio.

Suggerimento2, rivedere link e prendere in considerazione l'impostazione dell'aggiornamento automatico: Rimuovi-Dipendenze inutilizzate su true in / etc / apt / apt.conf.d / 50unattended-aggiornamenti. Questo sarà l'equivalente di eseguire l'autoremove dopo ogni aggiornamento della sicurezza per essere sicuri di ripulire i kernel inutilizzati, ma rimuoverà anche altre cose che pensa siano inutilizzate, salvandoti da questo problema in futuro.

    
risposta data flickerfly 07.03.2014 - 17:54
43

C'è una documentazione a riguardo al link

In breve: usa

sudo apt-get autoremove --purge
# and/or:
sudo purge-old-kernels

Lo strumento purge-old-kernels può essere installato tramite sudo apt install byobu . Ecco la descrizione dalla sua pagina man:

  

Questo programma rimuoverà i vecchi pacchetti di kernel e header dal   sistema, liberando spazio su disco. Non rimuoverà mai il corrente   kernel in esecuzione. Per impostazione predefinita, manterrà almeno gli ultimi 2 kernel,   ma l'utente può sovrascrivere quel valore utilizzando il parametro --keep .

Se si desidera una soluzione di copia-incolla, ReSearchIT Eng ha suggerito quanto segue:

sudo apt install -y byobu
sudo purge-old-kernels -y --keep 1
sudo apt-get -y autoremove --purge
    
risposta data peq 09.08.2016 - 11:12
6

Ho scoperto che è molto più semplice abbandonare la partizione piccola e spostare /boot nella radice. Ciò impedisce anche eventuali problemi di spazio insufficiente in futuro.

Prima sposta i tuoi dati dalla partizione di avvio a root (esegui come sudo -s ):

cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot

Rimuovi (o commenta) la voce /boot in /etc/fstab :

vim /etc/fstab

Aggiorna grub e verifica che tutto sia corretto:

update-grub

apt ora dovrebbe essere aggiornato senza problemi.

Questo lascia una partizione 200mb inutilizzata (che potresti usare per qualcos'altro se ritieni che valga la pena).

    
risposta data laktak 14.04.2017 - 09:43
3

Rimozione di vecchi kernel (per liberare spazio su / boot) vedi: link

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print }' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

Quindi lancia

sudo apt-get update
    
risposta data Amos Folarin 14.08.2017 - 16:09
2

sudo apt-get autoremove

Questo rimuove tutti tranne gli ultimi 2 kernel. Testato su Ubuntu 16.04 LTS quando /boot era al 100% di capacità e apt-get upgrade fallito è l'ultimo aggiornamento del kernel. Il kernel autoremove è iterativo, quindi se hai diversi kernel, verranno rimossi uno alla volta. Quindi sii paziente.

    
risposta data DeepSpace101 03.10.2017 - 18:39
0

Perché farlo a mano quando puoi farlo con uno strumento? Sai che ne avrai bisogno di nuovo in 30 secondi, perché impiegano 30 secondi per inviare un nuovo aggiornamento kernal in questi giorni = P

Raccomando di utilizzare questo strumento, bootnukem

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Quindi

sudo bootnukem --dry-run

Rimuovi --dry-run una volta confermato che sembra sicuro

    
risposta data Jonathan 04.05.2017 - 19:28

Leggi altre domande sui tag