Neue Antwort schreiben 
 
Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Anleitung für Bootserver-VM
mrshadowtux
Unregistered

 
Beitrag #1
Information Anleitung für Bootserver-VM
Hier nun endlich eine fertige Version der Anleitung, die auch funktioniert. Vielen Dank an winfreak für die Verbesserungen sowie den anschließenden Test!

Moin,
hier wie versprochen nun eine Anleitung, wie man eine VM für einen PXE-Bootserver einrichtet. Ziel soll es sein, häufig genutzte Betriebssysteminstaller, Livesysteme und Diagnosetools direkt über das Netzwerk starten zu können, ohne dafür bootbare CDs brennen zu müssen. In diesem Beispiel werden wir für die Installationen ein eigenes Netz nutzen, damit das ganze nicht mit anderen Netzen in die Quere kommt.

Dies ist nun schon Version 2.0 dieser Anleitung. Als ich gestern mit winfreak die Anleitung durchgearbeitet habe, sind uns einige grundlegende Fehler aufgefallen. Deshalb wird hier auch nicht mehr mit zwei Netzen gearbeitet, dies verursacht nur Probleme. Solltet ihr einen Router haben, der DHCP austeilt, so müsst ihr ihn entweder so konfigurieren, dass alle PXE-Anfragen an den Bootserver weitergeleitet werden, oder dieses einfach kurzzeitig abstellen, um zu booten.

