Два (или три) разных способа
Использование сетевой загрузки через PXE-сервер.
Я использовал такой трюк для резервного копирования оконных станций (с помощью ntfsclone
или partclone
), пока пользователей нет на ночь.
Создайте загрузочный сервер PXE (dhcpd + tftpd) для загрузки по сети (вы можете создать специальное меню загрузки для каждого компьютера в сети или создать группу). Меню загрузки по сети может указывать на локальный жесткий диск. )
Подготовьте два разных загрузочных меню на этом сервере: одно по умолчанию для Ubuntu, а другое по умолчанию для окна.
Связать меню загрузки по умолчанию с окном, обслуживаемым сервером pxe.
Подготовить сценарий пробуждения для
- ) Ссылка меню загрузки по умолчанию на Ubuntu, которая будет обслуживаться сервером pxe.
- ) Отправить Wake-On-LAN сигнал , чтобы разбудить компьютер вверх
- ) Дождитесь запроса меню загрузки в журналах TFTP (обратите внимание на время ожидания и ограничения, если предположить исключение).
- ) Ссылка меню загрузки по умолчанию на окно, обслуживаемое сервером pxe.
Вы можете даже попытаться запустить то же самое через crontab, чтобы синхронизировать его с помощью BIOS wakup, но если в crontab, вы можете просто запустить скрипт, определенный в 4.
..
Это сделает работу.
(Обратите внимание, что загрузочный сервер pxe имеет небольшой размер и может быть установлен даже на raspberry pi, взломанном NAS или на маршрутизаторе DD-WRT, например.).
Использование информации dmidecode
Вы можете использовать dmidecode для запуска grub-reboot windows
при загрузке с выключателя питания.
Просто создайте скрипт, содержащий что-то вроде:
/bin/sh
dmidecode | grep -q 'Wake-up Type: Power Switch' && echo grub-reboot windows
reboot
Вы можете запускать этот скрипт при каждой загрузке, добавляя их в crontab с помощью директивы @reboot
.
(Примечание: для grub-reboot
вам, возможно, придется отредактировать /etc/default/grub
. См. man grub-reboot
)
Это будет работать, но значительно увеличит время загрузки Windows!
Чтобы избежать этого, вы можете создать специальный initramdisk
мог бы выполнять эту работу, но это не так просто.
Использование ipxe
(возможно)
Я не знаю этот инструмент, но я слышал хорошие отзывы.
iPXE - это лидирующая прошивка для загрузки с открытым исходным кодом. Он обеспечивает полную реализацию PXE, дополненную дополнительными функциями.