Как я могу выбрать, какой OS grub перезагрузит меня, прежде чем перезагружаться? [dубликат]

Я ищу способ перезагрузки в 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

Это возвращает ожидаемое значение, но при перезагрузке первая запись меню по-прежнему выделена. Любые идеи, почему это не работает или предложения для других решений?

32
задан 20 December 2010 в 00:54

64 ответа

Сначала вы должны отредактировать свою граб. sudo gedit /etc/default/grub Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = saved. Обновите свой grub, используя следующую команду. sudo update-grub Теперь создайте файл и добавьте эти строки, #!/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 Сделайте исполняемый файл сценария. И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows. Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X , где X - это позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Для примера :

Сначала вы должны отредактировать свою граб. sudo gedit /etc/default/grub

Сначала вы должны отредактировать свой grub.

Найти строку GRUB_DEFAULT = 0 и изменить ее на GRUB_DEFAULT = сохранено
39
ответ дан 25 July 2018 в 21:17
  • 1
    Это отличный ответ! – andrewsomething 20 December 2010 в 03:12
  • 2
    Я могу заставить его работать один раз. После этого вам нужно ввести пароли. – user 2 January 2011 в 23:37
  • 3
    Как вы получили grub, чтобы выглядеть так? – Mandy 14 May 2011 в 06:03
  • 4
    рассмотрите вопрос выше? как вы можете заставить grub выглядеть так perty? – Diego 9 August 2012 в 02:30
  • 5
    Решение действительно замечательно, но поскольку у меня есть 14 пунктов меню с вкладкой перед входом, заголовок заголовка номера входа в меню работал лучше. Таким образом, вы можете изменить свой код с помощью #! / Bin / bash WINDOWS_TITLE = grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2 sudo grub-reboot & quot; $ WINDOWS_TITLE & quot; перезагрузка sudo – Philippe Gachoud 3 February 2014 в 17:20
Сначала вы должны отредактировать свою граб. sudo gedit /etc/default/grub Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = saved. Обновите свой grub, используя следующую команду. sudo update-grub Теперь создайте файл и добавьте эти строки, #!/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 Сделайте исполняемый файл сценария. И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows. Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X , где X - это позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Для примера :

Сначала вы должны отредактировать свою граб. sudo gedit /etc/default/grub

Сначала вы должны отредактировать свой grub.

Найти строку GRUB_DEFAULT = 0 и изменить ее на GRUB_DEFAULT = сохранено
39
ответ дан 31 July 2018 в 11:03
Сначала вы должны отредактировать свою граб. sudo gedit /etc/default/grub Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = saved. Обновите свой grub, используя следующую команду. sudo update-grub Теперь создайте файл и добавьте эти строки, #!/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 Сделайте исполняемый файл сценария. И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows. Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X , где X - это позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Для примера :

Сначала вы должны отредактировать свою граб. sudo gedit /etc/default/grub

Сначала вы должны отредактировать свой grub.

Найти строку GRUB_DEFAULT = 0 и изменить ее на GRUB_DEFAULT = сохранено
39
ответ дан 31 July 2018 в 12:01
Сначала вы должны отредактировать свою граб. sudo gedit /etc/default/grub Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = saved. Обновите свой grub, используя следующую команду. sudo update-grub Теперь создайте файл и добавьте эти строки, #!/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 Сделайте исполняемый файл сценария. И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows. Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X , где X - это позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Для примера :

Сначала вы должны отредактировать свою граб. sudo gedit /etc/default/grub

Сначала вы должны отредактировать свой grub.

Найти строку GRUB_DEFAULT = 0 и изменить ее на GRUB_DEFAULT = сохранено
39
ответ дан 2 August 2018 в 02:56
  • Сначала вы должны отредактировать свою личинку. sudo gedit / etc / default / grub
  • Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = сохранено alt text [!d5]
  • Обновите свой grub, используя следующую команду. sudo update-grub
  • Теперь создайте файл и добавьте эти строки, #! / 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
  • Сделайте скрипт исполняемым.
  • И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows.
  • Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X
  • Где X - это позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Пример:

  • Если это ваше меню grub, и если вы хотите загрузиться в окна, вы должны указать значение X как 5.
  • sudo grub-reboot 5 alt text [!d6]
  • Вы также можете создать пусковую установку для указанной выше команды, чтобы двойной щелчок на панели запуска перезагрузился в окна.
