Symlinks mit grub2 wie pxelinux

Symlinks mit grub2 wie pxelinux

Ich möchte symbolische Links erstellen, wie es pxelinux kann, nur mit Grub2. Aber ich weiß nicht, wie das geht. Das Ziel ist, verschiedene Konfigurationsdateien zu haben, die ich dynamisch an eine IP weitergeben kann.

Grub2 funktioniert bisher, aber ich kann keiner anderen Konfigurationsdatei eine IP zuweisen, es wird immer die grub.cfg verwendet. Ich habe auch grub.cfg-IP -> eine andere Konfigurationsdatei -> versucht, das ist ein symbolischer Link zu der Konfigurationsdatei, die ich eigentlich verwenden möchte.

Vielleicht hat das schon jemand herausgefunden. Das Grub2-Handbuch hat nicht viel geholfen.

Antwort1

PXELINUX erstellt keine „Symlinks“: Es lädt lediglich eine Konfigurationsdatei herunter, deren Name die IP- oder MAC-Adresse des Clients oder einen Teil davon enthält. Die Tatsache, dass die entsprechende Datei ein Symlink ist, bleibt ausschließlich Ihnen und Ihrem TFTP-Server überlassen, der die Datei an PXELINUX liefert.

Beachten Sie, dass GRUB im Gegensatz zu PXELINUX nur nach einer einzigen Konfigurationsdatei sucht, die grub.cfgstandardmäßig vorhanden ist. Diese müssen Sie also bereitstellen. Wenn GRUB eine Konfigurationsdatei verwenden soll, deren Name irgendwie von der IP-Adresse des Clients abhängt, müssen Sie GRUB dies mitteilen.

Diese Konfigurationsdatei kann GRUB dann anweisen, eine andere Konfigurationsdatei zu laden … und Sie können beim Angeben des Namens GRUB-Umgebungsvariablen verwenden.

Wenn Sie also möchten, dass GRUB eine Konfigurationsdatei mit dem Namen verwendet grub.cfg-<IP address>, sollten Sie zunächst eine sehr kleine grub.cfgDatei am von GRUB erwarteten Speicherort erstellen und darin (nur) etwa Folgendes angeben:

configfile grub.cfg-${net_default_ip}

Dadurch sollte GRUB angewiesen werden, eine neue Konfigurationsdatei herunterzuladen, deren Dateiname mit der Client-IP-Adresse endet.

Sie können die neue Konfigurationsdatei sogar mit einem absoluten Pfad angeben, etwa so:

configfile (tftp,${net_default_server})/some/path/grub.cfg-${net_default_ip}

Wenn Sie keine separate Datei mit nur einer Zeile haben möchten, grub.cfgdie eine neue Konfigurationsdatei definiert, können Sie diese einzeilige Konfiguration in das GRUB PXE-Boot-Image einbetten, indem Sie grub-mkimage -c <grub.cfg containing the configfile command> -O i386-pc-pxe <other parameters...>(oder die von Ihnen verwendete Architektur) verwenden.


Sie haben wahrscheinlich bereits festgestellt, dass es bei Problemen mit dem PXE-Booten sinnvoll ist, den Netzwerkverkehr zwischen dem PXE-Client und den DHCP/TFTP-Servern mit etwas wie tcpdumpoder zu dumpen wireshark, um zu überprüfen, ob der Client die richtigen Informationen erhält und wiederum die richtigen Dateien anfordert... richtig?

verwandte Informationen