Booten über NIC im Netzwerk (PXE)
Dienste im Netzwerk zum Booten über NIC im Netzwerk einrichten (Windows 2003 Server + Windows XP Clients)
Wenn ein Client versucht zu booten, dann soll geprüft werden, ob er per PXE booten soll
Hallo,
Dienste im Netzwerk zum Booten über NIC im Netzwerk einrichten (Windows 2003 Server + Windows XP Clients)
wenn ein Client versucht zu booten, dann soll geprüft werden, ob er per PXE booten soll:
An den Clients im Netzwerk ist im BIOS folgende Bootreihenfolge eingestellt:
1) Netzwerkkarte (PXE)
2) Festplatte
Wie setze ich folgendes Szenario um (?)
Der Client ist eindeutig an seiner MAC-Adresse identifizierbar.
Auf dem Server soll ein PXE-Dienst installiert sein.
Auf den Broadcast des Clients soll der PXE-Dienst folgendes prüfen:
- Ist die MAC des Clients bekannt?
-wenn nein, dann dem Client NICHT antworten (nichts tun)
-wenn ja, dann ein Flag prüfen (Flag pflegt/setzt Admin in *.TXT-Datei)
-wenn Flag = 0 dann dann dem Client NICHT antworten (nichts tun)
-wenn Flag = 1 dann für die MAC des Clients zugeordnetes Diskettenimage (*.img) an Client schicken und Flag = 0 setzen
Woher bekomme ich eine PXE-Software für den Server?
Wie setze ich das um?
Hat das schon jemand gemacht?
Gruss Carsten
Wenn ein Client versucht zu booten, dann soll geprüft werden, ob er per PXE booten soll
Hallo,
Dienste im Netzwerk zum Booten über NIC im Netzwerk einrichten (Windows 2003 Server + Windows XP Clients)
wenn ein Client versucht zu booten, dann soll geprüft werden, ob er per PXE booten soll:
An den Clients im Netzwerk ist im BIOS folgende Bootreihenfolge eingestellt:
1) Netzwerkkarte (PXE)
2) Festplatte
Wie setze ich folgendes Szenario um (?)
Der Client ist eindeutig an seiner MAC-Adresse identifizierbar.
Auf dem Server soll ein PXE-Dienst installiert sein.
Auf den Broadcast des Clients soll der PXE-Dienst folgendes prüfen:
- Ist die MAC des Clients bekannt?
-wenn nein, dann dem Client NICHT antworten (nichts tun)
-wenn ja, dann ein Flag prüfen (Flag pflegt/setzt Admin in *.TXT-Datei)
-wenn Flag = 0 dann dann dem Client NICHT antworten (nichts tun)
-wenn Flag = 1 dann für die MAC des Clients zugeordnetes Diskettenimage (*.img) an Client schicken und Flag = 0 setzen
Woher bekomme ich eine PXE-Software für den Server?
Wie setze ich das um?
Hat das schon jemand gemacht?
Gruss Carsten
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 29415
Url: https://administrator.de/forum/booten-ueber-nic-im-netzwerk-pxe-29415.html
Ausgedruckt am: 23.12.2024 um 16:12 Uhr
32 Kommentare
Neuester Kommentar
Grundlegendes zu PXE boot:
Die initiative geht vom Client aus. Der Server stellt nur etwas zur Verfuegung, was der Client anfordert. Daher sind einige Punkte auf deiner Liste nicht so einfach zu erledigen.
Ich beschreib das PXE mal, vielleicht bekommst du dann ein Gefuehl dafuer wie PXE funktioniert. Zum Start der Diskussion sozusagen.
PXE laeuft ab, bevor der Computer ein OS geladen hat und daher ist das sehr rudimentaer. Zuerst fragt es beim DHCP Server nach den Netzwerkparametern. Im DHCP Protokoll, kann der Server dann zu der IP noch einen Filenamen und einen Servernamen dem PXE uebergeben. Daraufhin holt sich das PXE via TFTP vom angegebenen Server die Datei und führt sie aus. Da diese immernoch ohne laufendem OS ausgefuehrt wird, hast du hier auch nicht viel Moeglichkeiten.
Du findest sowas hier (nicht am Linux im Namen erschrecken!):
http://syslinux.zytor.com/
Windows hat aauch sowas, im RIS Paket. Das ist aber speziell fuer die Remote Installation gedacht und nicht sehr felxibel.
Hilft das erstmal weiter?
Die initiative geht vom Client aus. Der Server stellt nur etwas zur Verfuegung, was der Client anfordert. Daher sind einige Punkte auf deiner Liste nicht so einfach zu erledigen.
Ich beschreib das PXE mal, vielleicht bekommst du dann ein Gefuehl dafuer wie PXE funktioniert. Zum Start der Diskussion sozusagen.
PXE laeuft ab, bevor der Computer ein OS geladen hat und daher ist das sehr rudimentaer. Zuerst fragt es beim DHCP Server nach den Netzwerkparametern. Im DHCP Protokoll, kann der Server dann zu der IP noch einen Filenamen und einen Servernamen dem PXE uebergeben. Daraufhin holt sich das PXE via TFTP vom angegebenen Server die Datei und führt sie aus. Da diese immernoch ohne laufendem OS ausgefuehrt wird, hast du hier auch nicht viel Moeglichkeiten.
Du findest sowas hier (nicht am Linux im Namen erschrecken!):
http://syslinux.zytor.com/
Windows hat aauch sowas, im RIS Paket. Das ist aber speziell fuer die Remote Installation gedacht und nicht sehr felxibel.
Hilft das erstmal weiter?
Super!
Alles Korrekt!
Also, die Bootloader Datei findest du bei Syslinux:
http://syslinux.zytor.com/
Oder einfach diese Datei:
http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.11.zip
Aus diesem Zip nimmst du dir die zwei Dateien: memdisk und pxelinux.0 und legst die in dein c:\Inetpub\tftprootIn
pxelinux.0 ist dein Bootloader
memdisk ist die Ramdisk in die eine Diskette geladen wird
Dann brauchst du noch ein Verzeichnis pxelinux.cfg in c:\Inetpub\tftprootIn und in dieses Verzeichnis legst du eine Datei namens default mit folgendem Inhalt.
Dein Diskettenimage test.img musst du auch in das tftp Verzeichnis legen.
Hast du den DHCP schon konfiguriert?
Wenn ja, kannst du den Rechner jetzt mit PXE booten und es erscheint eine Eingabeaufforderung. Da tippst du test rein und schon wird das test.img gebootet.
Alles Korrekt!
Also, die Bootloader Datei findest du bei Syslinux:
http://syslinux.zytor.com/
Oder einfach diese Datei:
http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-3.11.zip
Aus diesem Zip nimmst du dir die zwei Dateien: memdisk und pxelinux.0 und legst die in dein c:\Inetpub\tftprootIn
pxelinux.0 ist dein Bootloader
memdisk ist die Ramdisk in die eine Diskette geladen wird
Dann brauchst du noch ein Verzeichnis pxelinux.cfg in c:\Inetpub\tftprootIn und in dieses Verzeichnis legst du eine Datei namens default mit folgendem Inhalt.
label test
kernel memdisk
append initrd=test.img
Dein Diskettenimage test.img musst du auch in das tftp Verzeichnis legen.
Hast du den DHCP schon konfiguriert?
Wenn ja, kannst du den Rechner jetzt mit PXE booten und es erscheint eine Eingabeaufforderung. Da tippst du test rein und schon wird das test.img gebootet.
Am TFTP kann man nichts einstellen. Dort werden nur die Dateien abgelegt und vom Client werden sie dort abgeholt.
Im DHCP musst du noch einstellen, wie die Datei heisst und welche IP Adresse der TFTP Server hat.
Im Linux ISC-DHCP heissen die Optionen:
Beim Microsoft DHCP Server:
Den TFTPD32 den du hast kenne ich zwar nicht, aber ich habe gesehen es gibt im DHCP Menu einen Eintrag Boot File, dort solltest du pxelinux.0 eintragen. Dann sollte es funktionieren. Als Server nimmt der vermutlich immer den eigenen. Die anderen Angaben zu Ip pool starting address, size of pool und Mask musst du natürlich auch gemaess deinem Netzwerk konfigurieren.
Zum Testen kannst du die Optionen erstmal als globale Optionen eintragen. Spaeter kannst du die dann zu den Hosts nehmen.
Das wars!
Tuts?
Im DHCP musst du noch einstellen, wie die Datei heisst und welche IP Adresse der TFTP Server hat.
Im Linux ISC-DHCP heissen die Optionen:
filename "pxelinux.0";
next-server "IP vom tftp Server";
Beim Microsoft DHCP Server:
066 Boot Server Hostname
067 Boot Filename
Den TFTPD32 den du hast kenne ich zwar nicht, aber ich habe gesehen es gibt im DHCP Menu einen Eintrag Boot File, dort solltest du pxelinux.0 eintragen. Dann sollte es funktionieren. Als Server nimmt der vermutlich immer den eigenen. Die anderen Angaben zu Ip pool starting address, size of pool und Mask musst du natürlich auch gemaess deinem Netzwerk konfigurieren.
Zum Testen kannst du die Optionen erstmal als globale Optionen eintragen. Spaeter kannst du die dann zu den Hosts nehmen.
Das wars!
Tuts?
Nicht ganz richtig, aber groesstenteils.
zu 3.
Das Diskettenimage wird anhand der Konfiguration vom pxelinux.0 ausgewaehlt. Allerdings sucht das pxelinux.0 die Konfigurationsdatei nach folgendem Algorithmus, immer Unterordner pxelinux.cfg. Als erstes die MAC Adresse mit "-", dann die IP Hexadezimal, dann jeweils ein Zeichen dieser Hexadezimalen IP weniger, und wenn das alles nichts zurueckbringt, dann die Datei default.
Es wird nicht nach den Diskettenimage gesucht, sondern nach der Konfigurationsdatei!
Und wie schon gesagt, der Server sendet nichts, der Client fordert es an.
Broadcasts, wie DHCP sind immer innerhalb eines Subnetzes. Switches geben Broadcasts weiter, Router normalerweise nicht. Fuer DHCP ueber Subnetzgrenzen hinweg, gibt es DHCP-Relays. Damit kann man mit einem zentralen DHCP Server mehrere Subnetze bedienen.
zu 3.
Das Diskettenimage wird anhand der Konfiguration vom pxelinux.0 ausgewaehlt. Allerdings sucht das pxelinux.0 die Konfigurationsdatei nach folgendem Algorithmus, immer Unterordner pxelinux.cfg. Als erstes die MAC Adresse mit "-", dann die IP Hexadezimal, dann jeweils ein Zeichen dieser Hexadezimalen IP weniger, und wenn das alles nichts zurueckbringt, dann die Datei default.
Es wird nicht nach den Diskettenimage gesucht, sondern nach der Konfigurationsdatei!
Und wie schon gesagt, der Server sendet nichts, der Client fordert es an.
Broadcasts, wie DHCP sind immer innerhalb eines Subnetzes. Switches geben Broadcasts weiter, Router normalerweise nicht. Fuer DHCP ueber Subnetzgrenzen hinweg, gibt es DHCP-Relays. Damit kann man mit einem zentralen DHCP Server mehrere Subnetze bedienen.
Eigenlich gibst du nicht dem Namen vom Diskettenimage an, sondern den vom label in der Konfigurationsdatei.
Genauso musst du das eintragen in die pxelinux-Konfigurationsdatei (test.img natuerlich anpassen). Bei der Eingabeaufforderung muss du dann test eintippen. Das laedt dir zuerst das memdisk und das dann das Diskettenimage. Dein Computer weiss nicht was es direkt mit einem Diskettenimage anfangen soll. Das Diskettenimage laeuft nur in der Umgebung von memdisk.
label test
kernel memdisk
append initrd=test.img
Genauso musst du das eintragen in die pxelinux-Konfigurationsdatei (test.img natuerlich anpassen). Bei der Eingabeaufforderung muss du dann test eintippen. Das laedt dir zuerst das memdisk und das dann das Diskettenimage. Dein Computer weiss nicht was es direkt mit einem Diskettenimage anfangen soll. Das Diskettenimage laeuft nur in der Umgebung von memdisk.
Genau, alles was ich bisher erzaehlt habe steht im pxelinux.doc und im syslinux.doc
Auszug syslinux.doc
Nicht dass ich dir nicht gern helfen wuerde, aber noch schoener waere es, zu schauen, ob die Fragen schon im Manual beantwortet werden.
Auszug syslinux.doc
DEFAULT kernel options...
Sets the default command line. If SYSLINUX boots automatically,
it will act just as if the entries after DEFAULT had been typed
in at the "boot:" prompt.
Nicht dass ich dir nicht gern helfen wuerde, aber noch schoener waere es, zu schauen, ob die Fragen schon im Manual beantwortet werden.
Es hat sich so angehoert als wuerdet ihr mit dem Unattended erst anfangen.
Vielleicht noch ein Tipp zum Schluss, aber darauf bist du sicher auch schon gekommen.
Da die PXE Konfiguration ueber Dateien im TFTP geht, kann man eine Webanwendung schrieben, mit der man diese Dateien gezielt aendern kann.
Apropos, ich braeuchte mal wieder eine neue Brille 8-)
Vielleicht noch ein Tipp zum Schluss, aber darauf bist du sicher auch schon gekommen.
Da die PXE Konfiguration ueber Dateien im TFTP geht, kann man eine Webanwendung schrieben, mit der man diese Dateien gezielt aendern kann.
Apropos, ich braeuchte mal wieder eine neue Brille 8-)
hallo,
laut diesem kleinen step by step bin ich nun soweit das diverse images vom server geladen werden .... nur leider sind es immer die falschen da man ja leider initrd images brauch
ich versuche nun hier freenas übers lan zu starten leider klappt dies nicht ganz so wie ich das will da ich die images net zum laufen bekomme (boot error oder er bleibt nach dem laden einfach stehen ....
ich habe hier eine freenas.img und eine freenas.iso
welche dateien aus der iso brauch ich um zu booten nehme ich img direkt in die append zeile von der pxelinux/default bekomme ich nen boot error
ich bein irgendwie bootet ja die iso auch (wenn auf cd gebrannt) ... die überede ich nun pxelinux(syslinux) dazu diese auch übers lan zu booten ?
leider hab ich keine andere linux kiste hier um mir daraus ein initrd image zu basteln zumal ich der meinung bin das es auch so gehen mueste ^^
laut diesem kleinen step by step bin ich nun soweit das diverse images vom server geladen werden .... nur leider sind es immer die falschen da man ja leider initrd images brauch
ich versuche nun hier freenas übers lan zu starten leider klappt dies nicht ganz so wie ich das will da ich die images net zum laufen bekomme (boot error oder er bleibt nach dem laden einfach stehen ....
ich habe hier eine freenas.img und eine freenas.iso
welche dateien aus der iso brauch ich um zu booten nehme ich img direkt in die append zeile von der pxelinux/default bekomme ich nen boot error
ich bein irgendwie bootet ja die iso auch (wenn auf cd gebrannt) ... die überede ich nun pxelinux(syslinux) dazu diese auch übers lan zu booten ?
leider hab ich keine andere linux kiste hier um mir daraus ein initrd image zu basteln zumal ich der meinung bin das es auch so gehen mueste ^^
ISO Images kann man nicht via PXE booten.
http://syslinux.zytor.com/archives/2003-November/002688.html
http://syslinux.zytor.com/archives/2003-November/002688.html
hallo und danke fürs replay
das mit den isos ist scho klar aber ich kann die iso doch öffnen und die datein dan für mich gebrauchen und da ist mein problem welche dateien und in welchen kontext müssen die stehen
aber mal davon abgesehen gibt es bei freenas ja auch eine *.img datei welche ich und ich hoffe mal das dies kein iso image ist da dies seperat angeboten wird , über pxe booten könnte
aber laut pxe howtos im netz sollte die /pxelinux.cfg/default ja so aussehen
label test
memdisk
append initrd=freenas.img
leider ist aber freenas zu groß für memdisk da es ja nun auch wieder keine floppyabbild ist
wenn ich das ding dan so starte bekomme ich natürlich nen boot error
nun stellt sich mir die frage wie ich das ding in die /pxelinux.cfg/default eintrage
da ich habe denke das diese freenas.img sowiso nicht bootet (warum auch immer) hab ich mir halt gedacht nehm ich halt die dateien aus der iso... nur welche und wie trage ich diese in die default.cfg von pxe ein da ja die cd ansich ja auch bootet sollte das mit den dateien ja auch gehen
i.e so (dateien von dem iso ins tftpboot verz. kopiert)
label test
/boot/kernel/kernel.gz
append ????
oder so ähnlioch
das mueste ja funktionieren
bye
das mit den isos ist scho klar aber ich kann die iso doch öffnen und die datein dan für mich gebrauchen und da ist mein problem welche dateien und in welchen kontext müssen die stehen
aber mal davon abgesehen gibt es bei freenas ja auch eine *.img datei welche ich und ich hoffe mal das dies kein iso image ist da dies seperat angeboten wird , über pxe booten könnte
aber laut pxe howtos im netz sollte die /pxelinux.cfg/default ja so aussehen
label test
memdisk
append initrd=freenas.img
leider ist aber freenas zu groß für memdisk da es ja nun auch wieder keine floppyabbild ist
wenn ich das ding dan so starte bekomme ich natürlich nen boot error
nun stellt sich mir die frage wie ich das ding in die /pxelinux.cfg/default eintrage
da ich habe denke das diese freenas.img sowiso nicht bootet (warum auch immer) hab ich mir halt gedacht nehm ich halt die dateien aus der iso... nur welche und wie trage ich diese in die default.cfg von pxe ein da ja die cd ansich ja auch bootet sollte das mit den dateien ja auch gehen
i.e so (dateien von dem iso ins tftpboot verz. kopiert)
label test
/boot/kernel/kernel.gz
append ????
oder so ähnlioch
das mueste ja funktionieren
bye
ui das geht ja schnell hier thx
aber leider hab ich das schon durch und ich bekomme nen boot error
freenas.img wird geladen
freenas.img wird entpackt
Loading Bootsector.... booting....
Boot error
und damit kann ich nix anfangen der bootsector sollte doch im img sein ? oder versteh ich da was falsch ?
freenas.img ist auch kein reines floppy image leider weis ich nicht was das für ein image ist
www.freenas.org evtl kannst du es ja mal testen ?
vielen dank
aber leider hab ich das schon durch und ich bekomme nen boot error
freenas.img wird geladen
freenas.img wird entpackt
Loading Bootsector.... booting....
Boot error
und damit kann ich nix anfangen der bootsector sollte doch im img sein ? oder versteh ich da was falsch ?
freenas.img ist auch kein reines floppy image leider weis ich nicht was das für ein image ist
www.freenas.org evtl kannst du es ja mal testen ?
vielen dank
Hallo,
ich hab es jetzt schon mal geschafft mit PXE ein grml linux über's Netz zu laden und auch ein mit ntfsclone gesichertes WinXP zurückzuspielen. Nun werde ich das ganze mal mit Linux probieren.
Dazu eine Frage:
Ist es möglich das wenn ich mich morgens an den Rechner setze und starte, GRUB (oder das gestartete grml linux) mir ein Menue anbietet wo ich auswählen kann zwischen Win2k / WinXP / Linux / Solaris ? Vorher gemachte Sicherungen werden dann automatisch übers Netz ( vielleicht per dd ) draufgebügelt und nach'm Neustart läuft dann die Kiste... so ungefähr stelle ich mir das vor.
Wie läuft das dann mit dem MBR der Platte? Müsste ich den nachträglich wieder anpassen?
Das Windows hab ich auf die Platte mit der gleichen Partitionieren wie vor der Sicherung zurück gespielt, das funktionierte. Das restore auf eine vollige nackte Platte schlug fehl ...
Vielleicht hat jemand hier schon mal etwas ähnliches gemacht und kann mir da ein paar Tipps geben?
Thx 4 help ;)
ich hab es jetzt schon mal geschafft mit PXE ein grml linux über's Netz zu laden und auch ein mit ntfsclone gesichertes WinXP zurückzuspielen. Nun werde ich das ganze mal mit Linux probieren.
Dazu eine Frage:
Ist es möglich das wenn ich mich morgens an den Rechner setze und starte, GRUB (oder das gestartete grml linux) mir ein Menue anbietet wo ich auswählen kann zwischen Win2k / WinXP / Linux / Solaris ? Vorher gemachte Sicherungen werden dann automatisch übers Netz ( vielleicht per dd ) draufgebügelt und nach'm Neustart läuft dann die Kiste... so ungefähr stelle ich mir das vor.
Wie läuft das dann mit dem MBR der Platte? Müsste ich den nachträglich wieder anpassen?
Das Windows hab ich auf die Platte mit der gleichen Partitionieren wie vor der Sicherung zurück gespielt, das funktionierte. Das restore auf eine vollige nackte Platte schlug fehl ...
Vielleicht hat jemand hier schon mal etwas ähnliches gemacht und kann mir da ein paar Tipps geben?
Thx 4 help ;)