39
ответ дан 4 August 2018 в 18:46
  • Сначала вы должны отредактировать свою личинку. sudo gedit / etc / default / grub
  • Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = сохранено alt text [!d5]
  • Обновите свой grub, используя следующую команду. sudo update-grub
  • Теперь создайте файл и добавьте эти строки, #! / 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
  • Сделайте скрипт исполняемым.
  • И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows.
  • Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X
  • Где X - это позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Пример:

  • Если это ваше меню grub, и если вы хотите загрузиться в окна, вы должны указать значение X как 5.
  • sudo grub-reboot 5 alt text [!d6]
  • Вы также можете создать пусковую установку для указанной выше команды, чтобы двойной щелчок на панели запуска перезагрузился в окна.
39
ответ дан 6 August 2018 в 03:09
  • Сначала вы должны отредактировать свою личинку. sudo gedit / etc / default / grub
  • Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = сохранено alt text [!d5]
  • Обновите свой grub, используя следующую команду. sudo update-grub
  • Теперь создайте файл и добавьте эти строки, #! / 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
  • Сделайте скрипт исполняемым.
  • И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows.
  • Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X
  • Где X - это позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Пример:

  • Если это ваше меню grub, и если вы хотите загрузиться в окна, вы должны указать значение X как 5.
  • sudo grub-reboot 5 alt text [!d6]
  • Вы также можете создать пусковую установку для указанной выше команды, чтобы двойной щелчок на панели запуска перезагрузился в окна.
39
ответ дан 7 August 2018 в 20:51
  • Сначала вы должны отредактировать свою личинку. sudo gedit / etc / default / grub
  • Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = сохранено alt text [!d5]
  • Обновите свой grub, используя следующую команду. sudo update-grub
  • Теперь создайте файл и добавьте эти строки, #! / 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
  • Сделайте скрипт исполняемым.
  • И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows.
  • Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X
  • Где X - позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Пример:

  • Если это ваше меню grub, и если вы хотите загрузиться в окна, вы должны указать значение X как 5.
  • sudo grub-reboot 5 alt text [!d6]
  • Вы также можете создать пусковую установку для указанной выше команды, чтобы двойной щелчок на панели запуска перезагрузился в окна.
39
ответ дан 10 August 2018 в 09:12
  • Сначала вы должны отредактировать свою личинку. sudo gedit / etc / default / grub
  • Найдите строку GRUB_DEFAULT = 0 и измените ее на GRUB_DEFAULT = сохранено alt text [!d5]
  • Обновите свой grub, используя следующую команду. sudo update-grub
  • Теперь создайте файл и добавьте эти строки, #! / 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
  • Сделайте скрипт исполняемым.
  • И теперь вы можете запустить этот скрипт из терминала для перезагрузки в Windows.
  • Или вы можете выполнить следующую команду в своем терминале sudo grub-reboot X
  • Где X - это позиция в меню, которую вы хотите перезапустить из меню GRUB (начиная с 0 в качестве первой записи)

Пример:

  • Если это ваше меню grub, и если вы хотите загрузиться в окна, вы должны указать значение X как 5.
  • sudo grub-reboot 5 alt text [!d6]
  • Вы также можете создать пусковую установку для указанной выше команды, чтобы двойной щелчок на панели запуска перезагрузился в окна.
39
ответ дан 13 August 2018 в 12:36
  • 1
    Это отличный ответ! – andrewsomething 20 December 2010 в 03:12
  • 2
    Я могу заставить его работать один раз. После этого вам нужно ввести пароли. – user 2 January 2011 в 23:37
  • 3
    Как вы получили grub, чтобы выглядеть так? – Mandy 14 May 2011 в 06:03
  • 4
    рассмотрите вопрос выше? как вы можете заставить grub выглядеть так perty? – Diego 9 August 2012 в 02:30
  • 5
    Решение действительно замечательно, но поскольку у меня есть 14 пунктов меню с вкладкой перед входом, заголовок заголовка номера входа в меню работал лучше. Таким образом, вы можете изменить свой код с помощью #! / Bin / bash WINDOWS_TITLE = grep -i 'windows' /boot/grub/grub.cfg|cut -d & quot; & quot; & quot; -f2 sudo grub-reboot & quot; $ WINDOWS_TITLE & quot; перезагрузка sudo – Philippe Gachoud 3 February 2014 в 17:20

Просто отредактируйте /boot/grub/grub.cfg и измените запись по умолчанию, чтобы указать на запись, которую вы хотите загрузить. Значение может быть либо порядковым номером записи (начиная с нуля для первого), либо вы можете поместить полный заголовок нужной записи в кавычки.

-4
ответ дан 25 July 2018 в 21:17
  • 1
    Не советуйте изменять boot.cfg, он будет восстановлен в каждом ручном или автоматическом режиме update-grub. Вместо этого пользователь должен изменить /etc/default/grub. – enzotib 26 September 2011 в 21:46
  • 2
    @enzotib, так как изменение предназначено только для следующей загрузки, нет причин делать это именно так. – psusi 26 September 2011 в 22:14
  • 3
    вы забываете, что неправильное редактирование в этом файле может привести к не загружаемой системе – enzotib 26 September 2011 в 23:08
  • 4
    @enzotib, не совсем; одна из прекрасных вещей о grub2 заключается в том, что вы всегда можете восстановить вручную в командной строке. Кроме того, опасность завинчивания других частей файла является аргументом, и если вы ошиблись по умолчанию, худшее, что происходит, это то, что оно по умолчанию относится к первой записи. – psusi 26 September 2011 в 23:11

Я думаю, что нашел еще более приятный способ для людей, которые хотят, чтобы они были на локальном компьютере без ssh.

Решение для перезагрузки в определенную систему, выбранную с помощью пусковой установки единства, было опубликовано только на веб-сайте. См. Http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html

Я знаю, что это не совсем вопрос, но если кто-то имеет аналогичный вопрос позже, это может быть полезно.

4
ответ дан 25 July 2018 в 21:17

Информация для всех была полезной для меня, но в конце я все еще не мог выполнить изменение значения grub по умолчанию, а затем перезапустить его одним щелчком мыши. После тряски в течение 2 часов я открываю эту программу, которая является тем же самым, что мы все пытаемся построить, и через 5 минут я перезагружаюсь в окна. Спасибо всем, что здесь ссылка на мошенников для тех, кто тоже сдаётся. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html

0
ответ дан 25 July 2018 в 21:17

Насколько я понял, это будет не совсем то, что вы хотите, но я думаю, довольно близко. Просто следуйте ссылке webupdate.

3
ответ дан 25 July 2018 в 21:17

Для меня лучше всего создать следующий скрипт с командой grub-reboot

#!/bin/bash WINDOWS_TITLE=$(grep -i 'windows' /boot/grub/grub.cfg|grep "^[^#;]"|cut -d"'" -f2) sudo grub-reboot "$WINDOWS_TITLE" echo "Your computer will reboot on ${WINDOWS_TITLE} in 3 seconds, press Ctrl+C if you want to abord it" sleep 3 && sudo reboot
2
ответ дан 25 July 2018 в 21:17

Я не уверен, что это будет 100% также работать в ubuntu, но однажды я сделал эту работу на компьютере centos

, в основном вам нужно будет сказать grub, какой id # из grub.conf он должен работать дальше. ID # можно найти с помощью

echo `sudo grep ^title /boot/grub/grub.conf | grep -n Windows | cut -f 1 -d:`-1

, поэтому в моем случае это будет, например, вывод «4-1», поскольку четвертая запись в моем grub.conf содержит текст «Windows». (Замените это на фактическое имя записи (также частично), которое вы хотите использовать. Затем вы можете подать это на grub, как:

echo "savedefault --stage2=/boot/grub/stage2 --default=4-1 --once" | sudo /sbin/grub

, а при следующей перезагрузке он должен автоматически загружать запись, которую вы используете сказал [.d3]

, что все это можно скомпоновать в скрипте следующим образом:

#!/bin/sh let NEWBOOT=`sudo grep ^title /boot/grub/grub.conf | grep -n Windows | cut -f 1 -d:`-1 echo Booting $NEWBOOT - `sudo grep ^title.\*Windows /boot/grub/grub.conf` echo "savedefault --stage2=/boot/grub/stage2 --default=$NEWBOOT --once" | sudo /sbin/grub sudo reboot

скрипт автоматически определит, какая запись из вашего grub.conf соответствует тексту «Windows» будет подавать это на grub, чтобы сообщить, что должно быть загружено при следующей загрузке, и перезагрузит ваш компьютер.

для gui, например, вы можете добавить значок ярлыка на рабочий стол, чтобы достичь этого.

-1
ответ дан 25 July 2018 в 21:17
  • 1
    Конфигурационный файл для grub-legacy - menu.lst, а не grub.conf. Для grub2 это grub.cfg, но ваша вторая команда предназначена только для grub-legacy. – psusi 26 September 2011 в 20:46

Просто отредактируйте /boot/grub/grub.cfg и измените запись по умолчанию, чтобы указать на запись, которую вы хотите загрузить. Значение может быть либо порядковым номером записи (начиная с нуля для первого), либо вы можете поместить полный заголовок нужной записи в кавычки.

11
ответ дан 31 July 2018 в 11:03
  • 1
    Не советуйте изменять boot.cfg, он будет восстановлен в каждом ручном или автоматическом режиме update-grub. Вместо этого пользователь должен изменить /etc/default/grub. – enzotib 26 September 2011 в 21:46
  • 2
    @enzotib, так как изменение предназначено только для следующей загрузки, нет причин делать это именно так. – psusi 26 September 2011 в 22:14
  • 3
    вы забываете, что неправильное редактирование в этом файле может привести к не загружаемой системе – enzotib 26 September 2011 в 23:08
  • 4
    @enzotib, не совсем; одна из прекрасных вещей о grub2 заключается в том, что вы всегда можете восстановить вручную в командной строке. Кроме того, опасность завинчивания других частей файла является аргументом, и если вы ошиблись по умолчанию, худшее, что происходит, это то, что оно по умолчанию относится к первой записи. – psusi 26 September 2011 в 23:11

Я думаю, что нашел еще более приятный способ для людей, которые хотят, чтобы они были на локальном компьютере без ssh.

Решение для перезагрузки в определенную систему, выбранную с помощью пусковой установки единства, было опубликовано только на веб-сайте. См. Http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html

Я знаю, что это не совсем вопрос, но если кто-то имеет аналогичный вопрос позже, это может быть полезно.

4
ответ дан 31 July 2018 в 11:03

Информация для всех была полезной для меня, но в конце я все еще не мог выполнить изменение значения grub по умолчанию, а затем перезапустить его одним щелчком мыши. После тряски в течение 2 часов я открываю эту программу, которая является тем же самым, что мы все пытаемся построить, и через 5 минут я перезагружаюсь в окна. Спасибо всем, что здесь ссылка на мошенников для тех, кто тоже сдаётся. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html

0
ответ дан 31 July 2018 в 11:03

Насколько я понял, это будет не совсем то, что вы хотите, но я думаю, довольно близко. Просто следуйте ссылке webupdate.

3
ответ дан 31 July 2018 в 11:03

Для меня лучше всего создать следующий скрипт с командой grub-reboot

#!/bin/bash WINDOWS_TITLE=$(grep -i 'windows' /boot/grub/grub.cfg|grep "^[^#;]"|cut -d"'" -f2) sudo grub-reboot "$WINDOWS_TITLE" echo "Your computer will reboot on ${WINDOWS_TITLE} in 3 seconds, press Ctrl+C if you want to abord it" sleep 3 && sudo reboot
2
ответ дан 31 July 2018 в 11:03

Я не уверен, что это будет 100% также работать в ubuntu, но однажды я сделал эту работу на компьютере centos

, в основном вам нужно будет сказать grub, какой id # из grub.conf он должен работать дальше. ID # можно найти с помощью

echo `sudo grep ^title /boot/grub/grub.conf | grep -n Windows | cut -f 1 -d:`-1

, поэтому в моем случае это будет, например, вывод «4-1», поскольку четвертая запись в моем grub.conf содержит текст «Windows». (Замените это на фактическое имя записи (также частично), которое вы хотите использовать. Затем вы можете подать это на grub, как:

echo "savedefault --stage2=/boot/grub/stage2 --default=4-1 --once" | sudo /sbin/grub

, а при следующей перезагрузке он должен автоматически загружать запись, которую вы используете сказал [.d3]

, что все это можно скомпоновать в скрипте следующим образом:

#!/bin/sh let NEWBOOT=`sudo grep ^title /boot/grub/grub.conf | grep -n Windows | cut -f 1 -d:`-1 echo Booting $NEWBOOT - `sudo grep ^title.\*Windows /boot/grub/grub.conf` echo "savedefault --stage2=/boot/grub/stage2 --default=$NEWBOOT --once" | sudo /sbin/grub sudo reboot

скрипт автоматически определит, какая запись из вашего grub.conf соответствует тексту «Windows» будет подавать это на grub, чтобы сообщить, что должно быть загружено при следующей загрузке, и перезагрузит ваш компьютер.

для gui, например, вы можете добавить значок ярлыка на рабочий стол, чтобы достичь этого.

-1
ответ дан 31 July 2018 в 11:03
  • 1
    Конфигурационный файл для grub-legacy - menu.lst, а не grub.conf. Для grub2 это grub.cfg, но ваша вторая команда предназначена только для grub-legacy. – psusi 26 September 2011 в 20:46

Просто отредактируйте /boot/grub/grub.cfg и измените запись по умолчанию, чтобы указать на запись, которую вы хотите загрузить. Значение может быть либо порядковым номером записи (начиная с нуля для первого), либо вы можете поместить полный заголовок нужной записи в кавычки.

11
ответ дан 31 July 2018 в 12:01
  • 1
    Не советуйте изменять boot.cfg, он будет восстановлен в каждом ручном или автоматическом режиме update-grub. Вместо этого пользователь должен изменить /etc/default/grub. – enzotib 26 September 2011 в 21:46
  • 2
    @enzotib, так как изменение предназначено только для следующей загрузки, нет причин делать это именно так. – psusi 26 September 2011 в 22:14
  • 3
    вы забываете, что неправильное редактирование в этом файле может привести к не загружаемой системе – enzotib 26 September 2011 в 23:08
  • 4
    @enzotib, не совсем; одна из прекрасных вещей о grub2 заключается в том, что вы всегда можете восстановить вручную в командной строке. Кроме того, опасность завинчивания других частей файла является аргументом, и если вы ошиблись по умолчанию, худшее, что происходит, это то, что оно по умолчанию относится к первой записи. – psusi 26 September 2011 в 23:11

Я думаю, что нашел еще более приятный способ для людей, которые хотят, чтобы они были на локальном компьютере без ssh.

Решение для перезагрузки в определенную систему, выбранную с помощью пусковой установки единства, было опубликовано только на веб-сайте. См. Http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html

Я знаю, что это не совсем вопрос, но если кто-то имеет аналогичный вопрос позже, это может быть полезно.

4
ответ дан 31 July 2018 в 12:01

Информация для всех была полезной для меня, но в конце я все еще не мог выполнить изменение значения grub по умолчанию, а затем перезапустить его одним щелчком мыши. После тряски в течение 2 часов я открываю эту программу, которая является тем же самым, что мы все пытаемся построить, и через 5 минут я перезагружаюсь в окна. Спасибо всем, что здесь ссылка на мошенников для тех, кто тоже сдаётся. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html

0
ответ дан 31 July 2018 в 12:01

Насколько я понял, это будет не совсем то, что вы хотите, но я думаю, довольно близко. Просто следуйте ссылке webupdate.

3
ответ дан 31 July 2018 в 12:01

Для меня лучше всего создать следующий скрипт с командой grub-reboot

#!/bin/bash WINDOWS_TITLE=$(grep -i 'windows' /boot/grub/grub.cfg|grep "^[^#;]"|cut -d"'" -f2) sudo grub-reboot "$WINDOWS_TITLE" echo "Your computer will reboot on ${WINDOWS_TITLE} in 3 seconds, press Ctrl+C if you want to abord it" sleep 3 && sudo reboot
2
ответ дан 31 July 2018 в 12:01

Я не уверен, что это будет 100% также работать в ubuntu, но однажды я сделал эту работу на компьютере centos

, в основном вам нужно будет сказать grub, какой id # из grub.conf он должен работать дальше. ID # можно найти с помощью

echo `sudo grep ^title /boot/grub/grub.conf | grep -n Windows | cut -f 1 -d:`-1

, поэтому в моем случае это будет, например, вывод «4-1», поскольку четвертая запись в моем grub.conf содержит текст «Windows». (Замените это на фактическое имя записи (также частично), которое вы хотите использовать. Затем вы можете подать это на grub, как:

echo "savedefault --stage2=/boot/grub/stage2 --default=4-1 --once" | sudo /sbin/grub

, а при следующей перезагрузке он должен автоматически загружать запись, которую вы используете сказал [.d3]

, что все это можно скомпоновать в скрипте следующим образом:

#!/bin/sh let NEWBOOT=`sudo grep ^title /boot/grub/grub.conf | grep -n Windows | cut -f 1 -d:`-1 echo Booting $NEWBOOT - `sudo grep ^title.\*Windows /boot/grub/grub.conf` echo "savedefault --stage2=/boot/grub/stage2 --default=$NEWBOOT --once" | sudo /sbin/grub sudo reboot

скрипт автоматически определит, какая запись из вашего grub.conf соответствует тексту «Windows» будет подавать это на grub, чтобы сообщить, что должно быть загружено при следующей загрузке, и перезагрузит ваш компьютер.

для gui, например, вы можете добавить значок ярлыка на рабочий стол, чтобы достичь этого.

-1
ответ дан 31 July 2018 в 12:01
  • 1
    Конфигурационный файл для grub-legacy - menu.lst, а не grub.conf. Для grub2 это grub.cfg, но ваша вторая команда предназначена только для grub-legacy. – psusi 26 September 2011 в 20:46

Просто отредактируйте /boot/grub/grub.cfg и измените запись по умолчанию, чтобы указать на запись, которую вы хотите загрузить. Значение может быть либо порядковым номером записи (начиная с нуля для первого), либо вы можете поместить полный заголовок нужной записи в кавычки.

11
ответ дан 2 August 2018 в 02:56
  • 1
    Не советуйте изменять boot.cfg, он будет восстановлен в каждом ручном или автоматическом режиме update-grub. Вместо этого пользователь должен изменить /etc/default/grub. – enzotib 26 September 2011 в 21:46
  • 2
    @enzotib, так как изменение предназначено только для следующей загрузки, нет причин делать это именно так. – psusi 26 September 2011 в 22:14
  • 3
    вы забываете, что неправильное редактирование в этом файле может привести к не загружаемой системе – enzotib 26 September 2011 в 23:08
  • 4
    @enzotib, не совсем; одна из прекрасных вещей о grub2 заключается в том, что вы всегда можете восстановить вручную в командной строке. Кроме того, опасность завинчивания других частей файла является аргументом, и если вы ошиблись по умолчанию, худшее, что происходит, это то, что оно по умолчанию относится к первой записи. – psusi 26 September 2011 в 23:11

Я думаю, что нашел еще более приятный способ для людей, которые хотят, чтобы они были на локальном компьютере без ssh.

Решение для перезагрузки в определенную систему, выбранную с помощью пусковой установки единства, было опубликовано только на веб-сайте. См. Http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html

Я знаю, что это не совсем вопрос, но если кто-то имеет аналогичный вопрос позже, это может быть полезно.

4
ответ дан 2 August 2018 в 02:56

Информация для всех была полезной для меня, но в конце я все еще не мог выполнить изменение значения grub по умолчанию, а затем перезапустить его одним щелчком мыши. После тряски в течение 2 часов я открываю эту программу, которая является тем же самым, что мы все пытаемся построить, и через 5 минут я перезагружаюсь в окна. Спасибо всем, что здесь ссылка на мошенников для тех, кто тоже сдаётся. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html

0
ответ дан 2 August 2018 в 02:56

Другие вопросы по тегам:

Похожие вопросы: