GRUB в Xubuntu 14.04. Настройка меню

Довольно распространённая ситуация, когда на одном ПК установлено несколько ОС, в нашем случае это Xubuntu 14.04 и w!nd0w$. Загрузчиком по умолчанию в Xubuntu является GRUB, в котором указано первым загружать ubuntu, но что если надо по умолчанию грузить любой другой из имеющихся пунктов меню. Для этого читаем далее.
После утсновки Xubuntu рядом с w!nd0w$ генерируется GRUG и изначально конфигурационный файл /etc/default/grub выглядит так:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Здесь:
GRUB_DEFAULT=0 -значение по умолчанию, которое будет выбираться после перезагрузки. При загрузке видим несколько значений, так вот 0 — соответствует верхнему значению, 1 соответствует второму сверху и так далее. Допустим мне надо, чтобы по умолчанию выбирался последний пункт меню в GRUB, у меня это w!nd0w$. Как узнать какой он по счёту?
1) Просто перезагрузиться и посмотреть какой по счёту
2) Способ сложнее, но лучше. Посмотреть в файл /boot/grub/grub.cfg, найти там строку-пункт, которых хотим загружать по умолчанию, и указать его в файле /etc/default/grub

На моём примере действую по варианту 2. Нахожу в файле /boot/grub/grub.cfg мой пункт загрузки:
menuentry 'Windows 7 (loader) (на /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-F60CD30C0CD2C6B1' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 F60CD30C0CD2C6B1
else
search --no-floppy --fs-uuid --set=root F60CD30C0CD2C6B1
fi
parttool ${root} hidden-
chainloader +1
}

Значит в /etc/default/grub надо поменять строку:
GRUB_DEFAULT=0
на строку:
GRUB_DEFAULT="Windows 7 (loader) (на /dev/sda1)"

С выбором пункта загрузки по умолчанию закончили.
Подправим некоторые пункты GRUB ещё:
GRUB_TIMEOUT=10
меняем на 3 секунды:
GRUB_TIMEOUT=3
меняем:
GRUB_HIDDEN_TIMEOUT_QUIET=true
на:
GRUB_HIDDEN_TIMEOUT_QUIET=false

Чтобы загрузка была более информативной, где видно что загрузилось, а что fail, меняем:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
на:
GRUB_CMDLINE_LINUX_DEFAULT=""

Сохраняем, закрываем конфиг и выполняем:
sudo update-grub
Увидим что-то вроде:
Generating grub configuration file ...
Найден образ linux: /boot/vmlinuz-3.16.0-34-generic
Найден образ initrd: /boot/initrd.img-3.16.0-34-generic
Найден образ linux: /boot/vmlinuz-3.16.0-30-generic
Найден образ initrd: /boot/initrd.img-3.16.0-30-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Найден Windows 7 (loader) на /dev/sda1
завершено

Теперь можно перезагрузиться и проверить:
sudo reboot

После перезагрузки пунктом запуска будет строка «Windows 7 (loader) (на /dev/sda1)», увидим трёх секундный отсчёт и начнётся загрузка операционной системы из этого пункта.

Добавить комментарий