4

Мне интересно, есть ли способ иметь компьютер с установленным UEFI и двумя разными ОС (в моем случае Windows 10 и Linux Mint 17.x), где вам не нужно ждать выключения системы, чтобы выбрать другая система для загрузки.

Чтобы объяснить дальше:
Обычно мультизагрузочные системы работают так, что при запуске компьютера появляется меню (из менеджера uefi, загрузчика и т.д.), И вы выбираете ОС для загрузки. Это меню обычно можно настроить так, чтобы оно имело значение по умолчанию, поэтому, если оставить его без присмотра, оно "сделает выбор" самостоятельно или даже запомнит ваш последний выбор и будет использовать его повторно, пока вы не сделаете другой выбор (по крайней мере, это было дело с наследием GRUB).

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

В идеале я хотел бы иметь возможность выбрать операционную систему, когда скажу перезагрузить компьютер.

Очевидно, что это не будет частью стандартного "выключенного" меню ни в одной из систем, но я думаю, что это может произойти с помощью запускаемого сценария.
Например, с GRUB может быть возможно иметь скрипт, который изменяет свой файл конфигурации, чтобы установить определенную систему по умолчанию, а затем запускает перезагрузку, но это может занять слишком много времени, потребует привилегий root и работать только с Mint.

Существует ли такой метод, использующий любой доступный менеджер загрузки (например, rEFInd), который будет работать с любой ОС без какого-либо специального подтверждения?

РЕДАКТИРОВАТЬ: REFInd сам поддерживает такую функцию, по-видимому. Ссылка На той же странице также предлагается, как установить переменную из Linux. Кроме того, в MSDN, похоже, есть метод установки переменной EFI с помощью кода C++, доступный в Windows 10. Ссылка на сайт
Таким образом, кажется, что создание способа сделать это было бы возможно. Однако я не смогу сделать это в течение нескольких дней.

1 ответ1

1

Ваш вопрос сам содержит несколько возможных ответов. Еще один способ - манипулировать параметром EFI BootNext . Это устанавливает однократную загрузку для указанной целевой загрузочной программы. Это можно сделать в Linux с помощью утилиты efibootmgr :

  1. Введите efibootmgr (или efibootmgr -v для получения более подробной информации) от имени пользователя root или используя sudo . Это отобразит список ваших параметров загрузки.
  2. Определите вариант загрузки, который вы хотите загрузить. Например, для прямой загрузки в Windows вам, вероятно, понадобится опция под названием « Windows Boot Manager . (Обратите внимание, однако, что эти имена иногда являются обманчивыми. Возможно, вам придется поэкспериментировать и выяснить детали вашей системы.)
  3. Введите efibootmgr -n #### от имени пользователя root или с помощью sudo чтобы система загрузилась с помощью Boot#### next, где #### - номер записи, которую вы хотите загрузить.

Я полагаю, что вы можете сделать что-то похожее с EasyUEFI в Windows, но это инструмент с графическим интерфейсом, который может оказаться бесполезным для описываемого вами сценария. Возможно, bcdedit этой задачей, но я не рассматривал это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .