После нескольких обновлений системы Kubuntu (или Ubuntu) в меню загрузчика GRUB остаются записи, соответствующие старым версиям ядра. Вот как это выглядит:
В статье я расскажу, как получить более компактный вид меню загрузчика GRUB:
Как можно увидеть из скиншота, кроме сокращения размера меню GRUB изменился и язык сообщений.
Прежде всего, необходимо определить текущую версию ядра. Её можно узнать из того же меню загрузчика GRUB, либо выполнив в консоли команду uname -r:
Далее запускаем менеджер пакетов Synaptic (Пуск → Приложения → Система → Менеджер пакетов Synaptic). Если Synaptic не установлен, то его можно установить командой в консоли:
Выделите старые версии ядра. Рекомендуется оставить текущую и предыдущую версии ядра на случай сбоев в текущей версии. Далее нажмите правой кнопкой мыши по выделенным ядрам и выберите "Отметить для удаления":
Далее нажмите кнопку "Применить":
Начнется процесс удаления. При этом будет освобождено дисковое пространство (в моем случае 395 МиБ).
После перезагрузки Вы увидите обновленное меню загрузчика GRUB без старых версий ядра.
Обновление от 19 декабря 2011 г.:
Существует и другой способ очистки меню GRUB без удаления старых версий ядра из системы. Для этого нужно отредактировать конфигурационный файл меню загрузчика GRUB с именем /boot/grub/grub.cfg. Недостаток данного способа заключается в том, что после обновления ядра системы придется заново редактировать этот файл. Предварительно рекомендую сделать резервную копию этого файла, например, так:
Далее открываем файл grub.cfg в текстовом редакторе:
В файле присутствует раздел с различными версиями ядра операционной сисетмы. В моём случае этот раздел выглядит так:
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-36-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
linux /boot/vmlinuz-2.6.32-36-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro quiet splash nomodeset acpi_backlight=vendor
initrd /boot/initrd.img-2.6.32-36-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-36-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
echo 'Loading Linux 2.6.32-36-generic ...'
linux /boot/vmlinuz-2.6.32-36-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-36-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
linux /boot/vmlinuz-2.6.32-35-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro quiet splash nomodeset acpi_backlight=vendor
initrd /boot/initrd.img-2.6.32-35-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-35-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
echo 'Loading Linux 2.6.32-35-generic ...'
linux /boot/vmlinuz-2.6.32-35-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-35-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-34-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
linux /boot/vmlinuz-2.6.32-34-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro quiet splash nomodeset acpi_backlight=vendor
initrd /boot/initrd.img-2.6.32-34-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-34-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
echo 'Loading Linux 2.6.32-34-generic ...'
linux /boot/vmlinuz-2.6.32-34-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-34-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-33-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
linux /boot/vmlinuz-2.6.32-33-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro quiet splash nomodeset acpi_backlight=vendor
initrd /boot/initrd.img-2.6.32-33-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-33-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
echo 'Loading Linux 2.6.32-33-generic ...'
linux /boot/vmlinuz-2.6.32-33-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-33-generic
}
### END /etc/grub.d/10_linux ###
Строчки, выделенные красным цветом, соответсвуют старым версиям ядра. Их я удалил и сохранил файл. После перезагрузки старые версии ядра исчезли из меню загрузчика GRUB.
В статье я расскажу, как получить более компактный вид меню загрузчика GRUB:
Как можно увидеть из скиншота, кроме сокращения размера меню GRUB изменился и язык сообщений.
Прежде всего, необходимо определить текущую версию ядра. Её можно узнать из того же меню загрузчика GRUB, либо выполнив в консоли команду uname -r:
$ uname -r
2.6.32-34-generic
Объяснение команды:
команда uname (сокращение от unix name) выводит информацию об операционной системе;
параметр -r (сокращение от kernel release) используется для вывода версии ядра системы
$ sudo apt-get install synapticВ строчке поиска напишите "linux-image", на вкладке "Состояния" выберите "Установленные":
Выделите старые версии ядра. Рекомендуется оставить текущую и предыдущую версии ядра на случай сбоев в текущей версии. Далее нажмите правой кнопкой мыши по выделенным ядрам и выберите "Отметить для удаления":
Далее нажмите кнопку "Применить":
Начнется процесс удаления. При этом будет освобождено дисковое пространство (в моем случае 395 МиБ).
После перезагрузки Вы увидите обновленное меню загрузчика GRUB без старых версий ядра.
Обновление от 19 декабря 2011 г.:
Существует и другой способ очистки меню GRUB без удаления старых версий ядра из системы. Для этого нужно отредактировать конфигурационный файл меню загрузчика GRUB с именем /boot/grub/grub.cfg. Недостаток данного способа заключается в том, что после обновления ядра системы придется заново редактировать этот файл. Предварительно рекомендую сделать резервную копию этого файла, например, так:
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.orig
Далее открываем файл grub.cfg в текстовом редакторе:
sudo kate /boot/grub/grub.cfg
В файле присутствует раздел с различными версиями ядра операционной сисетмы. В моём случае этот раздел выглядит так:
### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-36-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
linux /boot/vmlinuz-2.6.32-36-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro quiet splash nomodeset acpi_backlight=vendor
initrd /boot/initrd.img-2.6.32-36-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-36-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
echo 'Loading Linux 2.6.32-36-generic ...'
linux /boot/vmlinuz-2.6.32-36-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-36-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
linux /boot/vmlinuz-2.6.32-35-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro quiet splash nomodeset acpi_backlight=vendor
initrd /boot/initrd.img-2.6.32-35-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-35-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
echo 'Loading Linux 2.6.32-35-generic ...'
linux /boot/vmlinuz-2.6.32-35-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-35-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-34-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
linux /boot/vmlinuz-2.6.32-34-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro quiet splash nomodeset acpi_backlight=vendor
initrd /boot/initrd.img-2.6.32-34-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-34-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
echo 'Loading Linux 2.6.32-34-generic ...'
linux /boot/vmlinuz-2.6.32-34-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-34-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-33-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
linux /boot/vmlinuz-2.6.32-33-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro quiet splash nomodeset acpi_backlight=vendor
initrd /boot/initrd.img-2.6.32-33-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-33-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod ext2
set root='(hd0,6)'
search --no-floppy --fs-uuid --set a7d103e1-12f9-48d0-bf2a-e4b405861b1c
echo 'Loading Linux 2.6.32-33-generic ...'
linux /boot/vmlinuz-2.6.32-33-generic root=UUID=a7d103e1-12f9-48d0-bf2a-e4b405861b1c ro single
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-2.6.32-33-generic
}
### END /etc/grub.d/10_linux ###
Строчки, выделенные красным цветом, соответсвуют старым версиям ядра. Их я удалил и сохранил файл. После перезагрузки старые версии ядра исчезли из меню загрузчика GRUB.
Отличная статья, но... Вводите неискушенных пользователей в заблуждение названием статьи. Вы же описываете метод не просто очистки меню загрузки, но вместе с тем и удаление всех предыдущих версий ядра вместе с физическим удалением их с диска.
ОтветитьУдалитьСпасибо за замечание. Я добавил дополнение к статье, в котором описал, как выполнить очистку меню GRUB без удаления старых версий ядра операционной системы.
ОтветитьУдалить