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:
Code:
ipkg update
ipkg install tftp-hpa
ipkg install dhcp
Nun löschen wir das nicht benötigte Paket xinetd…
Code:
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:
Code:
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
Code:
/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:
Code:
echo TFTP Test > /opt/tftp/test.txt
Danach in Windows mit Start - Ausführen - cmd.exe (oder Windows-Taste + R) die Console öffnen und folgenden Befehl ausführen:
Code:
cd c:\
tftp <IP_DER_DISKSTATION> get test.txt
Das Ergebnis sollte nun so aussehen:
Code:
Ü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:
Code:
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
Code:
/opt/etc/init.d/S56dhcp
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:
Code:
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…
Code:
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…
Code:
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!
Code:
\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:
Windows PE - PXE.cmd.txt
startnet.txt
dhcpd.conf.txt
Lesezeichen