Vraag Verwijderen van oude kernel-items in Grub [duplicate]


Deze vraag heeft hier al een antwoord:

Ik verwijder regelmatig oude kernels en laat alleen de laatste twee vermeldingen over met behulp van Synaptic.

Ik gebruik Precise. In mijn Grub "vorige Linux-versie" menu zijn er echter nogal wat ingangen met de naam 2.6.8. Ik kan deze Linux-afbeeldingen niet vinden in Synaptic.

dpkg -l | grep linux-image

geeft:

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 geeft:

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 geeft:

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'

Mijn opstartmap bevat het volgende:

abi-2.6.38-10 generiek initrd.img-3.4.0-030400-generiek
abi-2.6.38-11-generieke memtest86 + .bin
abi-2.6.38-8 generieke memtest86 + _multiboot.bin
abi-3.2.0-27-generiek System.map-2.6.38-10-generiek
abi-3.2.0-29-generiek System.map-2.6.38-11-generiek
abi-3.4.0-030400-generiek System.map-2.6.38-8-generiek
config-2.6.38-10-generiek System.map-3.2.0-27-generiek
config-2.6.38-11-generiek System.map-3.2.0-29-generiek
config-2.6.38-8-generiek System.map-3.4.0-030400-generiek
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-generiek
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

en

ls -l /etc/grub.d
 opbrengsten:

totaal 56
-rwxr-xr-x 1 root root 6715 17 apr 20:16 00_header
-rwxr-xr-x 1 root root 5522 1 okt 2011 05_debian_theme
-rwxr-xr-x 1 root root 7407 mei 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 3 mei 2011 20_memtest86 +
-rwxr-xr-x 1 rootroot 7603 17 apr. 20:16 30_os-prober
-rwxr-xr-x 1 root root 214 1 okt 2011 40_custom
-rwxr-xr-x 1 root root 95 1 okt 2011 41_custom
-rw-r - r-- 1 root root 483 1 oktober 2011 README
gdisk -l /dev/sda

opbrengsten:

Partitietabel scan:
  MBR: alleen MBR
  BSD: niet aanwezig
  APM: niet aanwezig
  GPT: niet aanwezig


************************************************** *************
Ongeldige GPT en geldige MBR gevonden; MBR converteren naar GPT-formaat.
************************************************** *************

Schijf / dev / sda: 312581808 sectoren, 149.1 GiB
Logische sectorgrootte: 512 bytes
Disk identifier (GUID): F832A498-05E1-4615-B5B1-757ACB4A757A
Partitietabel kan maximaal 128 items bevatten
De eerste bruikbare sector is 34, de laatst bruikbare sector is 312581774
Partities worden uitgelijnd op sectorgrenzen 2048
Totale vrije ruimte is 4183661 sectoren (2,0 GiB)

Nummer Start (sector) Einde (sector) Size Code Name
   1 2048 61442047 29.3 GiB 0700 Basisgegevens van Microsoft
   3 163842048 169986047 2.9 GiB 8200 Linux-swap
   4 169986048 312578047 68.0 GiB 0700 Basisgegevens van Microsoft
   5 61444096 159666175 46.8 GiB 8300 Linux bestandssysteem

Gelieve te helpen met het verwijderen van de oude en niet-bestaande kernels van Grub.


21
2017-08-15 22:54


oorsprong


Zou het kunnen dat de upgrade van 11.10 deze kernels installeerde in / boot maar op de een of andere manier de pakketten verwijderde? - To Do
Is het veilig om de 2.6.8-bestanden handmatig te verwijderen in / boot en dan Grub bij te werken? - To Do
Ren alsjeblieft sudo os-prober - John S Gruber
sudo os-prober geeft '/ dev / sda1: Windows Vista (loader): Windows: chain' - To Do
'sudo apt-get remove linux-image-2.6.8-8-generiek' veronderstel 'sudo apt-get remove linux-image-2.6.38-8-generic' - penreturns


antwoorden:


  • Open een terminal (Ctrl+alt+T).

  • Type uname -r. Dit toont je de kernel die je momenteel gebruikt, dus je wilt dit niet verwijderen.

  • Voer de volgende opdracht uit: dpkg --list | grep linux-image. Dit toont de alle kernels die zijn geïnstalleerd.

  • Noteer de namen van alle kernels die u wilt verwijderen.

  • Om de kernels te verwijderen, voer je uit: sudo apt-get purge linux-image-x.x.x.x-xyz (vervang de kernelnaam door een geschikte).

  • Werk de GRUB bij: sudo update-grub2

En je bent klaar.

Bonus: hier is een klein beetje voering om dat allemaal automatisch te doen:

