Назад | Перейти на главную страницу

Как очистить меню загрузки Ubuntu Grub после обновлений

Недавно я установил Ubuntu 9.10 - Karmic Koala - выпущенный в октябре 2009 г. Я много раз обновлялся с помощью диспетчера обновлений. Поэтому каждый раз, когда я обновляю, он добавляет одно меню на экран загрузки, например, в режиме восстановления. У меня тоже есть ОС Windows. Прямо сейчас во время загрузки отображается около 10 меню загрузки. ОС Windows переходит в последнюю строку меню. Как мне очистить все меню загрузки, кроме окон и последней версии Ubuntu?

Зайдите в менеджер синаптических пакетов и прокрутите вниз, пока не найдете linux-image- *

Вы можете безопасно удалить их все, кроме того, с которого вы загрузились. (Вы можете узнать это, запустив uname -r из командной строки.

Также запуск sudo apt-get autoremove --purge из командной строки может обнаружить «старые» и автоматически удалить их.

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

/boot/grub/grub.cfg

и удалите ненужные пункты меню.

Вам придется намеренно игнорировать сообщение в верхней части файла, в котором говорится

# DO NOT EDIT THIS FILE

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

Сделайте копию файла, например grub.cfg0,

Внимательно изучите grub.cfg и убедитесь, что вы понимаете, что удаляете, прежде чем делать это. Если вы НЕ уверены в себе, не делайте этого.

В моем Ubuntu 9.10 раздел, касающийся теста памяти, выглядит следующим образом.

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
        linux16 /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
        linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

когда update-grub запускается вами или установкой пакета ядра, он генерирует /boot/grub/grub.cfg запустив по порядку исполняемые скрипты в /etc/grub.d. Если вы хотите изменить порядок меню загрузки, просто измените порядок скриптов в /etc/grub.d.


Если вы хотите, чтобы ваша загрузочная запись Windows была первой, запустите ее, чтобы эта загрузочная запись была сгенерирована до создания записей ядра Linux (в 10_linux скрипт):

sudo mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober

Как только вы закончите, бегите sudo update-grub для создания нового /boot/grub/grub.cfg.


Загрузочные записи Memtest86 создаются /etc/grub.d скрипты 20_memtest86 и 21_memtest86+. Если вам не нужны записи в меню загрузки Memtest86, это самый простой и самый постоянный способ избавиться от них (кроме удаления memtest86 и memtest86 + packages) заключается в запуске следующих команд:

# unset executable bit for grub menu configuration script
sudo chmod -x /etc/grub.d/*memtest86*

В chmod отключает загрузочные записи Memtest86 и запускает sudo update-grub теперь создаст /boot/grub/grub.cfg который не включает записи Memtest86 / +.

Чтобы отменить это изменение, просто добавьте исполняемый бит обратно в скрипт и повторно запустите update-grub.

# reset 
sudo chmod +x /etc/grub.d/*memtest86*
  1. Удаление старых записей ядра: просто откройте Synaptic Package Manage и удалите его.
  2. Тест удаления памяти (последовательная консоль): если вы хотите удалить эту запись, вы должны удалить ее. Комментарий ничего не изменит. Прежде чем что-либо менять в каталоге "/etc/grub.d/", вы должны изменить права доступа.
  3. До сих пор все в порядке. Давайте обновим Grub и посмотрим на результат.

Смотрите мои записи в блоге Как редактировать меню загрузки в Ubuntu Grub2 и Как изменить порядок загрузки в Ubuntu для более подробной информации и изображений.