Я ищу способ перезагрузки в Windows из Ubuntu в системе с двойной загрузкой 10.10 / Vista. Конкретный вариант использования заключается в том, что я хотел бы иметь возможность подключиться к ssh в моем работающем экземпляре Ubuntu и выполнить команду, которая инициирует перезагрузку непосредственно в Windows.
Я нашел многообещающее сообщение в блоге , но предлагаемый сценарий не работает:
#!/bin/bash
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
sudo grub-reboot $MENU_NUMBER
sudo reboot
man grub-reboot
не сильно помогает, но, похоже, ведет меня в правильном направлении:
установить загрузочную запись по умолчанию для GRUB, только для следующей загрузки
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
echo $MENU_NUMBER
Это возвращает ожидаемое значение, но при перезагрузке первый пункт меню все еще подсвечивается. Любые идеи, почему это не работает или предложения для других решений?
sudo reboot now
должен перезагрузить машину в первый пункт в списке grub.Ответы:
Вы должны сначала отредактировать свой grub.
Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = сохранено
Обновите ваш grub, используя следующую команду.
Теперь создайте файл сценария,
Затем добавьте эти строки.
Сделайте скрипт исполняемым.
И теперь вы можете запустить этот скрипт из терминала, чтобы перезагрузить Windows.
Или вы можете выполнить следующую команду в вашем терминале
Где X - это позиция меню ОС, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)
Например:
sudo grub-reboot 5
источник
grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2
sudo grub-reboot "$ WINDOWS_TITLE" sudo rebootДля этого есть команда grub
grub-reboot
.Кажется, он работает только тогда, когда у вас настроен grub для запуска с последней сохраненной записи. Так что, если вы еще этого не сделали, измените
/etc/default/grub
и установитезатем обновите конфигурационный файл grub:
С этого момента при каждом загрузчике запускается последняя использованная запись.
Теперь, если вы хотите заранее установить, какой должна быть система для загрузки в следующий раз, используйте
где
ENTRY
может быть число, относящееся к пункту меню (нумерованное, начиная с 0), или точный заголовок пункта меню, напримерЭта команда может быть легко сделана доступной как средство запуска
но я не знаю, как это можно интегрировать в системное меню.
Вы можете получить доступный заголовок пункта меню с помощью
источник
GRUB_DEFAULT=saved
, это испортит вашу конфигурацию. Что копаться перезагрузится делает для записиnext_entry=ENTRY
в/boot/grub/grubenv
. Это не такsaved_entry=ENTRY
. Впрочем, следующая перезагрузка будет в порядке, пишет grubnext_entry
. Следующие загрузки могут завершиться неудачей, если запись не сохранена, какsaved-entry=ENTRY
в grubenv.Я думаю, что нашел еще более приятный способ для людей, которые хотят того же, находясь локально за своим компьютером без ssh.
Решение о перезагрузке в конкретную систему, выбранную с помощью единой программы запуска, было только что опубликовано на webupd8. См. Http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html.
Я знаю, что это не совсем то, о чем идет речь, но в случае, если у кого-то возникнет подобный вопрос позже, это может быть полезно.
источник
Насколько я понял, это будет не совсем то, что вы хотите, но я думаю, довольно близко. Просто перейдите по ссылке webupdate article .
источник
Так что для меня лучше всего было создать следующий скрипт с
grub-reboot
командойисточник
Информация для всех была полезна для меня, но в конце концов я все еще не смог изменить стандартное значение grub и затем перезапустить его одним щелчком мыши. После двухчасовой работы я обнаружил, что это та же самая программа, которую мы все пытаемся собрать, и через 5 минут я перезагружаюсь в Windows. Спасибо всем, вот читерская ссылка для тех, кто также сдается. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html
источник
Я не уверен, будет ли это работать на 100% и в Ubuntu, но однажды я сделал эту работу на машине Centos
в основном, вы должны указать grub, какой id # из grub.conf должен запускаться следующим. Идентификатор # можно узнать по
поэтому в моем случае это, например, вывести «4-1», поскольку четвертая запись в моем файле grub.conf содержит текст «Windows». (Замените это фактическим именем записи (также частично), которое вы хотите использовать. Затем вы можете передать это grub следующим образом:
и при следующей перезагрузке он должен автоматически загрузить запись, которой вы сказали.
все это можно собрать в сценарий, как показано ниже:
скрипт автоматически определит, какая запись из вашего grub.conf соответствует тексту «Windows», передаст ее в grub, чтобы указать, что следует загрузить при следующей загрузке, и перезагрузит ваш компьютер.
для графического интерфейса вы можете, например, добавить ярлык на рабочий стол, чтобы добиться этого.
источник
Просто отредактируйте
/boot/grub/grub.cfg
и измените запись по умолчанию, чтобы указать на запись, которую вы хотите загрузить. Значением может быть либо порядковый номер записи (начиная с нуля для первой), либо вы можете поместить полный заголовок нужной записи в кавычки.источник
boot.cfg
, это будет восстановлено в каждом ручном или автоматическомupdate-grub
. Пользователь должен изменить/etc/default/grub
, вместо этого.