sudo apt-get purge $( dpkg --list | grep -P -o "linux-image-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )

40
2017-10-04 16:17



Geweldige samenvatting en een nog betere one-liner. Bedankt! - Alex
misschien gebruik verwijderen of autoremove in plaats van purge? en geweldig met een one-liner. - Lamda


Ik ontdekte wat dit probleem was.

Het probleem was dat toen ik Ubuntu een upgrade deed, door het via een liveUSB te installeren in plaats van een normale upgrade te doen, het de oude kernelbestanden in de / boot-map achterliet.

Nu dat ik van 12.10 tot 13.04 op dezelfde manier ben opgewaardeerd, ben ik dezelfde situatie tegengekomen.

De oplossing is om alle bestanden met betrekking tot de oude kernels in de / boot-map handmatig te verwijderen en uit te voeren sudo update-grub. De extra items verdwenen.


10
2018-05-18 12:56



Ik had een aantal kernels die ik had gemaakt van de bron. Dus deze kwamen niet tevoorschijn dpkg --list | grep linux-image  Dit antwoord is hoe je van ze verlost. - RyanNerd


Probeer deze opdracht. Het is een verfijnde versie van hetzelfde apt-get remove opdracht

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

Door te vervangen verwijderen met autoremove, het verwijderingsproces vindt automatisch en verwijdert ook andere afhankelijkheden die zijn achtergelaten, zodat u een schone verwijdering krijgt, in plaats van hier en daar te moeten gaan en de restjes te verwijderen.

Herhaal het proces ook voor andere oude kernels.

Daarna rennen

sudo update-grub

Hierna ziet u alleen de nieuwste kernel.


5
2017-10-04 16:01



Ik denk dat de oorspronkelijke vraag over ging grub, niet burg. zodat het laatste commando niets doet. - Tom Brossman


Ik start meestal gewoon Synaptic (dat tegenwoordig apart moet worden geïnstalleerd), zoek naar "linux" in de categorie Geïnstalleerd en markeer alle oude versies van de kernel en linux-headers (dat wil zeggen alle behalve de huidige) om te worden verwijderd. Wanneer de installatie ongedaan wordt gemaakt, worden ze verwijderd uit het GRUB-menu.

Er moet een handig eenregelig commando zijn om dat te doen, maar het voelt veiliger om dat handmatig te doen


3
2017-08-15 23:08



Zoals ik in de post heb vermeld, zijn er geen items in Synaptic voor 2.6.8-kernels. - To Do
Heb je andere partities, mogelijk met oudere versies van Linux geïnstalleerd? GRUB kan die vinden en toevoegingen aan het menu toevoegen. - Sergey
wat als het geen GUI-omgeving heeft? Ik ben aan het werken aan een 'ubuntu-server' en wilde die oude items verwijderen - kapitanluffy
@kapitanluffy: voor een opdrachtregeloplossing zie green7's antwoord. - Sergey


De slimste oplossing zou gebruiken ubuntu-tweak. Na installatie, start het op, ga naar Janitor, Kiezen Old Kernel, selecteer de oude kernels die u wilt verwijderen en Clean. Dat is het! (Merk op dat alleen oud kernels verschijnen in de conciërge)


3
2017-08-16 17:40



+1, maar als OP geen extra software wil installeren, kan mijn ervaring nuttig zijn. Ik heb de eigenlijke bestanden verwijderd door sudo su, daarna GRUB 2, vanwege OS-Prober, automatisch aangepast. - pfeiffep


Ik stel voor dat je dit in een eindsessie invoert (alt-Ctrl-T):

sudo update-grub

Deze opdracht zorgt ervoor dat grub wordt gebruikt os-prober en om het menu bij te werken.

Als je partities hebt met oude Ubuntu-releases op hen die grub hadden gebruikt (het lijkt erop dat de OP ergens een aardbeversingspartitie had, misschien nog meer) is het nodig ze op te ruimen voordat update-grub op het huidige systeem wordt uitgevoerd. os-prober vindt Windows en andere Linux-partities. Voor andere Linux-partities kopieert het de items uit hun eventuele grub-menu's in plaats van naar hun kernelbestanden te kijken.

Als je een erg verknipte configuratie hebt, is de beste oplossing mogelijk om je Ubuntu-systeem op te starten en grub opnieuw te installeren met:

sudo apt-get --reinstall install grub2

Terwijl u grub opnieuw installeert, wordt het opnieuw gemaakt /etc/default/gruben de /boot/grub/menu.cfg bestand, gebaseerd op de geïnstalleerde kernels in die partitie en op de kernels geïnstalleerd in de grub-configuraties van andere (vermoedelijk oudere) Ubuntu-partities (lijkt niet te zijn voor het OP).


3
2017-08-16 01:09



Ik heb dat geprobeerd maar het detecteert 2.6.8 dat niet wordt weergegeven in Synaptic. En apt-get remove geeft "niet in staat om pakket te vinden". Zie meer details hierboven. - To Do
Je moet elke oude Ubuntu-versie booten, op volgorde en eerst opschonen met sudo apr-get remove of synaptic, laat er maar één over en voer daar update-grub uit. Doe dat in orde. Eindig met update-grub in je huidige ubuntu-partitie. Het pikt die kernels op uit grub-menu's in oude Ubuntu-partities gevonden door os-prober. - John S Gruber
Zou je een link naar de inhoud van / etc / default / grub kunnen toevoegen aan je vraag, ls -l /etc/grub.den /boot/grub/grub.cfg? - John S Gruber
Voor de eerste zie laatste bewerking. Er is geen /boot/grub/grub.cfg bestand - To Do
Precieze gebruikt grub2 en grub2 slaat de menu's op in /boot/grub/grub.cfg. Het feit dat er niet één is, kan betekenen dat grub zijn uitvoerbare bestanden en menu daadwerkelijk op een andere partitie vindt. Zou je de inhoud van kunnen toevoegen sudo gdisk -l, moet u het gdisk-pakket mogelijk eerst installeren. Iets in / etc / default / grub, trouwens? Zou u een bios-loader-partitie op een GPT-schijf kunnen hebben? - John S Gruber


Voor Ubuntu 12.04 LTS (Precise) 64bit (op niet-PAE 32-bits)


1
2017-08-16 08:32



Het probleem hiermee is dat deze 2.6.8 kernels NIET in Synaptic aanwezig zijn, dus apt-get remove werkt niet - To Do