• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

PXE/Syslinux mit Windows einrichten/konfigurieren

Hallo zusammen,

ich sitze hier an meinem PXE / Syslinux Projekt und komme nicht so recht weiter. Vielleicht ist hier jemand, der es schon mal geschafft hat einen PXE Server komplett einzurichten/konfigurieren und mir dabei etwas helfen kann.

Mein Ziel:
Abschaffung von Installations Medien und der Suche nach diesen. Betriebssysteme werden ständig aktualisiert. Ich habe schon eine ganze Kiste voll mit unterschiedlichen Betriebsystemen (CDs/DVDs). Ich möchte meine Geräte über das LAN booten und von da aus direkt installieren, Backups erstellen und Rescue Systeme starten können.

Bisher erreichtes:
Ich habe es schon geschafft mit dnsmasq einen DHCP Proxy zu konfigurieren, der dem DHCP der Fritzbox die Informationen um meinen Bootserver ergänzt. D.h. ich kann in ein von mir konfiguriertes Menü Booten und von dort aus meine Betriebssysteme auswählen, welche dann per TFTP herunter geladen und gestartet werden. Auf diese Weise funktioniert nun schon ein Boot von Knoppix und Ubuntu.

ToDo:
[*] Windows Setup einrichten
[*] Acronis Backup einrichten
[*] CloneZilla einrichten (glaube das kriege ich selber hin, ist ja Linux)

Meine Fragen:
1) Die HTTP Frage: Ich habe gelesen, dass HTTP schneller/performanter ist als TFTP und dass pxelinux das unterstützt. Man müsse nur lpxelinux.0 anstatt pxelinux.0 verwenden. Also habe ich das auch prompt versucht. Im Menü den Dateinamen (inkl. Pfad) durch http://<ip>/<folder>/<file> ersetzt. Ergebnis: File not found. Warum? Im Browser kann ich die Datei laden.
Ist schwer zu debuggen. Da noch kein Boot erfolgt ist gibt es auch noch keine Logdateien. :???: Ich habe an einigen Stellen gelesen, dass das so funktioniert.

2) Wimboot zum Starten von Windows: Habe ich nach langen Versuchen auch hin bekommen. Die WindowsPE wird erfolgreich gestartet. Dann fehlt mir nur dummerweise der Rest des Installationsmediums. D.h. dem Windows-Setup stehen die Installationsdateien nicht zur Verfügung. Wie bekomme ich das Medium am einfachsten verfügbar gemacht?
Im Rahmen von iPXE steht wohl iSCSI zur Verfügung. Kann man das auch ohne iPXE einbinden? Die Verwendung von iPXE führt laut Doku zu einer Bootloop, welche ich nur verhindern kann, wenn ich einen Script für den DHCP anpasse (glaube das geht bei dnsmasq nicht) oder das Projekt selbst mit einem Script (oder Konfigdatei) neu kompiliere. Da will ich lieber die Finger von lassen, es sei denn es geht überhaupt nicht anders.
Code:
LABEL Win10Test
  MENU LABEL Windows 10 Installationstest
  COM32 linux.c32
  APPEND wimboot/2.60/wimboot initrdfile=http://192.168.x.y/pxe/w10_1703/bootmgr,http://192.168.x.y/pxe/w10_1703/boot/bcd,http://192.168.x.y/pxe/w10_1703/boot/boot.sdi,http://192.168.x.y/pxe/w10_1703/sources/boot.wim

LABEL Win10Test2
  MENU LABEL Windows 10 Installationstest HTTPONLY
  KERNEL http://192.168.x.y/pxe/wimboot/2.60/wimboot
  APPEND initrdfile=http://192.168.x.y/pxe/w10_1703/bootmgr,http://192.168.x.y/pxe/w10_1703/boot/bcd,http://192.168.x.y/pxe/w10_1703/boot/boot.sdi,http://192.168.x.y/pxe/w10_1703/sources/boot.wim

3) Acronis: Damit konnte ich mich bisher noch nicht befassen, da ich an dem Windowsproblem so lange aufgehalten habe. Falls einer Tips hat, sind die willkommen.

4) UEFI: Bei aktuellen HDD Größen ist es zu empfehlen Windows im UEFI Modus zu installieren, damit GPT anstelle von MBR verwendet werden kann. Für Abwärtskompatibilität ist es wünschenswert den PXE Kram auch für Legacy-Mode vorzuhalten. Geht beides (UEFI und Legacy)? Soweit ich das verstehe, muss man sich entscheiden. Also entweder Legacy oder UEFI. Der Grund für meine Annahme ist, dass es die Bootmenü-Dateien einmal für Legacy und einmal für UEFI gibt. Ich kann aber nur eine in meiner Konfiguration angeben.

Schönen Gruß und Frohe Ostern
 
