11

Я выполняю двойную загрузку своей машины и хочу, чтобы она по умолчанию загружалась в Windows, чтобы при каждом удаленном перезапуске машины из дома она могла вернуться в Windows (вместо Ubuntu).

Проблема в том, что каждый раз, когда Ubuntu обновляет ядро, мне приходится сбрасывать загрузочный элемент grub по умолчанию обратно в Windows. Это связано с тем, что загрузчик меню grub использует позиции, т.е. 6 для загрузки ОС по умолчанию. И когда Ubuntu устанавливает новое ядро, он меняет этот порядок.

Я ищу способ настроить grub, чтобы он запоминал свой загрузочный элемент по умолчанию при обновлении ядра.

2 ответа2

9

Grub 1 (Ubuntu 9.04 и более ранние)

Я считаю, что самый простой способ сделать это - переместить загрузочную запись Windows над записями Ubuntu в /boot/grub/menu.lst . По умолчанию файл конфигурации Grub выглядит следующим образом:

  1. основные варианты
  2. Конфигурация ядра debian auto-magic (включая такие утилиты, как memtest86+ по умолчанию)
  3. другие обнаруженные ОС

Раздел 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 .

2

Следуйте инструкциям , появляющимся на моем блоге здесь , чтобы использовать чистый загрузчик Windows , для вашей работы. Я использую его сейчас, и когда я запускаю ПК, у меня есть два варианта:

Windows Vista Ubuntu 10.04

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

Удачи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .