Удаление старых записей ядра в Grub [дубликат]

На этот вопрос уже есть ответ здесь:

Я регулярно удаляю старые ядра, оставляя только последние два записи с использованием Synaptic.

Я использую Precise. Однако в моем меню Grub «предыдущая версия Linux» довольно много записей с пометкой 2.6.8. Я не могу найти эти образы linux в Synaptic.

dpkg -l | grep linux-image

Дает:

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 дает:

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 дает:

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'

Моя загрузочная папка содержит следующее:

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

и

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

дает:

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

Пожалуйста, помогите с удалением старых и несуществующих ядер из Grub.

21
задан 1 September 2012 в 20:38

7 ответов

Я нашел, какова эта проблема была.

проблема была то, что, когда я обновил Ubuntu путем установки через liveUSB вместо того, чтобы делать нормальное обновление, она оставила позади старые файлы ядра в папке начальной загрузки/.

Теперь, когда я обновил таким же образом от 12,10 до 13,04, я встретился с той же ситуацией.

решение состоит в том, чтобы вручную удалить все файлы, связанные со старыми ядрами в папке начальной загрузки / и работать sudo update-grub. Дополнительные записи исчезли.

10
ответ дан 1 September 2012 в 20:38
  • Открывают терминал ( Ctrl + Высокий звук + T ).

  • Тип uname -r. Это покажет Вам ядро, которое Вы используете в настоящее время, таким образом, Вы не хотите удалять это.

  • Выполнение следующая команда: dpkg --list | grep linux-image. Это покажет все ядра, которые установлены.

  • Записывают названия всех ядер, которые Вы хотите удалить.

  • Для удаления ядер работайте: sudo apt-get purge linux-image-x.x.x.x-xyz ( заменяют имя ядра соответствующим ).

  • Обновление GRUB: sudo update-grub2

И, Вы сделаны.

Премия: вот немного остроты, чтобы сделать все это автоматически:

sudo apt-get purge $( dpkg --list | grep -P -o "linux-image-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )
45
ответ дан 1 September 2012 в 20:38

Попробуйте эту команду. Это - усовершенствованная версия того же apt-get remove, команда

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

Путем замены удаляет с , автоудаляют , процесс удаления автоматически находит и удаляет другие зависимости, оставленные также, таким образом, Вы получите чистое удаление, вместо того, чтобы иметь необходимость пойти тут и там и удалить остатки.

Повторение процесс для других старых ядер также.

После этого, выполнение

sudo update-grub

После этого, Вы будете видеть только последнее ядро.

6
ответ дан 1 September 2012 в 20:38

slickest решение использовало бы ubuntu-tweak. После установки разожгите его, перейдите в Janitor, выберите Old Kernel, выберите старые ядра, которые Вы намереваетесь удалить и Clean.Именно! (Обратите внимание, что только старые ядра обнаруживаются в швейцаре)

3
ответ дан 1 September 2012 в 20:38

Я предлагаю, чтобы Вы ввели это в терминальный сеанс ( Высокий звук - Ctrl - T ):

sudo update-grub

Это управляет, чтобы личинка причин использовала os-prober и обновила меню.

, Если у Вас есть разделы со старыми релизами Ubuntu на них, которые использовали личинку (это появляется, OP имел аккуратный раздел выпуска где-нибудь, возможно, больше), необходимо очистить их также перед рабочей личинкой обновления на существующей системе. os-prober находит Windows и другие разделы Linux. Для других разделов Linux это копирует объекты с их меню личинки, если таковые имеются, вместо того, чтобы смотреть на их файлы ядра.

, Если Вы имеете действительно, испортил конфигурацию, с которой лучшее решение может состоять в том, чтобы загрузить Вашу систему Ubuntu и переустановить личинку:

sudo apt-get --reinstall install grub2

При переустановке личинки это воссоздаст /etc/default/grub и /boot/grub/menu.cfg файл, на основе установленных ядер в том разделе и на ядрах, установленных в конфигурациях личинки другого (по-видимому, более старый) разделы Ubuntu (кажется, не никто для OP).

3
ответ дан 1 September 2012 в 20:38

Для Ubuntu 12.04 LTS (Точные) 64 бита (на non-PAE 32 битах)

Проверка, какие версии присутствуют:

sudo update-grub

Удаляют самое старое первое, и не делают , удаляют текущую / последнюю версию:

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

Перепроверка, какая версия теперь существующая. (дополнительно)

Примечание: Этот шаг , потребовал , если Вы удаляете почти последний (или оставьте всего один), версия.

sudo update-grub
<час>

Для Ubuntu 12.04 LTS (Точные) 32 бита (PAE)

Проверка, какие версии присутствуют:

sudo update-grub

Удаляют самое старое первое, и не делают , удаляют текущую / последнюю версию:

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

Перепроверка, какая версия теперь существующая. (дополнительно)

Примечание: Этот шаг , потребовал , если Вы удаляете почти последний (или оставьте всего один), версия.

sudo update-grub
1
ответ дан 1 September 2012 в 20:38

Я обычно только запускаю Синаптический (который должен быть установлен отдельно в эти дни), поиск "Linux" в категории Installed, и отметьте все старые версии ядра и заголовков Linux (т.е. все кроме текущего), чтобы быть удаленными. При удалении они удалены из меню GRUB.

Должна быть изящная однострочная команда, чтобы сделать это, но чувствует себя более безопасным только сделать это вручную

3
ответ дан 23 November 2019 в 01:38

Другие вопросы по тегам:

Похожие вопросы: