Как перезагрузиться в Windows из Linux без тайм-аута в меню Grub (быстрая перезагрузка)

Вопрос или проблема

Я хочу спросить, можно ли это сделать с помощью grub. У меня есть трудности с тем, чтобы найти способ установить тайм-аут grub на 0 или скрыть тайм-аут только один раз во время загрузки, а затем вернуть к значению по умолчанию. Я хочу добиться этого с помощью скрипта, который я запускаю перед перезагрузкой.

На данный момент у меня есть следующее: когда я хочу перезагрузиться в Windows после использования Linux, у меня есть скрипт, который установит меню grub на выбор загрузчика Windows один раз при перезагрузке, а затем перезапустится. Все последующие загрузки будут по умолчанию выбрано первое (Linux). Скрипт очень прост:

sudo grub-reboot 3 && reboot

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

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

Любая помощь будет очень полезна.

Ответ или решение

Для достижения вашей цели — перезагрузки в Windows из Linux без ожидания таймаута в меню GRUB — существует несколько подходов. Вы можете настроить GRUB так, чтобы он пропускал таймаут и сразу загружал Windows один раз. Вот как это можно сделать:

Способ 1: Использование grub-reboot и временной настройки таймаута

  1. Установите значение таймаута в 0 перед перезагрузкой:
    Вы можете временно изменить значение таймаута в конфигурационном файле GRUB в скрипте. Однако GRUB сам не предлагает опции для динамического изменения таймаута на лету. Мы можем временно установить таймаут в 0, а затем вернуться к значению по умолчанию при следующем запуске системы.

    Создайте скрипт, который будет делать следующее:

    #!/bin/bash
    
    # Измените номер записи Windows в соответствии с вашим конфигурационным файлом
    WINDOWS_ENTRY=3
    
    # Временное значение таймаута (0)
    sudo grub-set-boot-timeout 0
    
    # Установите в качестве следующей загрузки Windows
    sudo grub-reboot $WINDOWS_ENTRY
    
    # Перезагрузите систему
    reboot

    Заметка: grub-set-boot-timeout — это не стандартная команда. Вы можете использовать встроенные команды или изменить файл конфигурации GRUB напрямую и создать резервные копии.

  2. Создайте резервную копию конфигурации GRUB:
    Это необходимо для того, чтобы возвращать таймаут к исходному значению. Вы можете сделать что-то вроде следующего:

    sudo cp /etc/default/grub /etc/default/grub.bak
  3. Восстановите значение таймаута после загрузки Windows:
    После того как вы загрузитесь в Windows, будет необходимо восстановить конфигурацию GRUB. Один из способов реализовать это — создать скрипт, который будет запускаться при загрузке Linux. Идея состоит в том, чтобы проверять систему на загрузку Windows и возвращать таймаут, если это так.

Способ 2: Использование GRUB-сценариев

В некоторых конфигурациях GRUB может поддерживать пользовательские сценарии, которые позволяют выполнять действия при загрузке. Создайте файл /etc/grub.d/99_custom_time:

sudo nano /etc/grub.d/99_custom_time

Добавьте следующее содержимое:

#!/bin/sh
exec tail -n +3 $0

set timeout=0

# Вы можете добавить логику для восстановления значения по умолчанию

Не забудьте сделать файл исполняемым:

sudo chmod +x /etc/grub.d/99_custom_time

Способ 3: Стандартный метод через grub.cfg

Если вышеописанные методы слишком сложны, можно просто редактировать файл /etc/default/grub, чтобы установить таймаут в 0, а затем каждый раз после изменения возвращать его к желаемому значению. Однако это требует ручного вмешательства.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...