Mer0winger schrieb:
Hallo zusammen,
....
Meine Fragen:
1) Die HTTP Frage: Ich habe gelesen, dass HTTP schneller/performanter ist als TFTP und dass pxelinux das unterstützt. Man müsse nur lpxelinux.0 anstatt pxelinux.0 verwenden. Also habe ich das auch prompt versucht. Im Menü den Dateinamen (inkl. Pfad) durch http://<ip>/<folder>/<file> ersetzt. Ergebnis: File not found. Warum? Im Browser kann ich die Datei laden.
Ist schwer zu debuggen. Da noch kein Boot erfolgt ist gibt es auch noch keine Logdateien. :???: Ich habe an einigen Stellen gelesen, dass das so funktioniert.
...
HTTP ist nicht performanter als TFTP. Mit TFTP bist du am richtigen Weg.
Deine Darstellung ist verwirrend, deshalb folgendes zur Klarstellung:
pxelinux ist ein binary im Paket syslinux und nennt sich pxelinux.bin. pxelinux.bin ist der initial bootloader und unterstützt TFTP.
HTTP und FTP wird unterstützt von lpxelinux.0. Das ist dasselbe wie das binary lpxelinux.bin und du solltest lpxelinux.bin verwenden.
Sollte sich lpxelinux.bin mit "file not found" beenden, dann hast du mit hoher Wahrscheinlichkeit eine alte Version von syslinux.
Lade den syslinux source, kompiliere und versuche es damit. Zu finden ist lpxelinux.bin im source unter .../syslinux-x.xx/bios/core/
Trotzdem, lpxelinux.bin kann zwar HTTP, bringt aber keinerlei Vorteile.
Deshalb, bleibe bei pxelinux.bin.

Hier der simple Ablauf des bootprozesses.
Am server sind dhcp und tftpd gestartet und das PXE initial boot file ist in der dhcp server Konfiguration eingetragen.
Am client (der gebootet werden soll) passiert folgendes:
Code:
	1. setup PXE RAM auf der Netzwerkkarte (Im BIOS entsprechend konfiguriert)
	2. sende einen dhcp broadcast
	3. lese dhcp request vom server = Netzwerk Konfiguration
	4. lese den Namen des files, das geladen werden soll. Dieser Filenamen wird mittlels dhcp bootp übertragen.
	5. Starte den tftp client aus dem BIOS
	6. Lade das file mit TFTP vom server, z.B. das file pxelinux.bin
	7. Schreibe dieses file in den Speicher
	8. starte pxelinux.bin
	pxelinux.bin oder lpxelinux.bin macht folgendes:
	 	Suche nach dem file  "./pxelinux.conf/default"
	 	Kopiere es in den Speicher
	 	Dein bootmenu erscheint
	 	Auswahl des images
	 	Laden des images vom server entweder mit TFTP oder HTTP, je nach binary unter 6.
Ein logfile kann in diesem Ablauf nicht geschrieben werden.
Unter 5. wird immer TFTP verwendet.

Mehr gibt es dazu nicht zu schreiben.... außer das syslinux der weitaus beste bootloader ist, den es gibt.

Gruß
Gräfin Klara
 
Ergänzend noch mal ein paar Anmerkungen von mir: Sportlich, sportlich was Du da vor hast. Zu Windows gibt es ein paar gute Anleitungen im Netz, die ich aber noch nicht ausprobiert habe, da mir das zuviel Aufwand war. Acronis wird sich ähnlich wie Windows verhalten. Womit Du aber noch viel Spaß haben wirst, ist mit Kisten wo Du nicht im legacy-mode booten kannst/willst. Da kommt dann, neben syslinux auch noch grub2 mit ins Spiel. Und das bei unterschiedlichen Distributionen macht dann irgendwann keinen Spaß mehr. Kleiner Tipp aus eigener Erfahrung: RedHat im UEFI-mode per grub2 versucht den Admin zu veräppeln. Da hast Du an einer Stelle, bei fester IP im ks-file, eine Gedenkminute drin die den Anschein erweckt als wäre die Installation hängen geblieben. Gibt hier im Forum auch einen Thread von mir dazu. Zu dem ganzen Thema kann ich dir noch den guten Tipp geben: Lerne zu leiden ohne zu jammern...
 
OP
M

Mer0winger

Newbie
Hallo Klara
hallo Geier0815

schön dass Ihr Zeit hattet mir zu Antworten. Wie Ihr an meiner verspäteten Rückantwort sicher schon gemerkt habt, habe ich aktuell nur wenig Zeit. Freue mich aber dennoch über Resonanz.

@Klara
Du findest meine Darstellung verwirrend? Naja ... ich habe versucht mich so klar es geht auszudrücken. Mir ist bewusst, dass pxelinux ein Teil von syslinux ist. Wenn ich das nicht bereits heraus gefunden hätte, wäre ich wahrscheinlich auch nicht auf lpxelinux.0 gestossen. Und ich denke, dass die beiden Binaries nicht die "selben" sind. Sie unterscheiden sich eben durch ihre Netzwerkfähigkeiten.
Alt ist ein relativer Begriff. Ich nutze die Binaries von syslinux.org. Dort ist die neuste Version 6.03 von 2014. Wird das Projekt aktuell nur im Source-Code weiter gepflegt oder weshalb die Empfehlung es selbst zu kompilieren?

@Geier
Dass mein Vorhaben sehr sportlich ist, beginne ich auch langsam zu merken. :D
Die vielen Anleitungen im Netz habe ich auch größten Teils durch. Sie unterscheiden sich an einigen Punkten, klammern durch verschiedene Verfahren verschiedene andere Möglichkeiten aus und somit entsteht ein riesen Kuddelmuddel, welches ich versuche zu entwirren. Daher hatte ich eben gehofft, dass das jemand schon mal vor mir versucht hat. Ich kann ja nicht der einzige Irre sein, der so ne Idee hat.

Ich denke, ich werde vielleicht noch mal am Wochenende ein paar Versuche unternehmen. Aber ich glaube, dass das nicht so schnell erledigt ist.

Schönen Gruß
 
Oben