Rimozione delle vecchie voci del kernel in Grub [duplicato]

21

Cancella regolarmente i vecchi kernel lasciando solo le ultime due voci usando Synaptic.

Sto usando Precise. Comunque nel mio Grub "precedente versione di Linux" menu ci sono alcune voci etichettate 2.6.8. Non riesco a trovare queste immagini linux in Synaptic.

dpkg -l | grep linux-image

si ottiene:

rc  linux-image-3.0.0-17-generic           3.0.0-17.30                         
    Linux kernel image for version 3.0.0 on x86/x86_64
ii  linux-image-3.2.0-27-generic           3.2.0-27.43
Linux kernel image for version 3.2.0 on 32 bit x86 SMP
ii  linux-image-3.2.0-29-generic           3.2.0-29.46
Linux kernel image for version 3.2.0 on 32 bit x86 SMP
ii  linux-image-3.4.0-030400-generic       3.4.0-030400.201205210521
Linux kernel image for version 3.4.0 on 32 bit x86 SMP
ii  linux-image-generic                    3.2.0.29.31
Generic Linux kernel image

Sudo update-grub fornisce:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.4.0-030400-generic
Found initrd image: /boot/initrd.img-3.4.0-030400-generic
Found linux image: /boot/vmlinuz-3.2.0-29-generic
Found initrd image: /boot/initrd.img-3.2.0-29-generic
Found linux image: /boot/vmlinuz-3.2.0-27-generic
Found initrd image: /boot/initrd.img-3.2.0-27-generic
Found linux image: /boot/vmlinuz-2.6.38-11-generic
Found initrd image: /boot/initrd.img-2.6.38-11-generic
Found linux image: /boot/vmlinuz-2.6.38-10-generic
Found initrd image: /boot/initrd.img-2.6.38-10-generic
Found linux image: /boot/vmlinuz-2.6.38-8-generic
Found initrd image: /boot/initrd.img-2.6.38-8-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows Vista (loader) on /dev/sda1

sudo apt-get remove linux-image-2.6.8-8-generic dà:

E: Unable to locate package linux-image-2.6.8-8-generic
E: Couldn't find any package by regex 'linux-image-2.6.8-8-generic'

La mia cartella di avvio contiene quanto segue:

abi-2.6.38-10-generic         initrd.img-3.4.0-030400-generic
abi-2.6.38-11-generic         memtest86+.bin
abi-2.6.38-8-generic          memtest86+_multiboot.bin
abi-3.2.0-27-generic          System.map-2.6.38-10-generic
abi-3.2.0-29-generic          System.map-2.6.38-11-generic
abi-3.4.0-030400-generic      System.map-2.6.38-8-generic
config-2.6.38-10-generic      System.map-3.2.0-27-generic
config-2.6.38-11-generic      System.map-3.2.0-29-generic
config-2.6.38-8-generic       System.map-3.4.0-030400-generic
config-3.2.0-27-generic       vmcoreinfo-2.6.38-10-generic
config-3.2.0-29-generic       vmcoreinfo-2.6.38-11-generic
config-3.4.0-030400-generic   vmcoreinfo-2.6.38-8-generic
extlinux                      vmlinuz-2.6.38-10-generic
grub                          vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-10-generic  vmlinuz-2.6.38-8-generic
initrd.img-2.6.38-11-generic  vmlinuz-3.2.0-27-generic
initrd.img-2.6.38-8-generic   vmlinuz-3.2.0-29-generic
initrd.img-3.2.0-27-generic   vmlinuz-3.4.0-030400-generic
initrd.img-3.2.0-29-generic

e

Rendimenti
ls -l /etc/grub.d
:
total 56
-rwxr-xr-x 1 root root 6715 Apr 17 20:16 00_header
-rwxr-xr-x 1 root root 5522 Oct  1  2011 05_debian_theme
-rwxr-xr-x 1 root root 7407 May 17 09:22 10_linux
-rwxr-xr-x 1 root root 6335 Apr 17 20:16 20_linux_xen
-rwxr-xr-x 1 root root 1588 May  3  2011 20_memtest86+
-rwxr-xr-x 1 root root 7603 Apr 17 20:16 30_os-prober
-rwxr-xr-x 1 root root  214 Oct  1  2011 40_custom
-rwxr-xr-x 1 root root   95 Oct  1  2011 41_custom
-rw-r--r-- 1 root root  483 Oct  1  2011 README
gdisk -l /dev/sda

rendimenti:

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format.
***************************************************************

