
Комментарии 19
Чтобы выбрать систему из груба комп уже должен быть включен и нужен доступ к консоли.
Реле управляет питанием дисков только в течение 90 сек после запуска. А так они включены всегда и что бы не случилось с реле или его питанием на дисках это не скажется.
Пока все работает. Да, я тоже не очень знаю спецификацию sata, даже назначение напряжение плохо описано в популярных источниках.
Собственно, как я написал, риски может и есть, но я считаю их допустимыми.
У вас уже используется Wake-on-LAN для включения ПК.
Вам нужно было лишь в запускаемой по-умолчанию ОС добавить скрипт, который при загрузке запрашивает у Home Assistant по http REST API какую ОС необходимо загрузить и если она не совпадает с текущей, то выполняет grub-reboot [номер ОС].
Такое программное решение выглядит проще и надежнее.
Для удобства скрипту можно добавить предложение нажать ESC в течение 5 секунд, чтобы отменить перегрузку локально. Так можно будет включать ПК локально не задумываясь что там выбрано в Home Assistant.
Класс! А как это сделать? Фиксированный IP? DHCP? У меня в компе, который имеет несколько систем, специально настроены разные mac адреса чтобы ip системы зависил от ОС: так проще домашний firewall насторить.
Я когда-то думал для этого использовать DHCP запрос: в ответе сервера указать, какую ОС загрузить в доп. хедерах. Но как это сделать в grub os так и не понял.
На ПК должна быть зафиксирована ОС, загружающаяся по-умолчанию всегда, при помощи grub-set-default. Желательно Linux, т.к. в нем это можно сделать в несколько строк на Bash. После загрузки запускается скрипт, делающий исходящий запрос к Home Assistant API по HTTP, получает ответ какая ОС должна быть загружена и запускает с правами root grub-reboot <номер> && reboot с нужным номером загрузочной записи.
Всё. Не важно какой IP и MAC у ПК, важен лишь доступ с него к Home Assistant.
А чем не подошел вариант грузить только proxmox, а в нем виртуалку с нужной ос? (Отдельно вопрос, зачем убунта, если уже есть proxmox, основаньій на дебиане...)
была статья (вроде тут на хабре но это не точно) - сделали некий девайс на stm32 который решал задачу выбора загрузочного диска в grub
Поиск дает такое https://github.com/stecman/hw-boot-selection https://github.com/rw-hsma-fpga/grub-switch наверное что то еще есть
Суть не в том что это аппаратное устройство а в том что grub может управляться "извне"
Интересная какая разработка. Но как я понял смысл тут именно в программно-аппаратном комплексе. Программа нужна чтобы не надо было эмулировать клавиатуру и подать не ненадежную комбинацию кнопок вверх/вниз а что то вроде аппаратного api поддержать, а прямого управления по сети она не поддерживает. Может я конечно неправильно понял, по диагонали пробежался.
Грубо конечно, но мне нравится
Страх и ужас ;((
А если не будет грузиться, ошибки какие-то выдавать?
У вас же HA крутится на каком-то железе? Я бы добавил туда IP KVM и решил этим проблему. Если аппаратный IP KVM не нравится - возьмите USB свисток с HDMI входом, эмулирующий USB камеру (на Али в пределах 1 т.р.) + эмулятор клавиатуры (реально собрать готовый проект на всяких ESP32). А на релюхи - вывести кнопку включения и reset.
Ну будут и будут. Выключу и попробую еще раз. Если не получится - ну и ладно, есть и другие варианты решения вопросов, например подключусь к какому нибудь рабочему серверу.
Железные ip kvm - это как то совсем небюджетно. Для домашнего решения перебор.
Второй вариант побюджетнее, не знал про hdmi камеры, спасибо.
Но - мне не нравятся такие решения. KVM - это все же про работу и про кровавый энтерпрайс, я же в личной жизни стараюсь автоматизировать до уровня кнопки "сделать красиво". HA в этом плане мне сильно нравится потому что в нем можно почти все сделать. Получившаяся у меня схема отвечает этому критерию.
Могли бы Вы дать линку на конкретный USB свисток? И как с его помощью получить экран удалённо?
Последнее время их появилось очень много. Я купил два на пробу и оба хорошо работают, задержка минимальна (подключил вместо монитора одного компа, на экран другого компа вывел "usb камеру" и свободно пользовался первым компом):
Просто свисток (1900 рублей) https://aliexpress.ru/item/1005004754486040.html
Свисток с дублированием потока (1000 рублей) - есть HDMI In, HDMI Out, перехватывает видео по USB: https://aliexpress.ru/item/1005003576399052.html
Также есть куча свистков за 200-400 рублей, но про них ничего сказать не могу, по отзывам - они не могут держать полноценно Full HD 30/60 FPS, но для задачи "IP KVM на случай проблем с загрузкой" они должны без проблем справиться.
свисток то это не проблема, только вот "за скобками" остался целый программно-аппаратный комплекс который надо собрать на коленке по не особо готовым рецептам.
тут была недавно статья - человек даже готовое решение PiKVM на малинке не осилил
Есть ещё пара более простых методов.
Grub можно грузить по pxe (и, соответственно, дать ему любые настройки для загрузки нужного).
Или можно отдавать по pxe только переменную для выбора ОС при загрузке, а весь остальной загрузчик и конфиг держать в самом компе. Тогда при отсутствии pxe сервера - компьютер всё равно можно будет загрузить в любую ОС через меню grub.
Ну а отредактировать файл через автоматизацию - это уже просто.
Выбор загрузочного диска домашнего компьютера из Home Assistant