Grub 1 (Ubuntu 9.04 и более ранние)
Я считаю, что самый простой способ сделать это - переместить загрузочную запись Windows над записями Ubuntu в /boot/grub/menu.lst
. По умолчанию файл конфигурации Grub выглядит следующим образом:
- основные варианты
- Конфигурация ядра debian auto-magic (включая такие утилиты, как memtest86+ по умолчанию)
- другие обнаруженные ОС
Раздел 2 разграничен этими строками в файле конфигурации:
### BEGIN AUTOMAGIC KERNELS LIST
(lots of stuff here)
### END DEBIAN AUTOMAGIC KERNELS LIST
Записи для автоматически определяемых ОС (например, Windows) размещаются после этого раздела. Когда вы устанавливаете новое ядро, раздел 2 является единственным изменяемым разделом. Таким образом, перемещение автоопределенной ОС куда-то до строки BEGIN
будет размещено там, где номер записи не изменится, когда будет установлено новое ядро.
Grub 2 (Ubuntu 9.10 и более поздние версии)
С Grub2 весь файл конфигурации создается заново каждый раз, когда запускается update-grub
, поэтому редактирование /boot/grub/grub.cfg
не будет постоянным исправлением. То, как этот файл генерируется, обрабатывается файлами /etc/default/grub
и сценариями в /etc/grub.d/*
. Поэтому мы изменили конфигурацию, изменив файлы, которые управляют отдельными разделами файла конфигурации, затем снова запустив update-grub
.
Мой /etc/grub.d
включает эти файлы:
- 00_header
- 05_debian_theme
- 10_hurd
- 10_linux
- 20_memtest86+
- 21_memtest86
- 30_os-тестовые пробники
- 40_custom
Это shellscripts , что задавят для того , чтобы сгенерировать конфигурационный файл. Загрузочная запись Windows генерируется 30_os-prober
, который запускается после генерации загрузочных записей linux в 10_linux
. Так что просто переименуйте 30_os-prober
в нечто меньшее, чем 10, и перезапустите update-grub
mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober
update-grub
Теперь ваша запись Windows должна быть первой, и вы можете установить ее как загрузочную запись по умолчанию (GRUB_DEFAULT=
) в /etc/default/grub
.