Disk /dev/sda: 312581808 sectors, 149.1 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): F832A498-05E1-4615-B5B1-757ACB4A757A
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 312581774
Partitions will be aligned on 2048-sector boundaries
Total free space is 4183661 sectors (2.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048        61442047   29.3 GiB    0700  Microsoft basic data
   3       163842048       169986047   2.9 GiB     8200  Linux swap
   4       169986048       312578047   68.0 GiB    0700  Microsoft basic data
   5        61444096       159666175   46.8 GiB    8300  Linux filesystem

Aiutaci a rimuovere i vecchi e inesistenti kernel da Grub.

    
posta To Do 16.08.2012 - 00:54

7 risposte

10

Ho trovato quale fosse questo problema.

Il problema era che, aggiornando Ubuntu, installando tramite un liveUSB invece di eseguire un normale aggiornamento, si lasciava dietro i vecchi file del kernel nella cartella / boot.

Ora che ho eseguito l'aggiornamento allo stesso modo dal 12.10 al 13.04, ho riscontrato la stessa situazione.

La soluzione è cancellare manualmente tutti i file relativi ai vecchi kernel nella cartella / boot ed eseguire sudo update-grub . Le voci extra sono scomparse.

    
risposta data To Do 18.05.2013 - 14:56
40
  • Apri un terminale ( Ctrl + Alt + T ).

  • Digita uname -r . Questo ti mostrerà il kernel che stai utilizzando al momento, quindi non vuoi rimuoverlo.

  • Esegui il seguente comando: dpkg --list | grep linux-image . Questo mostrerà tutti i kernel che sono installati.

  • Annota i nomi di tutti i kernel che vuoi rimuovere.

  • Per rimuovere i kernel, esegui: sudo apt-get purge linux-image-x.x.x.x-xyz ( sostituisci il nome del kernel con uno appropriato ).

  • Aggiorna il GRUB: sudo update-grub2

E, hai finito.

Bonus: ecco un piccolo elenco per fare tutto questo automaticamente:

sudo apt-get purge $( dpkg --list | grep -P -o "linux-image-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )
    
risposta data green 04.10.2012 - 18:17
5

Prova questo comando. È una versione raffinata dello stesso comando apt-get remove

sudo apt-get autoremove linux-image-3.2.0-23-generic-pae

Sostituendo rimuovi con autoremove , il processo di rimozione individua e rimuove automaticamente anche altre dipendenze, così avrai una disinstallazione pulita, piuttosto che dover andare qui e lì ed elimina gli avanzi.

Ripeti il ​​processo anche per gli altri kernel precedenti.

Dopo, esegui

sudo update-grub

Dopodiché vedrai solo il kernel più recente.

    
risposta data Omal Lasitha 04.10.2012 - 18:01
3

Solitamente avvio solo Synaptic (che deve essere installato separatamente in questi giorni), cercare "linux" nella categoria Installato e contrassegnare tutte le vecchie versioni del kernel e degli header di linux (cioè tutti tranne quello attuale) da rimosso. Quando vengono disinstallati, vengono rimossi dal menu di GRUB.

Ci deve essere un bel comando a riga singola per farlo, ma è più sicuro farlo manualmente

    
risposta data Sergey 16.08.2012 - 01:08
3

La soluzione più intelligente userebbe ubuntu-tweak . Dopo l'installazione, attivala, vai a Janitor , scegli Old Kernel , seleziona i vecchi kernel che intendi rimuovere e Clean . Questo è tutto! (Nota che solo i vecchi kernel appaiono nel custode)

    
risposta data SeMeKh 16.08.2012 - 19:40
3

Ti suggerisco di inserirlo in una sessione di terminale ( Alt - Ctrl - T ):

sudo update-grub

Questo comando fa sì che grub usi os-prober e aggiorni il menu.

Se hai delle partizioni con vecchie versioni di Ubuntu su di esse che avevano usato grub (sembra che l'OP avesse una partizione di rilascio natty da qualche parte, forse di più) è necessario ripulirle anche prima di eseguire update-grub sul sistema corrente. os-prober trova Windows e altre partizioni Linux. Per altre partizioni Linux copia gli elementi dai loro menu di grub, se ce ne sono, piuttosto che guardare i loro file del kernel.

Se hai una configurazione veramente incasinata la soluzione migliore potrebbe essere quella di avviare il tuo sistema Ubuntu e reinstallare grub con:

sudo apt-get --reinstall install grub2

Durante la reinstallazione di grub, verrà ricreato il /etc/default/grub e il file /boot/grub/menu.cfg , basato sui kernel installati in quella partizione e sui kernel installati nelle configurazioni di grub di altre (presumibilmente più vecchie) partizioni di Ubuntu (non sembra essere qualsiasi per l'OP).

    
risposta data John S Gruber 16.08.2012 - 03:09
1

Per Ubuntu 12.04 LTS (Preciso) a 64 bit (su non PAE a 32 bit)

Verifica quali versioni sono presenti:

sudo update-grub

Rimuovi prima il più vecchio e non rimuovi la versione corrente / più recente:

sudo apt-get remove linux-image-3.2.0-23-generic
sudo apt-get remove linux-image-3.2.0-24-generic
sudo apt-get remove linux-image-3.2.0-25-generic

Ricontrolla quale versione è ora presente. (Opzionale)

Nota: questo passaggio è obbligatorio , se rimuovi tutto ma la versione più recente (o ne esci)

sudo update-grub

Per Ubuntu 12.04 LTS (Precise) 32bit (PAE)

Verifica quali versioni sono presenti:

sudo update-grub

Rimuovi prima il più vecchio e non rimuovi la versione corrente / più recente:

sudo apt-get remove linux-image-3.2.0-23-generic-pae
sudo apt-get remove linux-image-3.2.0-24-generic-pae
sudo apt-get remove linux-image-3.2.0-25-generic-pae

Ricontrolla quale versione è ora presente. (Opzionale)

Nota: questo passaggio è obbligatorio , se rimuovi tutto ma la versione più recente (o ne esci)

sudo update-grub
    
risposta data david6 16.08.2012 - 10:32

Leggi altre domande sui tag