Benötigte Software - Was brauchen wir im Vorfeld?
  • Einen Virtualisierer (ich verwende hier das kostenlose VirtualBox)
  • Ubuntu Server Edition (Gibt es hier: http://www.ubuntu.com/download/server - einfach die ISO runterladen) - natürlich gehen auch andere Distributionen, dann heißt eventuell das eine oder andere Paket anders

Was müssen wir später im Linux installieren?
  • dhcp3-server
  • tftpd-hpa
  • syslinux
  • samba (für die Windows-Installation)
  • nfs-kernel-server (für das Rootfs des GRML-Systems) [wenn wir kein GRML wollen, können wir das weglassen]

Was bedeuten die Variablen?
euer Subnetz = 192.168.1.254 <- das fettgedruckte, hier ist ein Beispiel.


Einrichten der VM
Als erstes richten wir uns eine VM in VirtualBox ein. Als Betriebssystem kann hier einfach Ubuntu gewählt werden. Bei der Frage nach der Größe des Festplattenimages sollte man die verschiedenen Systeme berücksichtigen, von denen man später Images hinterlegen will.
Nachdem die VM angelegt ist, wählen wir ändern und stellen unter Netzwerk den Typ von NAT auf Netzwerkbrücke um. Dieser Schritt ist sehr wichtig.
Nun installieren wir Ubuntu Server in der VM, dabei können wir wie gewohnt vorgehen. Wenn wir nach den zu verwendenden Serverdiensten gefragt werden, wählen wir nichts aus.


Konfiguration der Netzwerkkarten unter Ubuntu
Jetzt richten wir die IP-Adressen für die Netzwerkkarte ein.
Dazu editieren wir die Datei /etc/network/interfaces folgendermaßen:

auto eth0
iface eth0 inet static
address 192.168.euer Subnetz.Adresse der virtuellen Maschine (eine, die noch nicht vergeben ist)
netmask 255.255.255.0
network 192.168.euer Subnetz.0
gateway IP-Adresse des Routers

Nachdem die Config angepasst wurde, laden wir sie mit sudo /etc/init.d/networking restart neu.


Installation der benötigten Pakete im Ubuntu
Nun müssen die Pakete installiert werden:
sudo apt-get install dhcp3-server tftpd-hpa syslinux samba nfs-kernel-server


Einrichten von dhcp3-Server:
Jetzt editieren wir die Datei /etc/dhcp/dhcpd.conf folgendermaßen (der alte Inhalt kann komplett raus):

ddns-update-style none;
default-lease-time 315360000;
max-lease-time 315360000;
authoritative;
log-facility local7;
allow booting;
allow bootp;

next-server 192.168.euer Subnetz.IP-Adresse des Bootservers;
filename "/pxelinux.0";

subnet 192.168.euer Subnetz.0 netmask 255.255.255.0
{
range 192.168.euer Subnetz.2 192.168.euer Subnetz.254;
option routers IP eures Routers;
option domain-name-servers IP eures DNS-Servers, mehrere durch Komma getrennt - im Zweifelsfall die IP des Routers;
}


Kurze Erklärung: Mit next-server wird angegeben, auf welchem TFTP-Server die Clients ihr Boot-Image suchen sollen. Mit filename kann ein Name für dieses Image spezifiziert werden.
Anschließend dhcp3-server neu starten: sudo /etc/init.d/isc-dhcp-server restart


Einrichtung von tftpd-hpa
Zunächst bearbeiten wir die Datei /etc/inetd.conf und ändern dort die Zeile
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
in
tftp dgram udp4 wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Damit wird ein Bug behoben, der sich bei Ubuntu in das Paket eingeschlichen hat.

Anschließend editieren wir die Datei /etc/default/tftpd-hpa folgendermaßen:

RUN_DAEMON="yes"

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -s -m /etc/tftp_remap.conf"


Damit die Änderungen wirklich übernommen werden, müssen wir einen Systemneustart machen. Wir geben also sudo reboot ein, und warten bis unsere VM wieder hochgefahren ist.


Einrichten von pxelinux

sudo mkdir -p /var/lib/tftpboot/
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg/
sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/
sudo cp /usr/lib/syslinux/vesamenu.c32 /var/lib/tftpboot/


Nun schreiben wir uns eine rudimentäre Config. Die müssen wir erstmal anlegen.
sudo touch /var/lib/tftpboot/pxelinux.cfg/default

Nun schreiben wir folgendes in die gerade angelegte Datei:

DEFAULT vesamenu.c32
ALLOWOPTIONS 0
PROMPT 0
TIMEOUT 0

MENU TITLE Unser erster Bootserver


Wenn ein Hintergrundbild rein soll, ist das kein großes Problem. Wir brauchen nur ein Bild mit einer Auflösung von 640x480, idealerweise im JPG-Format. Dazu dann das Bild nach /var/lib/tftpboot/ kopieren und folgendes mit in die /var/lib/tftpboot/pxelinux.cfg/default hinzufügen:
MENU BACKGROUND dateiname.jpg

Die bootbaren Images sowie die Config von pxelinux kommen von nun an in /var/lib/tftpboot


Einbinden von Linux-Installern
Als erstes System zum Testen nehmen wir jetzt mal den Installer von Debian, der ist schön klein. Bei Linuxsystemen braucht man nur den Kernel und eine angepasste initrd mit dem Installer.

Erstmal runterladen und ein extra Verzeichnis für ihn machen:

cd /var/lib/tftpboot/
mkdir debiantest
cd debiantest
sudo wget http://ftp.nl.debian.org/debian/dists/sq...i386/linux
sudo wget http://ftp.nl.debian.org/debian/dists/sq.../initrd.gz
cd ..


Nun fügen wir für den Debian Installer einen Eintrag in unser Menü hinzu. Also erstmal die Datei /var/lib/tftpboot/pxelinux.cfg wieder in einem Editor öffnen und folgendes hinzufügen:

LABEL debiantest
MENU LABEL Debian Test
KERNEL debiantest/linux
APPEND initrd=debiantest/initrd.gz


Genauso funktioniert es auch bei Ubuntu, Fedora und co. Man braucht nur ein Kernel-Image und ein Initrd-Image.


Windows 7
(Die Schritte 1 bis 3 müssen nur beim ersten Mal ausgeführt werden. Schritt 4 bei jedem Windows-Netboot)
1. PE-Image
Für Windows 7 gibt es keinen fertigen Netzwerk-Installer zum herunterladen. Den kann man mit dem Windows Automated Installation Kit (WAIK) aber schnell selber bauen (Anleitung gibt es unter http://www.rrzn.uni-hannover.de/anl-waikpxe.html)
Wenn alle Schritte aus diesem Link befolgt wurden, haben wir ein Verzeichnis /var/lib/tftpboot/Boot/ welches den Windows-Netinstaller enthält. Die Datei /var/lib/tftpboot/pxelinux.cfg/default wird nun um folgendes erweitert:

LABEL winpe7
MENU LABEL Windows 7 (x86 und amd64)
KERNEL Boot/pxeboot.0


Außerdem müssen wir noch zwei Symlinks anlegen:

sudo ln -s /var/lib/tftpboot/Boot/bootmgr.exe /var/lib/tftpboot/bootmgr.exe
sudo ln -s /var/lib/tftpboot/Boot /var/lib/tftpboot/Boot/Boot


Zu guter Letzt müssen wir dem Server auch noch eine Rewrite-Rule verpassen, sodass das System hoch kommt. Bei Windows wir nämlich, wie ihr sicherlich wisst, ein Backslash statt wie bei Unixoiden-System üblich, ein Slash verwendet.
Hierzu legen wir die Datei /etc/tftp_remap.conf mit sudo touch /etc/tftp_remap.conf an. In diese Datei fügen wir nun folgendes ein:

rg \\ /

Wir speichern die Datei ab und starten den Server wie oben beschrieben neu.
Nun haben wir ein minimales Windows PE Livesystem. Das wird später verwendet, um den eigentlichen Installer zu starten.


2. Mounten der ISO
Nun brauchen wir eine ISO-Datei von der Windows 7-DVD. Ich gehe mal davon aus, dass sich diese unter /var/lib/tftpboot/windows7.iso befindet.
Diese müssen wir nun mounten. Dafür brauchen wir erstmal einen Mountpoint. In diesem Falle nenne ich ihn /mnt/win7dvd

sudo mkdir -p /mnt/win7dvd
sudo mount /var/lib/tftpboot/windows7.iso /mnt/win7dvd/ -o loop

Damit das auch bei jedem Boot geschieht, fügen wir folgende Zeile in die /etc/fstab ein:
/var/lib/tftpboot/windows7.iso /mnt/win7dvd iso9660 loop 0 0


3. Freigeben der ISO per Samba
Wir editieren die Datei /etc/samba.smb.conf und fügen folgende Zeilen hinzu:

[win7dvd]
comment = Windows Install
path = /mnt/win7dvd
guest ok = Yes
read only = Yes
browseable = Yes
available = Yes

Anschließend Samba neu starten: sudo restart smbd
Diese Freigabe können wir später in der Windows-Umgebung einfach als Netzlaufwerk mounten, um den Installer zu starten.


4. Nutzung des Windows-Installers
Wenn wir nun einen Client mit Windows 7 einrichten möchten, ist folgendes zu tun. Zunächst booten wir den Client per Netzwerk und wählen Windows 7 im Menü aus. Nach einiger Ladezeit sollte uns ein Minimalwindows mit CMD-Fenster begrüßen. Hier mounten wir jetzt die Windows-ISO und starten den Installer:

net use y: \\192.168.42.1\win7dvd
y:
setup.exe

Ab jetzt kann man Windows 7 wie gewohnt installieren.

ACHTUNG: Dieser Schritt wird weder in VMWare noch in VirtualBox funktionieren, da hier der LAN-Adapter nicht erkannt wird. Also einfach einen echten Client zum booten nehmen ;)

Als nächstes kommt noch etwas zum GRML-Livesystem dazu.
01.06.2012 22:17
Diese Nachricht in einer Antwort zitieren
fynn Offline
Posting Freak

Beiträge: 3.336
Registriert seit: Apr 2012
Beitrag #2
RE: Anleitung für Bootserver-VM
Mag ich :D

Super
01.06.2012 22:19
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
tk1908 Offline
Unixer

Beiträge: 7.143
Registriert seit: Apr 2009
Beitrag #3
RE: Anleitung für Bootserver-VM
Gefällt mir. (Aber ohne Like Button) :D

[Bild: Rz3JNLI.gif]
Meine Beiträge stehen unter der MIT-Lizenz:D

(09.04.2016 14:26)tk1908 schrieb:  externe HDD am Router? Klar ich tausch mein Auto gegen nen Tretroller mit Bremsklotz.
01.06.2012 22:20
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
fynn Offline
Posting Freak

Beiträge: 3.336
Registriert seit: Apr 2012
Beitrag #4
RE: Anleitung für Bootserver-VM
Achja klappt das auch irgendwie mit Windows 9x? :)
01.06.2012 22:21
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux
Unregistered

 
Beitrag #5
RE: Anleitung für Bootserver-VM
Mit Sicherheit, habe ich aber noch nie gemacht. Vermutlich reicht es (wie bei FreeDOS), einfach die ISO per Netz zu booten. Muss ich morgen mal testen.
01.06.2012 22:22
Diese Nachricht in einer Antwort zitieren
Kuxuntu Offline
Adm1n1strat0r

