В оригинальном 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. Это, возможно, изменилось к настоящему времени.
sudo update-grub
. Я проверил, загрузившись в Windows 7, выключил и снова включил компьютер. Ubuntu 10.04 (по умолчанию) все еще был выбран. Я также попытался поместить «save_entry» в / etc / default / grub вместо «сохранено» (не уверен, как работают скрипты grub config), но это не помогло. Я еще не пробовал решение № 1.