Настройка меню загрузчика GRUB в Ubuntu 10.04 для двойной загрузки.

Редактирование файла grub.cfg Ubuntu 10.04. или как убрать лишние пункты меню загрузчика GRUB

На главную Монтирование флеш памяти

Не все готовы сразу отказаться от использования OC Windows и перейти полностью на Ubuntu 9.10 . Поэтому часто на одном компьютере соседствуют две операционные системы.
Во время загрузки компьютера, при выборе систем в меню загрузчика отображается обычно четыре-пять пунктов выбора загрузки.

Меню загрузчика

Ели вы регулярно обновляете ОС Ubuntu, то наверное заметили, что при выходе новой версии ядра, меню загрузчика отображает новую и предыдущую версии ядра. Т.к. обновления выходят довольно часто, то и меню загрузчика приобретает следующий вид:

Меню загрузчика

Автоматическое удаление записей в GRUB предыдущих версий ядра и самих ядер пока не реализовано.

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

Откройте Менеджер пакетов Synaptic. Система -> Администрирование, нажмите кнопку «Найти» и в поле поиска наберите: linux-image<предыдущую версию ядра>

Менеджер пакетов

Можно воспользоваться готовыми решениями, в том числе и для отчистки системы от установленных устаревших ядер Linux. Например подойдет замечательная утилита Ubuntu-Tweak.

Но можно пойти и более трудным и наверное менее правильным путем. Что бы убрать все лишнее из меню загрузчика необходимо поправить конфигурационный файл загрузчика GRUB, находящийся в /boot/grub/grub.cfg
Естественно придется работать из-под root или через команду sudo.

$ sudo nano /boot/grub/grub.cfg
Потребуется ввести пароль Администратора
В файле grub.cfg убираем секции menuentry относящиеся к предыдущей версии ядра, отставляем секции с описанием загрузки самого последнего (по версии) ядра.

Файл конфигурации Grub.cfg

Пример файла grub.cfg до редактирования:

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd1,8)'
	search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698
	linux	/boot/vmlinuz-2.6.32-24-generic root=UUID=9e78a5f1-a9b9-4244-93e8-ecaeb76c6698 ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-24-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd1,8)'
	search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698
	echo	'Loading Linux 2.6.32-24-generic ...'
	linux	/boot/vmlinuz-2.6.32-24-generic root=UUID=9e78a5f1-a9b9-4244-93e8-ecaeb76c6698 ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-23-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd1,8)'
	search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698
	linux	/boot/vmlinuz-2.6.32-23-generic root=UUID=9e78a5f1-a9b9-4244-93e8-ecaeb76c6698 ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-23-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-23-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd1,8)'
	search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698
	echo	'Loading Linux 2.6.32-23-generic ...'
	linux	/boot/vmlinuz-2.6.32-23-generic root=UUID=9e78a5f1-a9b9-4244-93e8-ecaeb76c6698 ro single 
	echo	'Loading initial ramdisk ...'
	initrd	/boot/initrd.img-2.6.32-23-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod ext2
	set root='(hd1,8)'
	search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698
	linux16	/boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod ext2
	set root='(hd1,8)'
	search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698
linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### menuentry "Microsoft Windows XP Professional RU (on /dev/sda1)" { insmod ntfs set root='(hd0,1)' search --no-floppy --fs-uuid --set 8e34f4ce34f4b9f3 drivemap -s (hd0) ${root} chainloader +1 } ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/40_custom ### # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. ### END /etc/grub.d/40_custom ###

После редактирования должно быть примерно так:

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n ${have_grubenv} ]; then if [ -z ${boot_once} ]; then save_env recordfail; fi; fi
}
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Ubuntu, with Linux 2.6.32-24-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd1,8)'
	search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698
	linux	/boot/vmlinuz-2.6.32-24-generic root=UUID=9e78a5f1-a9b9-4244-93e8-ecaeb76c6698 ro   quiet splash
	initrd	/boot/initrd.img-2.6.32-24-generic
}
menuentry 'Ubuntu, with Linux 2.6.32-24-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod ext2
	set root='(hd1,8)'
	search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698
echo 'Loading Linux 2.6.32-24-generic ...' linux /boot/vmlinuz-2.6.32-24-generic root=UUID=9e78a5f1-a9b9-4244-93e8-ecaeb76c6698 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.32-24-generic } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+, serial console 115200)" {
insmod ext2 set root='(hd1,8)' search --no-floppy --fs-uuid --set 9e78a5f1-a9b9-4244-93e8-ecaeb76c6698 linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ### ### BEGIN /etc/grub.d/30_os-prober ### menuentry "Microsoft Windows XP Professional RU (on /dev/sda1)" { insmod ntfs set root='(hd0,1)' search --no-floppy --fs-uuid --set 8e34f4ce34f4b9f3
drivemap -s (hd0) ${root} chainloader +1 } ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/40_custom ### # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. ### END /etc/grub.d/40_custom ###

Рекомендуется сохранить копию файла на случай ошибки.


Далее удалим все сопутствующие старым версия ядра файлы и образы из /boot, оставив только необходимое.


Commander

Сохраняем и перезагружаем. Если все сделано правильно, меню загрузчика grub должно выглядеть примерно так:

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


На главную Монтирование флеш памяти