По дороге к виртуализации, до кучи захотелось сделать бездисковые станции. Ну, чтобы включаешь новенький ПК, а тебе сразу по DHCP предлагают установить на выбор новую ОС, а по-таймату продолжат загрузку ОС, CRUX например, сделав железку частью моей сети. Как мультизагрузочная флешка, только по сети, по кабелю.
https://files.catbox.moe/dffqpe.png
Установка и настройка DHCP, TFTP прошла успешно. Всего одной командой grub-mknetdir была создана структура /tftpboot директории. Теперь при запуске виртуальной машины без всяких там параметров, или же подключения нового физического компьютера в свич, — они все заходят в бридж br0, где участникам сети раздаются айпишники предлагается загрузка по сети. Включаем ПК / КВМ и получаем приветствие grub2. Пустого, пока что.
Дело тривиальное, наполнить его Debian, Ubuntu, CentOS, ... Windows? Мультизагрузочная «флешка» по сети это одно. Возвращаемся к бездисковым станциям, — допустим, я отправил пакет Wake-On-Lan, физический компьютер без диска включился, далее grub2 предлагает ему как и всем на выбор установку ОС, а по-таймауту в 3 секунды продолжает загрузку уже сконфигурированной ОС _конкретно для данного хоста_.
Суть в том, что таких компьютеров много, задачи у каждого свои: кто-то днс-сервер, кто-то веб-сервер. Тут должна быть какая-то идентификация, по mac-адресу например. На каком уровне тогда её организовать? На уровне grub2? То есть, сделать множественные menuentry "(00-00-00-00-00-FF)" доступными для всех, чтобы grub2 сам выбирал кого загружать в зависимости от mac-адреса устройства. Что в принципе не безопасно, т.к. конфигурации будут доступны всем. Уровне DHCP? Я не знаю как, в зависимости от mac каждому хосту предлагать отдельный загрузчик?
Ещё вопрос, хотел было попробовать freedos для начала, но для его запуска требуется memdisk, который идёт в пакете syslinux. insmod memdisk у граба это не то. Тащить все загрузчики я не хочу, не комильфо. grub2 самый фичастый, и я решил использовать чисто его. Как вы видите, у меня нет никакого «pxelinux.0», только grub2. Но вот походу, memdisk в нём нет, и какой-нибудь установленный образ freedos не загрузить, или я пока не знаю как.