Як дистанційно керувати, які черевики OS Grub?


10

Розглянемо наступні установки з подвійним завантаженням:

  • Grub встановлено на /dev/sda
  • /dev/sda1 монтується як /boot
  • /dev/sda6 монтується як /
  • Windows 10 встановлено на /dev/sdb2

Як зараз, Grub вибирає Ubuntu за замовчуванням, коли він завантажується, і я можу віддалено увійти через SSH. Також можна вибрати Windows, коли запускається Grub, і я можу віддалено увійти через RDP.

Проблема полягає в тому, що я не можу вибрати, яку ОС для завантаження, коли я фізично не присутній.

Це питання описує спосіб автоматичного завантаження останньої вибраної операційної системи Grub. Однак це не вийде . Якщо я виберу Windows, у мене немає можливості дистанційно перезапустити ПК та завантажити Ubuntu.

Чи є спосіб дистанційно керувати, які завантажуються ОС?


@Takkat з боку Windows, хоча? (Чи можу я запустити Windows і мати якусь програму чи сценарій, доручаю Grub завантажувати Ubuntu?)
Nathan Osman

@Takkat о, я бачу, що ти кажеш ... це може спрацювати.
Натан Осман

Ви думали про завантаження через PXE? Тоді ви можете залишити конфігурацію завантаження на іншому сервері, до якого ви могли отримати доступ у будь-який час і відповідно налаштувати, а потім перезавантажити іншу машину для запуску зазначеної ОС?
Зіазіс

Відповіді:


11

Ми можемо перезавантажити заданий запис завантажувального меню Grub за допомогою grub-reboot . Це також можна зробити з віддаленого сеансу, наприклад, через SSH.

Для завантаження в іншу ОС виберіть позицію, яку вона відображає в меню Grub, починаючи з 0:

sudo grub-reboot <num>

введіть тут опис зображення

У цьому випадку моя Windows знаходиться в положенні 4. Тож при видачі

sudo grub-reboot 4 && sudo reboot

Машина перезавантажиться до Windows після закінчення часу, визначеного в налаштуваннях Grub.

Після перезавантаження з Windows машина завантажиться в ОС за замовчуванням. Це можна визначити за допомогою

sudo grub-set-default <num>

Щоб зробити цю роботу нам, можливо, доведеться визначитись GRUB_DEFAULT=savedу нашій, /etc/default/grubале в моїй системі вона також працювала з налаштуваннями за замовчуванням.

Сумно перезавантажувати Windows з Windows цим не вдасться.


3

Ще одна ідея завдяки відповіді таккат :

  1. Завантаженням за замовчуванням є Ubuntu
  2. grub-reboot Nде Nзнаходиться запис для завантаження Windows
  3. Перезавантаження Windows поверне вас до завантаження за замовчуванням: Ubuntu.

Недолік : для перезавантаження Windows вам доведеться перезавантажити двічі: Перезавантажте Windows, нехай завантажується Ubuntu і grub-reboot Nзнову! :-(


Більше ідей, будь ласка. :)
AB

1

Ви можете встановити ОС за замовчуванням з grub залежно від часу, див. Чи може бути запланований GRUB? Це означає: автоматично змінювати "запис" за замовчуванням (автоматичний вхід) у визначені періоди часу? . Так, наприклад, ви можете налаштувати grub для завантаження в Windows, коли $ MINUTE непарно, і завантажитися в Linux, коли $ MINUTE парне.

insmod datehook
if [ $MINUTE -eq 0 -o $MINUTE -eq 2  -o $MINUTE -eq 4 -o $MINUTE -eq 6 -o $MINUTE -eq 8]; then
    set default="Ubuntu"
else
    set default="Windows"
fi

Якщо ви хочете до певної ОС; просто зачекайте, поки прийде його час.

Використовуючи цей метод, слід враховувати час, необхідний для досягнення Грубу. Використання часового проміжку в 5 хвилин, напевно, більш надійне.


Я думаю, що також можна чергувати записи завантаження. Щось на зразок :

if [ $default = "Ubuntu" ]; then
  set default="Windows"
else
  set default="Ubuntu"
fi

коли grub налаштований на запам'ятовування останньої завантаженої ОС ( Як заставити grub2 запам'ятати останній вибір? )

Якщо ваш ПК не завантажується в потрібну ОС, просто перезавантажте.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.