Як я можу отримати grub2 для завантаження іншого варіанту лише при наступному завантаженні?


19

Я встановлюю подвійну завантажувальну машину Linux / Windows. В основному я хочу, щоб машина завжди завантажувалася до Ubuntu, за винятком випадків, коли мені потрібно щось перевірити у Windows.

Я встановив Windows та Ubuntu, і зараз він завантажується до Ubuntu кожного разу. Я хотів би мати можливість сказати, щоб він завантажився в Windows тільки при наступному завантаженні, і тоді, коли я перезавантажуюсь з Windows, система повернеться до завантаження Ubuntu.

Я знайшов Grub Legacy - розділ 4.3.1 - Завантаження лише одного разу, але я використовую сервер Ubuntu 14.04, який має новішу версію grub. З того, що я прочитав, мені потрібно внести деякі зміни /etc/default/grubта використовувати, sudo grub-set-defaultколи я хочу завантажуватися в Windows.

Я думаю, що ці зміни починаються з додавання цього /etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=false

У будь-який час вносяться зміни, /etc/default/grubя знаю, що мені потрібно запустити,
sudo update-grubі що призводить до:

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.13.0-43-generic
Found initrd image: /boot/initrd.img-3.13.0-43-generic
Found linux image: /boot/vmlinuz-3.13.0-32-generic
Found initrd image: /boot/initrd.img-3.13.0-32-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda1
done

Оскільки Windows - це 7-й варіант у цьому списку, я вважаю, що я би запустив sudo grub-set-default 6(підрахунок на основі 0) - це правильно і чи є інший метод отримання нумерованого списку варіантів завантаження після завантаження системи?

Крім того, чи /etc/default/grubдостатньо рядків для досягнення такої поведінки чи мені потрібно додати додаткову конфігурацію?

Відповіді:


19

Вам потрібно переконатися, що у вас є GRUB_DEFAULT=savedконфігурація grub (яка автоматично генерується, ви змінюєте цю частину, редагуючи / etc / default / grub). sudo update-grubщоб активувати зміни, а потім використовувати sudo grub-reboot $1.

grep -i "menuentry '" /boot/grub/grub.cfg

Дасть вам меню меню, яке ви можете вирізати та вставити за 1 долар. Або, як ви зазначаєте, параметри індексуються нулем, тож n-е меню може бути переведене (n-1) на grub-reboot.

Див. Напр

Не перевірено мною, оскільки у мене немає встановлення "Windows 7".


дякую, я думаю, що це мені потрібно (з додатковими подробицями, які я знайшов на help.ubuntu.com/community/Grub2 )
cwd

Якщо вам трапилося спробувати це, не змінюючи рядок GRUB_DEFAULT=saved, ви повинні зробити це вручну пізніше, як пояснено тут, у другому абзаці для Grub2, а потімgrub-set-default 0; grub-reboot 0
rubo77

1
команда показати номери запису:grep -i "menuentry '" /boot/grub/grub.cfg|sed -r "s|--class .*$||g"|nl -v 0
rubo77

1
Згідно askubuntu.com/questions/838704/grub-reboot-to-specific-kernel , menuentryз під submenuін /boot/grub/grub.cfgповинен бути переданий в grub-rebootякості SUBMENU>MENUENTRY. Так, наприклад, використовуючи якийсь баш-фу, схожий на @ rubo77, я хотів завантажувати menuentry7, однак ця запис була під submenuякою була другою в меню верхнього рівня, тому мені потрібно було пройти '1>6'замість цього (окремі цитати, щоб уникнути інтерпретація оболонки>).
Трент Нельсон

1
Попередження: Це не працює, якщо ви завантажуєте розділ BTRFS. Grub повинен вміти писати на grubenv, коли він завантажує вікна, він не може писати на BTRFS. Файл, як правило, зберігається в / boot / grub і його можна переглядати за допомогою grub-editenv. Я виправив свою систему, встановивши BTRFS в /, розділ EXT4 в / boot, а потім розділ EFI в / boot / efi.
Натан

-2

Спробуйте встановити grub-customizer (посібник з установки нижче) до вашої системи Ubuntu. Цей інструмент GUI надасть вам гарний набір параметрів, за допомогою яких ви зможете налаштувати свої налаштування GRUB, включаючи назви та порядок параметрів завантаження, систему за замовчуванням, роздільну здатність екрана, шрифти, фон тощо ...
Я не впевнений, чи має він можливість безпосередньо встановлювати те, що ви хочете, але принаймні це може показати вам числа os. Вони можуть посилатися і на своє ім’я, я думаю.

Як встановити grub-customizer:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

(джерело: запуск - Даніель Ріхтер )


Я бачив цей інструмент, але я використовую сервер Ubuntu 14.04 (без графічного інтерфейсу), тому я хотів би мати рішення командного рядка.
cwd

О, не знав цього. Я використовую стандарт 14.10 (Unity) і особисто віддаю перевагу графічні інтерфейси для таких завдань. Чи знаєте ви цей сайт? Він описує те, що ви написали у своєму запитанні, але якщо воно відрізняється від вашого першого джерела, можливо, там ви знайдете саме те, що вам потрібно.
Байт-командир

-1 - Я зволікаю вашу відповідь, бо цікаво, чи читаєте ви взагалі питання. Я можу зрозуміти, що ви, можливо, пропустили "сервер ubuntu" там, але ви просто опублікували ту саму посилання, яку я включив у своє запитання у вашому останньому коментарі ...
cwd

На жаль Але ви думаєте, щоразу, коли я пишу новий коментар чи відповідь, я перечитую все питання та колишні публікації, перевіряючи кожне посилання !? Крім того, ви також можете встановити DE на серверних дистрибутивах! Я визнаю, що я не експерт (поки що), але, принаймні, намагаюся допомагати іншим, де можу, навіть якщо відповіді не завжди на 100% правильні чи корисні. Вам слід радіти, що хтось намагається допомогти вам вирішити цю проблему, але якщо ви хочете розчарувати мене, вам це вдалося. Останнє: ви говорили GRUB_SAVEDEFAULT=false, але я не можу знайти це за нашим посиланням. І ви забули інші згадані там рядки!
Командир байт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.