Можно ли планировать GRUB? Это означает: автоматически изменить значение по умолчанию «запись» (автоматический вход в систему) в определенные периоды времени?

Например:

00:00:00 to 06:00:00 -> Slitaz
06:00:01 to 13:00:00 -> Ubuntu
13:00:01 to 19:00:00 -> Fedora
19:00:01 to 23:59:59 -> openSUSE

Может ли grub автоматически менять «запись» по умолчанию?

1
задан 5 January 2015 в 21:56

2 ответа

Для начала запустите в терминале следующую команду:

grep -E '^menuentry|^submenu' /boot/grub/grub.cfg | cut -d '"' -f2 | cut -d "'" -f2

Это вернет список ваших записей меню grub. Я предполагаю, что в вашем случае этот список выглядит примерно так:

Slitaz
Advanced options
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Ubuntu
Fedora
openSUSE

Теперь для каждой из этих записей вы должны назначить число в порядке возрастания, начиная с 0 (для «Slitaz» - 0 , для «Дополнительные параметры» - 1 и т. д.). Вы будете использовать эти цифры для установки записи по умолчанию в меню grub.

Затем, и последнее, вы должны отредактировать файл /boot/grub/grub.cfg следующим образом:

От терминала, открытого в gedit, файл, используя:
sudo -H gedit /boot/grub/grub.cfg
Найти строку, в которой установлена ​​переменная default; он должен выглядеть примерно так:
set default="..."
Заменить приведенную выше строку следующим кодом:
insmod datehook

if [ "$HOUR" -ge "0" -a "$HOUR" -lt "6" ]; then set default="0"      #Slitaz time

elif [ "$HOUR" -ge "6" -a "$HOUR" -lt "13" ]; then set default="4"   #Ubuntu time

elif [ "$HOUR" -ge "13" -a "$HOUR" -lt "19" ]; then set default="5"  #Fedora time     

else set default="6"                                                 #openSUSE time

fi
Сохранить файл и закрыть его.

Вот и все! Перезагрузите компьютер и проверьте, работает ли он.

Примечание: чтобы вернуть эти настройки, просто запустите sudo update-grub в терминале. Фактически, эта команда будет автоматически генерировать и заменять файл /boot/grub/grub.cfg с использованием шаблонов из /etc/grub.d и настроек из /etc/default/grub. Поэтому лучше разместить вышеуказанный код в одном шаблоне внутри каталога /etc/grub.d.

Источник вдохновения: terminal .

Другие источники:

От терминала открыть в gedit файл, используя: [ f3] http://members.iinet.net/~herman546/p20/GRUB2%20CLI%20Mode%20Commands.html
2
ответ дан 24 May 2018 в 20:13

У вас есть 2 возможности. Во-первых, вы можете добавить к каждой ОС скрипт cron, который изменяет конфигурацию по часам. Тем не менее, вам не понравится, что произойдет, если этот сценарий начнет работать, пока ОС закрывается, поэтому будьте осторожны. Лучше всего было бы приобрести материнскую плату UEFI для вашего ПК. Там вы можете установить Shellx86, который является консолью сценариев предварительной загрузки. Создание скрипта для того, что вы хотите в Shellx64, не сложнее, чем скрипты в bash. Я использовал его для загрузки различных ОС в зависимости от того, есть ли у вас подключение к Интернету.

0
ответ дан 24 May 2018 в 20:13

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

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