Сделайте так, чтобы grub сохранял загрузку по умолчанию под обновлениями ядра

11

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

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

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

Reprogrammer
источник

Ответы:

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 загружается.

Удачи.

Antrikshy
источник
эта ссылка почти мертва
чепанг