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

2 лучших инструмента, которые я знаю об этой работе, - dvd95 и k9copy. sudo apt-get install dvd95 или sudo apt-get install k9copy установка k9copy в системе, отличной от kde, приведет к снижению количества зависимостей, что может быть или не быть проблемой с вами.

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

6 ответов

Откройте терминал (Ctrl + Alt + 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") )
35
ответ дан 25 May 2018 в 07:32
  • 1
    Отличное резюме и еще лучше однострочный. Благодаря! – λlex 24 January 2016 в 13:52
  • 2
    возможно, используйте remove или autoremove вместо очистки? и отлично с одним лайнером. – Lamda 31 October 2017 в 01:57

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

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

. При замене удаления с помощью autoremove процесс удаления автоматически находит и удаляет другие зависимые данные слева, поэтому вы получите чистую деинсталляцию, а не

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

После этого запустите

sudo update-grub

After что вы увидите только последнее ядро.

5
ответ дан 25 May 2018 в 07:32
  • 1
    Я думаю, что исходный вопрос касался grub, а не burg. так что последняя команда ничего не сделает. – Tom Brossman 4 October 2012 в 21:12

Обычно я запускаю Synaptic (который должен быть установлен отдельно в эти дни), ищите «linux» в категории «Установленные» и отметьте все старые версии ядра и linux-заголовки (то есть все, кроме текущего), чтобы удален. При удалении они удаляются из меню GRUB.

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

3
ответ дан 25 May 2018 в 07:32
  • 1
    Как я упоминал в сообщении, в Synaptic нет записей для ядер 2.6.8. – To Do 26 August 2012 в 20:19
  • 2
    У вас есть другие разделы, возможно, с установленными более старыми версиями Linux? GRUB может найти эти и добавить записи в меню. – Sergey 27 August 2012 в 05:55
  • 3
    что, если у него нет среды GUI? im работает на сервере ubuntu и хочет удалить те старые записи – kapitanluffy 1 February 2013 в 04:43
  • 4
    @kapitanluffy: для решения командной строки см. ответ green7. – Sergey 1 February 2013 в 10:48

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

3
ответ дан 25 May 2018 в 07:32
  • 1
    +1, но если OP не хочет устанавливать дополнительное программное обеспечение, мой опыт может оказаться полезным. Я удалил фактические файлы sudo su, после чего GRUB 2, из-за OS-Prober, автоматически настроен. – pfeiffep 20 March 2013 в 01:40

Я предлагаю вам ввести это в сеансе терминала (Alt-Ctrl-T):

sudo update-grub

Эта команда заставляет grub использовать os-prober и обновлять меню.

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

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

sudo apt-get --reinstall install grub2

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

3
ответ дан 25 May 2018 в 07:32
  • 1
    Я пробовал это, но обнаружил 2.6.8, который не показан в Synaptic. И apt-get remove дает «неспособность найти пакет». Подробнее см. Выше. – To Do 16 August 2012 в 14:48
  • 2
    Вы должны загружать каждую старую версию Ubuntu в порядке и сначала очищать с помощью sudo apr-get remove или synaptic, оставляя только один, а затем запускать update-grub. Сделайте это по порядку. Завершите обновление-grub в текущем разделе ubuntu. Он собирает эти ядра из меню grub в старых разделах Ubuntu, найденных os-prober. – John S Gruber 16 August 2012 в 18:00
  • 3
    Не могли бы вы приложить к вашему вопросу ссылку на содержимое / etc / default / grub, ls -l /etc/grub.d и /boot/grub/grub.cfg? – John S Gruber 27 August 2012 в 07:12
  • 4
    Для первого см. Последнее редактирование. Нет файла /boot/grub/grub.cfg. – To Do 27 August 2012 в 10:02
  • 5
    Точное использование grub2 и grub2 хранит меню в /boot/grub/grub.cfg. Тот факт, что его нет, может означать, что grub фактически находит свои исполняемые файлы и меню в другом разделе. Не могли бы вы добавить содержимое sudo gdisk -l, вам, возможно, придется сначала установить пакет gdisk. Что-нибудь в / etc / default / grub, кстати? Возможно, на диске GPT есть раздел BIOS-загрузчика? – John S Gruber 27 August 2012 в 10:17

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

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

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

Повторно проверить, какая версия не присутствует . (Необязательно)

Примечание: Для Ubuntu 12.04 LTS (точный) 64-битный (на 32-битном без PAE)

sudo update-grub
[d13 ] Для Ubuntu 12.04 LTS (точный) 64-битный (на non-PAE 32 бит)

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

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

Повторно проверьте, какая версия присутствует. (Необязательно)

теперь Для Ubuntu 12.04 LTS (точный) 64-битный (на non-PAE 32 бит) [!d21 ]

sudo update-grub
1
ответ дан 25 May 2018 в 07:32
  • 1
    Проблема в том, что эти ядра 2.6.8 НЕ присутствуют в Synaptic, поэтому apt-get remove не работает – To Do 24 August 2012 в 23:24

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

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