Так же, поскольку я изменяю выбранную опцию GRUB с grub-reboot 2
который влияет только на следующую начальную загрузку, я хочу изменить время тайм-аута GRUB для следующей начальной загрузки только. После этого значение тайм-аута должно быть сброшено к предыдущему значению.
Как я могу достигнуть этого? У меня есть Ubuntu 18.04.
Можно использовать блок Среды Личинки.
Мы можем сохранить переменную в /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-объеме, это решение не будет работать.
Также смотрите на этот ответ, другой пример, который объясняет использование блока среды Личинки.
Один из первого набора сценариев, которые я разработал, должен был ускорить время перезагрузки:
$ 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
В zaprestore
команда:
sed -i 's/set\ timeout=00/set\ timeout=10/' /boot/grub/grub.cfg
10
с 5
в обоих сценариях.sudo chmod a+x /usr/local/bin/zap____
____
boot
или restore
.В 19,04 и 19.10 я по ошибке установил тайм-аут в/boot/grub/grub.cfg файле и который только работал на одну начальную загрузку.