Grubdaki eski çekirdek girdilerini çıkarma [duplicate]

21

Eski çekirdikleri düzenli olarak Synaptic kullanarak en son iki girişi bırakıyorum.

Kesin kullanıyorum. Ancak Grubum "önceki Linux versiyonu" menüsünde 2.6.8 etiketli oldukça az sayıda girdi var. Bu linux görüntülerini Synaptic'te bulamıyorum.

dpkg -l | grep linux-image

verir:

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 şunları verir:

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 linux-image-2.6.8-8-jeneric'in kaldırmasını sağlar:

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'

Önyükleme klasörüm şunları içerir:

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

ve

ls -l /etc/grub.d
verim:
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

dönüşleri:

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

Lütfen eski ve mevcut olmayan çekirdeklerin Grub'dan kaldırılmasına yardımcı olun.

    
sordu To Do 16.08.2012 00:54

7 cevap

10

Bu sorunun ne olduğunu buldum.

Sorun, Ubuntu'yu yükselttiğimde, normal bir yükseltme yapmak yerine bir liveUSB üzerinden yükleme yaparak, / boot klasöründeki eski çekirdek dosyalarının arkasında kalmasıydı.

Şimdi 12.10'dan 13.04'e kadar aynı şekilde güncelledim, aynı durumla karşılaştım.

Çözüm, / boot klasöründeki eski çekirdeklerle ilgili tüm dosyaları el ile silmek ve sudo update-grub dosyasını çalıştırmaktır. Ekstra girişler kayboldu.

    
verilen cevap To Do 18.05.2013 14:56
40
  • Bir terminal açın ( Ctrl + Alt + T ).

  • uname -r yazın. Bu, şu anda kullanmakta olduğunuz çekirdeği gösterecektir, bu yüzden bunu kaldırmak istemezsiniz.

  • Aşağıdaki komutu çalıştırın: dpkg --list | grep linux-image . Bu, yüklü tüm çekirdekleri gösterecektir.

  • Kaldırmak istediğiniz tüm çekirdeklerin adlarını not edin.

  • Çekirdekleri kaldırmak için şunu çalıştırın: sudo apt-get purge linux-image-x.x.x.x-xyz ( çekirdek ismini uygun bir tane ile değiştirin ).

  • GRUB'u güncelle: sudo update-grub2

Ve işin bitti.

Bonus: İşte tüm bunları otomatik olarak yapabilmek için küçük bir tek liner:

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

Bu komutu deneyin. Aynı apt-get remove komutunun geliştirilmiş bir sürümü

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

autoremove ile kaldır 'ı kaldırarak kaldırma işlemi otomatik olarak kalan diğer bağımlılıkları bulur ve kaldırır. Bu nedenle, buraya gitmek zorunda kalmadan temiz bir kaldırma işlemi gerçekleştirirsiniz. ve orada kalanlar silin.

Diğer eski çekirdekler için de işlemi tekrarlayın.

Bundan sonra, çalıştırın

sudo update-grub

Bundan sonra, yalnızca en yeni çekirdeği göreceksiniz.

    
verilen cevap Omal Lasitha 04.10.2012 18:01
3

Genellikle Synaptic'i (bu günlerde ayrı olarak yüklenmesi gereken) başlatıyorum, Yüklü kategoride "linux" araması yapın ve çekirdeğin ve linux-başlıkların tüm eski sürümlerini (yani mevcut olanlar hariç) işaretleyin. çıkarıldı. Kaldırıldığında, GRUB menüsünden kaldırılırlar.

Bunu yapmak için şık tek satırlı bir komut olmalı, ancak bunu elle yapmak daha güvenli geliyor

    
verilen cevap Sergey 16.08.2012 01:08
3

En ince çözüm ubuntu-tweak kullanıyordu. Yüklemeden sonra, ateşleyin, Janitor adresine gidin, Old Kernel öğesini seçin, kaldırmak istediğiniz eski çekirdekleri ve Clean öğesini seçin. Bu kadar! (Kapıcıda yalnızca eski çekirdeklerin görüneceğini unutmayın)

    
verilen cevap SeMeKh 16.08.2012 19:40
3

Bunu bir terminale girmenizi öneririm ( Alt - Ctrl - T ):

sudo update-grub

Bu komut grubun os-prober kullanımını ve menüyü güncellemesini sağlar.

Bunların üzerinde eski Ubuntu sürümleri olan bölümler varsa (OP'nin bir yerde bir doğal yayın bölümü vardı, belki daha fazlası) mevcut sistemde güncelleme grubunu çalıştırmadan önce bunları temizlemek gerekir. os-prober , Windows ve diğer Linux bölümlerini bulur. Diğer Linux bölümleri için, eğer varsa, çekirdek dosyalarına bakmak yerine, öğelerini grup menülerinden kopyalar.

Eğer gerçekten karmaşık bir konfigürasyona sahipseniz, Ubuntu sisteminizi önyüklemek ve gruba yeniden yüklemek en iyi çözüm olabilir:

sudo apt-get --reinstall install grub2

Yeniden yükleme sırasında, bu bölümdeki yüklü çekirdeklere ve diğer (muhtemelen daha eski) Ubuntu bölümlerinin grub konfigürasyonlarına kurulan çekirdeklere bağlı olarak /etc/default/grub ve /boot/grub/menu.cfg dosyasını yeniden oluşturacaktır. OP için herhangi biri olmak.)

    
verilen cevap John S Gruber 16.08.2012 03:09
1

Ubuntu için 12.04 LTS (Kesin) 64 bit (PAE olmayan 32bit üzerinde)

Hangi sürümlerin mevcut olduğunu kontrol edin:

sudo update-grub

En eski olanı kaldırın ve mevcut / en son sürümü kaldırma :

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

Şu anda hangi sürümün olduğunu kontrol et . (İsteğe bağlı)

Not: Tümü en son (veya yalnızca bir tane) sürümü kaldırırsanız, bu adım gereklidir .

sudo update-grub

Ubuntu için 12.04 LTS (Kesin) 32bit (PAE)

Hangi sürümlerin mevcut olduğunu kontrol edin:

sudo update-grub

En eski olanı kaldırın ve mevcut / en son sürümü kaldırma :

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

Şu anda hangi sürümün olduğunu kontrol et . (İsteğe bağlı)

Not: Tümü en son (veya yalnızca bir tane) sürümü kaldırırsanız, bu adım gereklidir .

sudo update-grub
    
verilen cevap david6 16.08.2012 10:32

Etiketlerdeki diğer soruları oku