Hallo zusammen, ich habe die letzte Woche damit verbracht, auf meiner DS einen TFTP-Server zu installieren und davon Windows 7 PE booten zu lassen. Hier nun meine Anleitung, mit der es bei mir geklappt hat.
Einige der Textpassagen habe ich von QTip kopiert, andere von ihm noch angepasst!
1. Die Installation
Zunächst einmal frischen wir unsere Paketverwaltung auf und installieren die folgenden Pakete:
Rich (BBCode):
ipkg update
ipkg install tftp-hpa
ipkg install dhcp
Nun löschen wir das nicht benötigte Paket xinetd…
Rich (BBCode):
ipkg --force-depends remove xinetd
2. Konfigurieren des TFTP
Jetzt kommt das, was der xinetd im Normalfall für den TFTP machen würde - den Dienst oder auch Service des TFTP's bereitstellen und die Anfragen auf Port 69 an den TFTP weiterzuleiten. Ich benutze dafür allerdings den "einfachen" inetd, da er auf der DS schon vorhanden ist. Bitte folgende Zeile in der
/etc/inetd.conf eintragen:
Rich (BBCode):
tftp dgram udp wait root /opt/sbin/in.tftpd /opt/sbin/in.tftpd -v -v -v -s /volume1/tftp -m /opt/etc/tftp_remap.conf
Der letzte Parameter hinter dem -s ist der gewünschte Pfad für die PXE-Konfiguration und Images die zum Booten der Clients gebraucht werden.
Solltet ihr diesen ändern (z.B. in /volume1/tftp) dann könnt ihr das bei der Installation vom TFTP erstellte Verzeichnis wieder entfernen.
Damit der INETD das auch benutzen kann, müssen wir ihn neustarten
Rich (BBCode):
/usr/syno/etc/rc.d/S03inetd.sh restart
Überprüfen kann man das mit
Dort sollte dann folgende Zeile auftauchen:
Den TFTP können wir schon mal grundlegend testen. Eine Testdatei im Verzeichnis tftpboot ablegen:
Rich (BBCode):
echo TFTP Test > /volume1/tftp/test.txt
Danach in Windows mit Start - Ausführen - cmd.exe (oder Windows-Taste + R) die Console öffnen und folgenden Befehl ausführen:
Wenn die Datei
/opt/etc/tftp_remap.conf fehlt bekommt man einen Fehler im nächsten Schritt zurück!
Falls also diese Datei fehlt, einfach eine neue Datei ohne Inhalt erstellen dort!
Rich (BBCode):
cd c:\
tftp <IP_DER_DISKSTATION> get test.txt
Das Ergebnis sollte nun so aussehen:
Rich (BBCode):
Übertragung erfolgreich: 11 Bytes in 1 Sekunden, 11 Bytes/s
HINWEIS: Sollte ein Fehler auftauchen, dass das tftp Programm nicht gefunden wurde, muss man dieses Programm nachinstallieren. Dazu gibt es im Internet z.B. bei google.de einige gute Hilfen zu finden.
3. Konfiguration des DHCP
Es fehlt noch die Konfiguration des DHCP Servers. Solltet ihr schon einen DHCP-Server z.B. von euerem Router benutzen, solltet ihr den IP-Bereich des DHCP-Servers in eurem Router auf einen etwas kleineren Bereich beschränken (z.B. 192.168.178.50 - 192.168.178.200). Somit hättet ihr ein paar IP's frei, die ihr dem DHCP-Server auf der DS zur Verfügung stellen könnt. Das sollte auch für üppig ausgefallene Netzwerke reichen
In die
/opt/etc/dhcpd.conf kommt nun folgendes:
Rich (BBCode):
ddns-update-style none;
ddns-updates off;
allow booting;
allow bootp;
# hier für gewöhnlich die Adresse des Routers eintragen.
option domain-name-servers 192.168.178.1;
# euer Subnetz und Maske
subnet 192.168.178.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option routers 192.168.178.1;
option domain-name "DOMAIN";
option perform-mask-discovery false;
option router-discovery false;
# IP-Bereich den ihr für den DHCP-Server nutzen wollt
range dynamic-bootp 192.168.178.10 192.168.178.20;
default-lease-time 21600;
max-lease-time 43200;
# IP der Diskstation
next-server 192.168.178.20;
# Dateiname des Programmes für das Bootmenü
filename "pxelinux.0";
}
HINWEIS: Bei filename (in der zweitletzten Zeile, kann man auch
Boot/pxeboot.0 eintragen, wenn man nur Windows PE später booten möchte! In dem Fall kann man dann auch Schritt 4 überspringen und macht direkt bei Schritt 5 weiter!
Im Anhang die fertige Datei, die ihr nur noch an euren IP-Bereich anpassen müsst. Die Endung .txt nach dem entpacken und bearbeiten nicht vergessen zu entfernen. Der DHCP-Server muss noch die neue Konfiguration einlesen, das wird mit
durchgefüht.
4. Einrichten des Bootmenüs
Das aktuellste .zip Paket von SYSLINUX bei
http://www.kernel.org/pub/linux/utils/boot/syslinux/ downloaden. Aus dem Paket benötigen wir die Datei
core/pxelinux.0 und
com32/menu/vesamenumenu.c32. Diese beiden kopieren wir nun nach
/volume1/tftp. Zusätzlich kopiert ihr die Datei
memdisk mit dem Ordner
memdisk (
also memdisk/memdisk) in euer TFTP-Verzeichnis. Im TFTP-Verzeichnis
/volume1/tftp erstellen wir nun ein Verzeichnis
pxelinux.cfg. In diesem Verzeichnis erstellen wir eine neue Datei
default mit folgendem Inhalt:
Rich (BBCode):
DEFAULT vesamenu.c32
PROMPT 0
NOESCAPE 0
TIMEOUT 300
MENU TITLE Bootmenue
LABEL local
MENU LABEL ^1 - Booten von lokaler Festplatte
LOCALBOOT 0
LABEL ^2 - Microsoft Windows 7 PE
KERNEL Boot/pxeboot.0
5. Windows PE für 32-Bit und 64-Bit erstellen.
Hierzu habe ich im Anhang einen Befehlsskript hinzugefügt, dass jegliche Arbeit für euch übernimmt.
Zunächst sollte erst einmal sichergestellt sein, dass das
Windows OEM Preinstallation Kit oder das
Windows Automated Installation Kit installiert ist.
Ist dieses der Fall, entfernt ihr die Endung .txt von
Windows PE – PXE.cmd.txt und klickt anschließend mit der rechten Maustaste auf die
Windows PE – PXE.cmd und wählt im Kontext
Als Administrator ausführen aus.
Nun könnt Ihr euch erst einmal entspannen oder einen Kaffee trinken gehen! Wenn die Zusammenstellung abgeschlossen ist, startet der Explorer in einem Ausgabeverzeichnis.
In diesem Verzeichnis findet Ihr einen Ordner
Boot, diesen Ordner kopiert Ihr samt Inhalt (Dateien und Unterverzeichnissen) in euer TFTP Verzeichnis auf der DS.
Weiter auf der DS…
Nun werden noch Link(s) hinzugefügt.
a) Wenn Ihr den SYSLINUX nutzt (
filename "pxelinux.0";), dann…
Rich (BBCode):
cd /volume1/tftp/
ln -s Boot/bootmgr.exe
cd Boot/
ln -s pxeboot.n12 pxeboot.0
b) Wenn Ihr nur Windows PE booten möchtet (
filename "Boot/pxeboot.0 ";), dann…
Rich (BBCode):
cd /volume1/tftp/Boot/
ln -s pxeboot.n12 pxeboot.0
6. Fertig
Wenn Ihr nun die Anleitung befolgt (inkl. SYSLINUX) habt, dann müsste euer TFTP-Verzeichnis wie folgt aussehen!
Rich (BBCode):
\pxelinux.0
\test.txt
\vesamenu.c32
\Boot\abortpxe.com
\Boot\BCD
\Boot\boot.sdi
\Boot\bootmgr.exe
\Boot\hdlscom1.com
\Boot\hdlscom1.n12
\Boot\hdlscom2.com
\Boot\hdlscom2.n12
\Boot\pxeboot.0
\Boot\pxeboot.com
\Boot\WdsConfig.inf
\Boot\wdsmgfw.efi
\Boot\wdsnbp.com
\Boot\winpex64.wim
\Boot\winpex86.wim
\Boot\da-DK\bootmgr.exe.mui
\Boot\da-DK\wdsmgfw.efi.mui
\Boot\zh-TW\bootmgr.exe.mui
\Boot\zh-TW\wdsmgfw.efi.mui
\Boot\cs-CZ\bootmgr.exe.mui
\Boot\cs-CZ\wdsmgfw.efi.mui
\Boot\ko-KR\bootmgr.exe.mui
\Boot\ko-KR\wdsmgfw.efi.mui
\Boot\sv-SE\bootmgr.exe.mui
\Boot\sv-SE\wdsmgfw.efi.mui
\Boot\el-GR\bootmgr.exe.mui
\Boot\el-GR\wdsmgfw.efi.mui
\Boot\hu-HU\bootmgr.exe.mui
\Boot\hu-HU\wdsmgfw.efi.mui
\Boot\pt-PT\bootmgr.exe.mui
\Boot\pt-PT\wdsmgfw.efi.mui
\Boot\zh-CN\bootmgr.exe.mui
\Boot\zh-CN\wdsmgfw.efi.mui
\Boot\ru-RU\bootmgr.exe.mui
\Boot\ru-RU\wdsmgfw.efi.mui
\Boot\fr-FR\bootmgr.exe.mui
\Boot\fr-FR\wdsmgfw.efi.mui
\Boot\zh-HK\bootmgr.exe.mui
\Boot\zh-HK\wdsmgfw.efi.mui
\Boot\fi-FI\bootmgr.exe.mui
\Boot\fi-FI\wdsmgfw.efi.mui
\Boot\it-IT\bootmgr.exe.mui
\Boot\it-IT\wdsmgfw.efi.mui
\Boot\en-US\bootmgr.exe.mui
\Boot\en-US\wdsmgfw.efi.mui
\Boot\nl-NL\bootmgr.exe.mui
\Boot\nl-NL\wdsmgfw.efi.mui
\Boot\tr-TR\bootmgr.exe.mui
\Boot\tr-TR\wdsmgfw.efi.mui
\Boot\nb-NO\bootmgr.exe.mui
\Boot\nb-NO\wdsmgfw.efi.mui
\Boot\pt-BR\bootmgr.exe.mui
\Boot\pt-BR\wdsmgfw.efi.mui
\Boot\es-ES\bootmgr.exe.mui
\Boot\es-ES\wdsmgfw.efi.mui
\Boot\ja-JP\bootmgr.exe.mui
\Boot\ja-JP\wdsmgfw.efi.mui
\Boot\de-DE\bootmgr.exe.mui
\Boot\de-DE\wdsmgfw.efi.mui
\Boot\pl-PL\bootmgr.exe.mui
\Boot\pl-PL\wdsmgfw.efi.mui
\memdisk\memdisk
\pxelinux.cfg\default
7. Zusatz
Wie Ihr sicherlich bemerkt habt, findet man zusätzlich noch eine
startnet.txt im Anhang, wenn Ihr diese Datei im selben Verzeichnis ablegt wie den Befehlsskript,
vor der Ausführung, wird diese in jedes PE-Image kopiert und beim booten von diesem ausgeführt. So könnt Ihr einige Befehle beim Booten schon automatisieren!
HINWEIS: Die erste Zeile (wpeinit) ist Standard und sollt mind. darin stehen.
Das reicht erstmal um die Funktion vom TFTP und DHCP zu testen. Rechner neustarten und Netboot auswählen (vom Bios abhängig), Nun sollte euer Rechner per DHCP-Anfrage eine IP zugewiesen bekommen. Kurz darauf müsste das PXE-Bootmenü erscheinen.
Bei Fragen, kurze PN!
Und nun viel Spaß beim ausprobieren!
Anlagen:
Anhang anzeigen 4817
Anhang anzeigen 4818
Anhang anzeigen 4819