Я использую аналогичную установку, но задом наперед. В конце концов, я могу контролировать с сервера, как загружаются мои целевые машины.
Однако я не полагаюсь на grub на целевой машине и не использую iPXE.
Вместо этого я установил загрузочный сервер PXE. В настоящее время крайне сложно найти компьютер с неработающей загрузкой PXE. Поэтому я настроил все компьютеры, которыми мне нужно управлять, таким образом, чтобы они загружались из сети через PXE.
Кстати, это одинаково возможно как со старым BIOS, так и с современными UEFI машинами, и именно DHCP-сервер различает эти случаи и предлагает машине подходящий загрузчик.
В любом случае машины загружают какой-то вариант PXELinux. У него есть отличное свойство в том, как он ищет файл конфигурации. Сначала он запрашивает файл конфигурации с именем SMBIOS UUID машины, если он не найден, если запрашивает файл с именем по MAC-адресу интерфейса, который был загружен, IP-адрес, и если ничего не помогает, он запрашивает файл По умолчанию
.
Таким образом, вы можете создать некоторые «базовые конфигурации», которые загружают машины с локального жесткого диска. tftp/pxelinux.cfg/жесткий диск
:
жесткий диск по умолчанию
метка жесткого диска
локальная загрузка 0
и другой, который загружает clonezilla tftp/pxelinux.cfg/clonezilla
:
клонзилла по умолчанию
лейбл клонезилла
# инструкции по загрузке clonezilla здесь
и вы можете добавить несколько других, например, для бездискового тонкого клиента (это фактическая конфигурация, которую я когда-то использовал):
растяжение по умолчанию
этикетка стрейч
тонкий клиент Linux/vmlinuz-4.9.0-7-amd64
initrd тонкий клиент/initrd.img-4.9.0-7-amd64
добавить ISCSI_INITIATOR=iqn.1993-08.org.debian:01:a4c444f2b735 ISCSI_TARGET_NAME=iqn.2018-10.ru.rterm.office.test-storage:thinclient.lvm ISCSI_TARGET_IP=192.168.168.113 ISCSI_055ca=4UUID24 root=4260 root -8ea2-437f-9550-a5503d0e7b21 ip=dhcp тихий
Затем вы создаете символические ссылки, указывающие на эти шаблоны:
cd tftp/pxelinux.cfg
ln -s clonezilla 01-10-32-54-76-98-ба
ln -s clonezilla 01-dc-fe-10-32-54-76
ln -s жесткий диск 01-98-ba-dc-fe-10-32
ln -s жесткий диск 01-54-76-98-ba-dc-fe
ln -s жесткий диск по умолчанию
ln -s тонкий клиент 00801536-e3ee-1610-9957-d68a52030736
В этом примере машины с MAC-адресами 10:32:54:76:98:ба
и DC: Fe: 10: 32: 54: 76
загрузит клонзилла
конфигурационный файл (01
в начале имени файла здесь означает "Ethernet"), машина с UUID 00801536-e3ee-1610-9957-d68a52030736
загрузит Тонкий клиент
config, и другие машины загрузятся жесткий диск
, но два с указанными MAC-адресами будут делать это тише (меньше журналов «файл не найден» на сервере и немного быстрее загрузка, потому что попытка загрузки будет успешной раньше).
Теперь, если вам нужна какая-то машина для загрузки, скажем, clonezilla, вы создаете или меняете ее симлинк на tftp-сервере к клонзилла
. После того, как он был загружен, вы можете отменить изменение (например, изменить на жесткий диск
или что хотите).Вы можете создавать конфиги для сетевой установки Linux — я даже не помню, когда в последний раз загружал установщик с USB, потому что всегда устанавливаю его таким образом уже несколько лет. Вы можете использовать PXELinux включать
директиву и создайте аккуратное универсальное меню со всеми этими параметрами, чтобы выбрать их вручную и использовать вместо этого по умолчанию. Технически даже установка Windows возможна (была) таким образом. Схема очень гибкая, и единственное, что зависит от клиентской машины, это то, что она сначала загружается из сети.