У меня установлена система Linux / Windows с двойной загрузкой, и я часто переключаюсь с одной на другую. Я думал, могу ли я добавить пункт меню в одно из меню для перезагрузки непосредственно в окна, не останавливаясь на приглашении GRUB.
Я видел этот вопрос на форуме, это именно то, что я хочу, но он имеет дело с Лило, что не в моем случае.
Я подумал о решении, которое изменило бы запись по умолчанию в меню GRUB, а затем перезагрузилось, но есть некоторые недостатки, и мне было интересно, есть ли более чистая альтернатива.
(Кроме того, мне было бы интересно найти решение для загрузки с Windows напрямую в Linux, но это может быть сложнее и не относится к этому. Во всяком случае, если оно у меня одно, другой способ можно настроить как по умолчанию.
ОБНОВЛЕНИЕ Кажется , кто - то задал подобный вопрос , и если таковые предложенные ответы, я мог бы также редактировать , /boot/grub/grubenv
как grub-reboot
и grub-set-default
и grub-editenv
делать. )
Заранее спасибо за любые советы.
ОБНОВЛЕНИЕ :
Это моя версия GRUB: (GRUB) 1.99-12ubuntu5-1linuxmint1
Я попытался запустить grubonce
, команда не найдена. И поиск его в репозиториях мне ничего не дает. Я на Linux Mint, так что это может быть ...
Видя man grub-reboot
, кажется, что он делает то, что я хочу, как grubonce
делает. Это также доступно везде (по крайней мере, для меня, я думаю, что это часть пакета grub). Я видел две связанные команды: grub-editenv
и grub-set-default
.
Я узнал, что после запуска sudo grub-set-default 4
, при запуске grub-editenv list
вы получаете что-то похожее на
saved_entry=4
И при запуске grub-reboot 4
вы получите что-то вроде:
prev_saved_entry=0
saved_entry=4
Это означает, что оба делают одно и то же (одно временно, а другое нет).
Удивительно, когда я попробовал:
sudo grub-reboot 4
sudo reboot now
Это не сработало, как будто я ничего не сделал, просто показало мне меню как обычно и выбрало первую запись, сказав, что загрузит эту запись через 10 секунд.
Я попробовал это снова, я думал, что мог написать неправильную запись (это основано на нуле, правильно?). В то время он просто зависал на экране меню, и мне пришлось жестко перезагружать ПК, чтобы иметь возможность загружаться.
Если кто-то может попробовать это, просто чтобы увидеть, если это только я, я был бы признателен. (Мята доставляет мне неприятности, и это было бы хорошим поводом для перемен: P).
Чтение кода в /boot/grub/grub.cfg
, похоже, это путь, но из моих наблюдений, это просто игнорирование этих настроек ...
Ответы:
Чтобы
grub-reboot
команда работала, необходимо выполнить несколько необходимых изменений конфигурации:saved
. Одним из возможных мест для этого являетсяGRUB_DEFAULT=
строка в/etc/default/grub
grub-set-default
для установки вашей записи по умолчанию той, которую вы обычно используете.update-grub
).Это должно позаботиться о первоначальной настройке. В будущем просто сделайте
grub-reboot <entry>
для одноразовой загрузки<entry>
.источник
saved
", в то время как моего храненияGRUB_DEFAULT=0
тоже достаточно. Такsaved
ненужно?GRUB_DEFAULT=0
наGRUB_DEFAULT=saved
sudo update-grub
ваша команда будет:
красивая функция в вашем ~ / .bashrc будет выглядеть
В случае, если ваш grub.conf содержит несколько строк для Windows, следующие функции будут заботиться только о строках, начинающихся с
menuentry
выбора только первой, относящейся к Windows:источник
/boot/grub/grub.cfg
содержит больше строк с надписью «Windows», многие из которых указывают на что-то вроде этого...=1 i915.semaphores=1 acpi_osi='!Windows 2012' $vt...
, поэтому я предполагаю, что ваш код потерпит неудачу. Это можно исправить с помощью поиска^menuentry 'Windows
.Супер простой способ сделать это с помощью GRUB Reboot Shell Расширение GNOME (то есть, если вы используете GNOME).
Чтобы использовать расширение, перейдите на сайт, указанный выше, и нажмите на маленький переключатель в верхнем правом углу (он, вероятно, говорит «Выкл.» При первом переходе на страницу). Вам будет предложено подтвердить, что вы хотите загрузить и установить расширение.
После установки вы можете открыть системное меню и нажать кнопку питания, как обычно, для перезагрузки. Появляющееся окно, подтверждающее, что вы хотите выключить или перезапустить, теперь имеет кнопку с надписью «Перезапустить на ...». Когда вы нажимаете эту кнопку, элементы в вашем меню grub появляются в списке, так что вы можете выбрать, какую ОС автоматически запускать после перезапуска. Если вы выберете один из этих элементов, ваша система выключится и перезапустится с использованием выбранных вами опций grub.
источник
Я использую openSUSE, который поставляется со скриптом под названием
grubonce
, который делает именно то, что вам нужно - установить запись grub для использования при следующей перезагрузке.Я не знаю, какие (если есть) другие дистрибутивы поставляют этот скрипт, поэтому, если у вашего дистрибутива его нет, вы можете проверить эту страницу:
http://sidvind.com/wiki/GRUB:_Boot_another_OS_once
источник
grub-set-default
кажется более доступным (grubonce
не указано в стихах Ubuntu). Это также может быть более полезным, поскольку Windows 7 имеет привычку выполнять перезагрузку во время запуска, если обновления были применены при последнем завершении работы (то есть начинается запуск, обрабатывает некоторые данные обновления, перезагружается, а затем отображает страницу входа в систему).Я часто запускал Windows 7 только для того, чтобы вернуться и найти работающую Ubuntu.
источник
grub-reboot
. Я редактирую свой вопрос более подробно. Спасибо, в любом случае.В Fedora вы можете использовать следующий скрипт. Обратите внимание, что это в основном то же, что описано в https://askubuntu.com/a/18186/149422 , с некоторыми изменениями для GRUB 2 в Fedora .
источник
Я использую Ubuntu 16.04 и выше решения не работают для меня ... по какой - то причине ,
sudo grub-reboot 2
казалось , никогда не обновить/boot/grub/grubenv
файл, даже после того, как измененияGRUB_DEFAULT=0
вGRUB_DEFAULT=saved
в обоих/etc/default/grub
и/boot/grub/menu.lst
. Использованиеsavedefault --default=2 --once
команды в grub также не работает и не изменяет файл grubenv. Он просто продолжал возвращаться к исходному меню Grub, как будто ничего не было сделано.Так что я закончил делать это вручную, и это работало (хотя я не уверен, как это будет работать с дисками RAID).
Где 2 - это пункт меню, начинающийся с нуля, для пункта Windows в меню запуска grub.
Вы можете понять, почему это работает, посмотрев на
/boot/grub/grub.cfg
файл, так как он использует значение next_entry и затем сбрасывает его для следующей загрузки.источник
Согласитесь с @ jw013. И вы также можете дать плитку меню для grub-reboot (включая заголовок родительского меню). например:
Где «Дополнительные параметры для Ubuntu» - это родительское меню, «Ubuntu с Linux 4.13.0-26-generic» - это подменю.
источник
Перезагрузите компьютер до определенной цели загрузки (запись Grub).
Цель загрузки выбирается интерактивно с помощью fzf.
источник