2

У меня есть установка двойной загрузки: Manjaro KDE и Elementary OS.

Допустим, я бы хотел запретить загрузку Manjaro KDE в определенное время (например, с 8:00 до 13:00), чтобы в это конкретное время можно было использовать только Elementary OS.

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

Это возможно? Что я мог сделать?

2 ответа2

2

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

       * 8-12 * * * root shutdown -h now
1

То, что кажется сегодня, не может казаться завтра :-) .

Вам должно быть разрешено использовать команды, связанные с датой и временем, в /boot/grub/grub.cfg редактирования /etc/grub.d даже если они полагаются на внутренние часы ПК, которые должны быть защищены от пользователей в обеих ОС и BIOS, а также возможность загрузки из источников, отличных от этих двух. Кроме того, помните, что отказ батареи материнской платы может привести к повреждению времени, показанного внутренними часами.

Дайте ему посмотреть на эту ветку Ubuntu для получения более практических советов или на этот пост для простой панорамы. Подсказка ретранслируется на модуль datehook и файл конфигурации (/boot/grub/grub.cfg)

insmod datehook
if [ "$HOUR" -ge "8" -a "$HOUR" -lt "13" ]; then set default="0" #Manjaro KDE
else set default="1"                                             #Elementary OS 
fi

Руками

Если вы не можете использовать функции grub выше, вы можете применить стратегию

  1. выгрузить запись в неправильное время, заставив перезагрузиться с определенным выбором, как описано в этих других ответах. Вы должны поставить проверку времени в сценарии, который должен выполняться при загрузке. Если проверка не пройдена, вы должны принудительно перезагрузить компьютер с другой опцией grub .
    Основные шаги:

    • в /etc/default/grub записать / проверить GRUB_DEFAULT=saved
    • Используйте grub-set-default (если хотите) для варианта загрузки по желанию
    • sudo update-grub чтобы сохранить его

    В скрипте для запуска

    • grub-reboot <entry> с указанием на другую ОС.
  2. выгонять людей, которые еще вошли в систему, когда появится черное временное окно, например, после предложения davidgo добавить проверку в crontab (но опять же я думаю, что лучше написать небольшой скрипт, который перезагружается с опцией willed grub или, если работает напрямую grub-reboot <entry>).

Приятного времяпровождения и чтения ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .