В исходном Grub вы могли бы сделать это, установив в /boot/grub/menu.lst ключевое слово по умолчанию "сохранено", а затем используя ключевое слово savedefault в каждой записи загрузочного меню.
Обновлено:
Grub2 немного сложнее. Он также все еще развивается, поэтому, несмотря на то, что Ubuntu 9.10 и 10.04 используют Grub2, существует достаточно различий в том, как все упаковано и настроено, чтобы сделать вещи интересными.
Вот как сделать трюк с сохранением по умолчанию в обоих случаях:
Ubuntu 10.04:
9.10 направления являются хитростью; Lucid намного проще. См. Справку Ubuntu для более подробной информации. Вам нужно внести два изменения в /etc/default/grub:
Измените строку с GRUB_DEFAULT=0
на GRUB_DEFAULT=saved
Добавьте строку с GRUB_SAVEDEFAULT=true
Вот и все. На самом деле не так ли плохо, не так ли? Не забудьте запустить sudo update-grub
.
Ubuntu 9.10:
На форумах Ubuntu есть несколько хаков, чтобы заставить это работать; очевидно, ключевое слово savedefault было ошибочным в Grub v1.97. Этот пост на форумах Ubuntu предоставляет один метод. Другой пост предлагает немного более простой метод:
Установите GRUB_DEFAULT = сохранено в /etc/default/grub .
Поместите эти две строки в /etc/grub.d/40_custom (рядом с нижней частью , после строки "exec tail" ):
saved_entry=${chosen}
save_env saved_entry
Я протестировал этот метод в Ubuntu 9.10, и он работает; следующая загрузка автоматически выделит последнюю выбранную запись. В сочетании с таймаутом это автоматически загрузится в последнюю ОС, которую вы загрузили.
И не забудьте запустить sudo update-grub
. После того, как вы закончите со своими изменениями. Это важно и смущающе легко забыть ....
Grub не может отличить перезагрузку от холодной загрузки, поэтому Grub не может сделать это при перезагрузке самостоятельно. Однако, если вы загрузились в Linux, вы можете использовать sudo grub-set-default N
(где N - номер пункта меню загрузки, начиная с 0), чтобы установить запись N, которая будет выбрана при следующей загрузке (вместо любых запись была сохранена).
Теоретически, вы могли бы собрать воедино что-то, что подключалось к процедурам завершения работы (возможно, сценарий Upstart ), которые запускали grub-set-default для вас, когда вы указывали Linux завершать работу (но не когда вы указывали перезагрузить). Однако при закрытии Windows вы не получите такую же функциональность.
Я слышал о методике Grub4DOS или Grub1, которая включала установку Grub в раздел FAT32 или NTFS /boot , который позволял бы вам также запускать grub-set-default из Windows, чтобы вы могли вызывать его из сценария выхода из Windows. В прошлый раз я видел что-то об этом, это было невозможно на Grub2. Это, возможно, изменилось к настоящему времени.