Как изменить тайм-аут GRUB только для следующей перезагрузки?

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

Как я могу достигнуть этого? У меня есть Ubuntu 18.04.

4
задан 12 January 2020 в 17:07

3 ответа

Можно использовать блок Среды Личинки.

Мы можем сохранить переменную в /boot/grub/grubenv и измените значение переменной во время следующей начальной загрузки.

Добавьте следующие строки к /etc/grub.d/40_custom:

if [ ${boot_once_timeout} != "x" ]; then
    set timeout=${boot_once_timeout}
    set boot_once_timeout=x
    save_env boot_once_timeout
fi

Сделайте исполняемый файл файла с sudo chmod +x /etc/grub.d/40_custom

Выполненный sudo update-grub.

Теперь запишите переменную в /boot/grub/grubenv и перезагрузка:

sudo grub-editenv - set boot_once_timeout=0
sudo grub-reboot 0

Можно всегда проверять значение переменной с

~$ cat /boot/grub/grubenv
# GRUB Environment Block
next_entry=
boot_once_timeout=x

Обратите внимание, что это будет работать, только если Личинка может записать в /boot/grub/grubenv, таким образом, если Ваш /boot папка находится в BTRFS-разделе или в LVM-объеме, это решение не будет работать.

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

2
ответ дан 19 January 2020 в 09:15

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

$ cat /usr/local/bin/zapboot
#! /bin/bash

# NAME: zapboot
# PATH: /usr/local/bin
# DESC: Perform faster reboots from Linux.
# CALL: sudo zapboot
# DATE: Created Oct 8, 2016.
# NOTE: Configuration files in Xxxx/Yyyy/Zzzz.conf

sudo sed -i 's/set\ timeout=10/set\ timeout=00/' /boot/grub/grub.cfg
sudo reboot

$ cat /usr/local/bin/zaprestore
#! /bin/bash

# NAME: zaprestore
# PATH: /usr/local/bin
# DESC: Restores /boot/grub/grub.cfg to 10 second timeout.
# CALL: sudo zaprestore
# DATE: Created Oct 8, 2016.

sudo sed -i 's/set\ timeout=00/set\ timeout=10/' /boot/grub/grub.cfg

К перезагрузке быстро вводят sudo zapboot. После входа в систему типа sudo zaprestore.

В zapboot команда:

sed -i 's/set\ timeout=10/set\ timeout=00/' /boot/grub/grub.cfg
  • Тайм-аут личинки изменений от 10 секунд до 00 секунд.
  • Вы не можете установить тайм-аут на 0 секунд, потому что личинка переопределяет к 10 секундам.

В zaprestore команда:

sed -i 's/set\ timeout=00/set\ timeout=10/' /boot/grub/grub.cfg
  • Возвращает тайм-аут личинки к 10 секундам.
  • Отметьте, изменили ли Вы свою систему, чтобы сказать, что 5 второго раза заменяет 10 с 5 в обоих сценариях.
  • Оба сценария должны быть установлены как исполняемое использование sudo chmod a+x /usr/local/bin/zap____
  • Где ____ boot или restore.
0
ответ дан 19 January 2020 в 09:15

В 19,04 и 19.10 я по ошибке установил тайм-аут в/boot/grub/grub.cfg файле и который только работал на одну начальную загрузку.

-1
ответ дан 19 January 2020 в 09:15

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

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