Как управлять по сети загрузкой ОС?
Как сделать, чтобы меню загрузчика GRUB, при установке Linux с Windows на один компьютер, обращалось по сети к другому компьютеру на котором установить какое--то ПО, которое сообщает в какую ОС грузиться.
Дополнительно:
Посмотрите в сторону uefi shell scripting. Не факт, что оно так может, но на сколько я знаю при желании там можно "накрутить" всё что угодно.
Для начала стоит ознакомиться: статья на хабре
PXE-сервер
Ответы:
Можно наколхозить загрузку по умолчанию минимальной ОС, которая будет выполнять единственный скрипт - запрашивать по сети выбор загрузчика и запускать grub-reboot с его номером.
Но вообще говоря, придумывая нетривиальное шаманство, лучше объяснить - зачем. Могут подкинуть вариант не извращаться и сделать все проще.
- Вы правы Сударь,когда не известна цель,путь тоже превращается в головоломку
- Причем иногда люди подкидывают варианты, которые сам не знал, хотя они были вполне очевидны :) (были у меня такие случаи, когда вместо колхоза подкидывали простое решение "искаропки")
- Есть 40 ПК который в течении дня нужно использовать с разными ОС при этом при перезагрузке нет никого кто бы мог выбрать ту ОС В которую грузиться.
- Дмитрий Бойцов, но перезагружаться-то они как-то будут в течение этого дня. Если с ними работают удаленно, через какой-нибудь Anydesk - достаточно по умолчанию грузиться в Линь и положить на рабочий стол скрипт "Перезагрузиться в винду" с grub-reboot внутри.
Стандартно - никак, можно найти разработчика, который сможет дописать нужные функции в код grub, если это возможно.
Либо Linux грузить по умолчанию, добавив скрипт в автозапуск в Linux, который при запуске проверит и если нужно загрузиться в Windows, перезагрузится в Windows
- Собственно мой вопрос но другими словами.
- Дмитрий Бойцов, вообще-то это ответ. Или вы думали, что я вам пошагово распишу?
По второму варианту скрипт в несколько строк на bash, зависящий от того, где и какие данные нужно проверять и соответствующей командой в grub-reboot
Нормальное решение - сетевая загрузка (PXE) и подсовывать нужный конфиг. Можно даже использовать загрузчики типа ipxe, которые умеют качать файлы по http. Но для одно компа это может оказаться чересчур.
Как вариант, можно было бы настроить grub, чтобы он загружал систему из "saved", и тогда можно было бы менять командой grub-set-default, затем перезагружать. Но это сохраняется в файл, который из-под Windows будет недоступен.
Думаю, проще одну из систем поставит в виртуалку в другой, тогда обе могут быть доступны постоянно.
- Есть 40 ПК который в течении дня нужно использовать с разными ОС при этом при перезагрузке нет никого кто бы мог выбрать ту ОС В которую грузиться.
- Дмитрий Бойцов, тогда действительно я бы поизучал возможности pxe. Или попробовал соорудить условную загрузку в grub в зависимости от флаг-файла где-то на ntfs (чтобы в любой системе было доступно).
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для управления загрузкой операционной системы по сети можно воспользоваться различными методами, такими как PXE (Preboot Execution Environment), Wake-on-LAN (WoL) и удаленными управляющими панелями.
1. PXE (Preboot Execution Environment) - это стандартный протокол, который позволяет компьютерам загружаться через сеть. Для настройки PXE загрузки необходимо настроить сервер PXE и настроить BIOS компьютеров на загрузку через сеть. Для этого можно использовать специальные программы, такие как DHCP сервер и TFTP сервер.
// Пример конфигурации DHCP сервера для PXE загрузки subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option domain-name-servers 192.168.1.1; next-server 192.168.1.10; filename "pxelinux.0"; }
2. Wake-on-LAN (WoL) - это технология, которая позволяет запускать компьютеры по сети. Для этого необходимо настроить BIOS компьютера на поддержку WoL и использовать специальные программы для отправки магического пакета на компьютер.
// Пример отправки магического пакета для запуска компьютера по сети $mac_address = '00:11:22:33:44:55'; $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_set_option($socket, SOL_SOCKET, SO_BROADCAST, 1); socket_sendto($socket, pack('H*', str_replace(':', '', $mac_address) . str_repeat('FF', 6)), 102, '255.255.255.255', 7); socket_close($socket);
3. Удаленные управляющие панели - некоторые серверы и сетевые устройства имеют встроенные удаленные управляющие панели, которые позволяют управлять загрузкой операционной системы и другими параметрами по сети. Для использования удаленных управляющих панелей необходимо настроить соответствующее программное обеспечение и подключиться к устройству по IP адресу.
Надеюсь, что эти методы помогут вам управлять загрузкой операционной системы по сети. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.