Hallo zuzsammen,
ich hab immer mal wieder folgendes Problem:
Wenn ich nen PXE Client booten möchte, der aber mehr als eine NIC hat (also nicht nur NIC Ports, sondern mehrere Karten, z.B. onboard + eine weitere zusätzlich), werden beim booten die NIC Bezeichnungen "fröhlich durcheinandergewürfelt", sodass eth0 einem Port zugewiesen wird, der gar nicht angesclossen ist. Dann läuft der Client beim init in nen Timeout beim Initialisieren der NIC (klar, "eth0" ist in diesem Moment ja nich angeschlossen), und dann findet der Kernel beim booten natürlich gar nix mehr und bleibt mit nem Panic stehen (manchmal auch in der busybox)...
Ich denke, ursache ist die initrd Konfig: Beim Client muss ja beim Erstellen der initrd für den PXE Boot das Device angegeben werden, in der initramfs.conf steht also "DEVICE=eth0". Mache ich das nicht, bootet der Client später auch nicht vollständig durch, entweder bleibt beim init der NICs mit timeout stehen, oder bootet in die busybox.
Im Gegensatz dazu funktioniert es z.B. mit nem GRML über PXE ganz anders: Dort wird einfach jeder Port jeder NIC "geprüft", wenn innerhalb einer bestimmten Zeit nicht initialisiert werden kann, gehts einfach mit der nächsten weiter... Basis ist dort allerdinsg auch Debian-Live glaube ich, also root wird während boot über squashfs eingebunden...
Hat jemand eine Idee, wie ich eine initrd ausgehend von einer "normalen" Installation so erzeugen kann, dass sie beim PXE boot alle vorhanden NICs "durchtestet" und ggf z.B. eth1 weiter verwendet, anstatt stehen zu bleiben?
Besten Dank schonmal
Martin
PXE Boot mit "MultiNIC"-Client
Re: PXE Boot mit "MultiNIC"-Client
Einfach folgende Konfiguration verwenden:
Damit kannst du das Interface angeben.
Code: Alles auswählen
DEFAULT linux
timeout 100
PROMPT 1
DISPLAY debian.txt
F1 f1.txt
LABEL linux
KERNEL vmlinuz-jessie-3_16
APPEND vga=normal initrd=initrd-jessie-3_16 root=/dev/nfs nfsroot=xxx.xxx.xxx.xxx:/NFSPATH ip=:::::eth0:dhcp console=tty0 elevator=noop showopts apm=off rw selinux=0 clock=pit -rw
Re: PXE Boot mit "MultiNIC"-Client
Hi, danke für die Antwort - aber vermutlich habe ich mich zu umständlich ausgedrückt...
Das wäre ne Lösung, wenn ich vorher wüsste, welchen Namen das zu verwendende Interface bekommt...
Das wäre ne Lösung, wenn ich vorher wüsste, welchen Namen das zu verwendende Interface bekommt...
Re: PXE Boot mit "MultiNIC"-Client
Der Name sollte sich nicht ändern. Das hätte ich zumindest noch nie beobachtet.
Re: PXE Boot mit "MultiNIC"-Client
Hm, wie erklär ich das am Besten...
Angenommen der Client hat nur eine NIC mit einem Port - dann funktioneirt alles wie gewünscht (NIC"1"= eth0).
Wird in diesen Client noch ne 2te NIC eingebaut (also zusätzliche Karte = NIC2), dann passiert es rel. oft, dass beim booten NIC1=eth1 und NIC2=eth0 wird - und dann läuft es nicht weiter, wenn NIC2 nicht angeschlossen ist...
Angenommen der Client hat nur eine NIC mit einem Port - dann funktioneirt alles wie gewünscht (NIC"1"= eth0).
Wird in diesen Client noch ne 2te NIC eingebaut (also zusätzliche Karte = NIC2), dann passiert es rel. oft, dass beim booten NIC1=eth1 und NIC2=eth0 wird - und dann läuft es nicht weiter, wenn NIC2 nicht angeschlossen ist...
Re: PXE Boot mit "MultiNIC"-Client
Vielleicht
Predictable Network Interface Names
net.ifnames=1
Die fedora-Version davon (zumindest ~ 2011)
biosdevname=1
mit einem udev-Hilfsprogramm 'biosdevname'
In
https://www.kernel.org/doc/Documentatio ... meters.txt
ist keins der beiden aufgeführt.
Ist wohl ein reines systemd/udev-Ding,
im Kernel findet sich "ifnames" nur in
linux-4.4/drivers/staging/lustre/lnet/lnet/config.c.
Predictable Network Interface Names
net.ifnames=1
Die fedora-Version davon (zumindest ~ 2011)
biosdevname=1
mit einem udev-Hilfsprogramm 'biosdevname'
In
https://www.kernel.org/doc/Documentatio ... meters.txt
ist keins der beiden aufgeführt.
Ist wohl ein reines systemd/udev-Ding,
im Kernel findet sich "ifnames" nur in
linux-4.4/drivers/staging/lustre/lnet/lnet/config.c.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: PXE Boot mit "MultiNIC"-Client
Hi,
Achtung, jetzt kommt evtl mein gefährliches Halbwissen zum Tragen...
biosdevname hilft dabei, dass die "alten" Bezeichnungen (aka ethX) verwendet werden, und nicht die hübschen neuen (z.B. "ensXXX") - oder? Hilft dagegen nicht dabei, einer NIC einen bestimmten Namen zuzuordnen - da wäre vermutlich udev der richtige Ansatz, was hier in dem Fall aber auch nicht funktioneiren würde, da udev später startet...
Der Lösungsansatz geht auch am eigentlichen Problem vorbei: Gibt es eine Möglichkeit, (vermtulich) die initrd für den PXE boot so umzubauen, dass Sie eine beliebige NIC verwendet? Und eben nicht hängen bleibt, wenn die irgendwo konfigurierte nur nicht angeschlossen ist?
Wie gesagt, ich kenn das vom GRML PXE Boot, da ist das super hübsch gemacht...
Grüße
Martin
Achtung, jetzt kommt evtl mein gefährliches Halbwissen zum Tragen...
biosdevname hilft dabei, dass die "alten" Bezeichnungen (aka ethX) verwendet werden, und nicht die hübschen neuen (z.B. "ensXXX") - oder? Hilft dagegen nicht dabei, einer NIC einen bestimmten Namen zuzuordnen - da wäre vermutlich udev der richtige Ansatz, was hier in dem Fall aber auch nicht funktioneiren würde, da udev später startet...
Der Lösungsansatz geht auch am eigentlichen Problem vorbei: Gibt es eine Möglichkeit, (vermtulich) die initrd für den PXE boot so umzubauen, dass Sie eine beliebige NIC verwendet? Und eben nicht hängen bleibt, wenn die irgendwo konfigurierte nur nicht angeschlossen ist?
Wie gesagt, ich kenn das vom GRML PXE Boot, da ist das super hübsch gemacht...
Grüße
Martin