Beiträge: 4.244
Registriert seit: Aug 2011
Beitrag #6
RE: Anleitung für Bootserver-VM
Cool :-)

War aber nicht auch eine VM zum Runterladen geplan ?
01.06.2012 22:24
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux
Unregistered

 
Beitrag #7
RE: Anleitung für Bootserver-VM
Doch, ich werde eine VM zum herunterladen bauen morgen :)

Die wird allerdings nicht das Windows PE enthalten (will rechtliche Probleme ausschließen)
Ist aber nicht wirklich schwer, selbiges zu erstellen.
01.06.2012 22:26
Diese Nachricht in einer Antwort zitieren
fynn Offline
Posting Freak

Beiträge: 3.336
Registriert seit: Apr 2012
Beitrag #8
RE: Anleitung für Bootserver-VM
(01.06.2012 22:26)mrshadowtux schrieb:  Doch, ich werde eine VM zum herunterladen bauen morgen :)

Die wird allerdings nicht das Windows PE enthalten (will rechtliche Probleme ausschließen)
Ist aber nicht wirklich schwer, selbiges zu erstellen.

Kannst du nicht einfach die VM die du da jetzt hast auf deinen Server schieben? Also Win PE vorher raus nehmen :)
01.06.2012 22:32
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
mrshadowtux
Unregistered

 
Beitrag #9
RE: Anleitung für Bootserver-VM
Hier im Produktiveinsatz läuft es nicht in einer VM, sondern nativ auf dem Server. Kann dir aber gerne mal mein /var/lib/tftpboot mit Ausnahme von Windows PE tarren. Dann hast du auch alle Untermenüs und jede Menge Diagnosetools für Hardwarekram. Aber wenn dann mache ich das alles morgen, bin für heute zu müde.
01.06.2012 22:34
Diese Nachricht in einer Antwort zitieren
fynn Offline
Posting Freak

Beiträge: 3.336
Registriert seit: Apr 2012
Beitrag #10
RE: Anleitung für Bootserver-VM
Das es im Nativ Betrieb nicht in einer VM läuft ist irgendwie logisch :) Ich dache du hast die Anleitung in einer VM gemacht :)
01.06.2012 22:37
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste