Wenn man keine CD/DVDs mehr zur Hand hat, kann man sich im eigenen Netzwerk einen PXE Server installieren. Dies funktioniert ganz gut mit einen Raspberry PI oder natürlich in einer Virtuellen Umgebung. Für diesen Blog Eintrag habe ich einen Ubuntu 16.04.2 LTS Server in einer Virtuellen Umgebung installiert.
- https://www.virtualbox.org/wiki/Downloads
- http://releases.ubuntu.com/16.04/ubuntu-16.04.2-server-amd64.iso
Nach dem der Ubuntu 16.04.2 LTS Server fertig installiert wurde, installieren wir noch ein paar Grundlegende Pakete und patchen den Server.
1 2 |
sudo apt install vim ssh -y sudo apt update && apt upgrade -y |
Nach dem der Server up to date ist, konfiguriert man eine statischen IP-Adresse.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
sudo vim /etc/network/interfaces ## /etc/network/interfaces ## auto enp0s3 iface enp0s3 inet static address 192.168.178.10 netmask 255.255.255.0 gateway 192.168.178.1 dns-search htdom.local dns-nameservers 192.168.178.1 ############################# ## Damit die Netzwerk Konfiguration sauber funktioniert, starten wir den Server einmal durch. ## sudo shutdown -r now oder reboot |
Nach dem Reboot des Servers, können wir uns mit Putty oder Kitty auf dem Server verbinden.
- https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe
- https://www.fosshub.com/KiTTY.html/kitty_portable.exe
Oder wir nutzen einen Linux Client (Windows 10 1607) um uns per ssh zu verbinden.
ssh <UserName>@192.168.178.10
Um nun einen PXE Server im Netzwerk zur Verfügung zu stellen, benötigen wir noch folgende Pakete.
1 |
apt install dnsmasq syslinux syslinux-common -y |
Nach dem die Pakete installiert wurden, beginnen wir mit der konfiguration.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
## PXE Verzeichnis anlegen und DHCP/PXE Einstellungen konfigurieren. ## sudo mkdir /tftpboot ## PXE/DHCP Einstellungen konfigurieren ## mv /etc/dnsmasq.conf /etc/dnsmasq.conf.old sudo vim /etc/dnsmasq.conf ## /etc/dnsmasq.conf ## ## interface=enp0s3 listen-address=127.0.0.1 port=53 domain-needed bogus-priv resolv-file=/etc/resolv.dnsmasq dhcp-range=192.168.178.0,proxy dhcp-boot=pxelinux.0,192.168.178.10,192.168.178.0 pxe-service=x86PC,"Netzwerk Boot",pxelinux enable-tftp tftp-root=/tftpboot ######################## sudo vim /etc/resolv.dnsmasq ## /etc/resolv.dnsmasq ## ## nameserver 192.168.178.1 ######################### systemctl restart dnsmasq.service systemctl status dnsmasq.service |
Ubuntu Netboot Dateien herunterladen und extrahieren.
1 2 3 4 |
cd /tftpboot wget -c http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/installer-amd64/current/images/netboot/netboot.tar.gz tar xzvf netboot.tar.gz rm -rf netboot.tar.gz |
Ab hier ist der PXE Server schon einsatzfähig.
Um aber das Ubuntu 16.04.2 Desktop Image per PXE Boot laden zu können, müssen wir dieses noch herunterladen und in das Boot Verzeichnis integrieren/kopieren.
1 2 3 4 5 6 7 8 9 10 11 |
## Ubuntu 16.04 Desktop ISO Image herunterladen ## cd /tmp wget -c http://releases.ubuntu.com/16.04/ubuntu-16.04.2-desktop-amd64.iso ## Ubuntu 16.04 Desktop ISO Image mounten und Inhalt in das Boot Verzeichnis kopieren ## mkdir -p /tftpboot/ubuntu/amd64 mount -o loop /tmp/ubuntu-16.04.2-desktop-amd64.iso /mnt cp -a /mnt/. /tftpboot/ubuntu/amd64/ umount /mnt |
Damit das Ubuntu 16.04 Desktop ISO Image geladen werden kann, benötigen wir noch eine Freigabe auf dem Server, dies können wir per NFS realisieren.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
## NFS Server installieren ## apt install nfs-kernel-server -y sudo vim /etc/exports ## /etc/exports ## /tftpboot/ubuntu/amd64 192.168.178.0/24(ro,async,no_root_squash,no_subtree_check) ################## sudo exportfs -a systemctl restart nfs-kernel-server.service systemctl restart nfs-server.service ps -aux | grep nfs |
Die Konfigurationsdatei (default) für das Boot Menü, findet man im Verzeichnis /tftpboot/ubuntu-installer/amd64/pxelinux.cfg/
ls -la /tftpboot/ubuntu-installer/amd64/pxelinux.cfg/default
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
## Bootmenü anpassen um das Ubuntu 16.04 Desktop ISO Image zu booten ## mv /tftpboot/ubuntu-installer/amd64/pxelinux.cfg/default /tftpboot/ubuntu-installer/amd64/pxelinux.cfg/default.old sudo vim /tftpboot/ubuntu-installer/amd64/pxelinux.cfg/default ## default ## PATH /tftpboot/ubuntu-installer/amd64/boot-screens/ DEFAULT /tftpboot/ubuntu-installer/amd64/boot-screens/vesamenu.c32 PROMPT 0 TIMEOUT 150 ONTIMEOUT local NOESCAPE 1 ALLOWOPTIONS 1 MENU BACKGROUND /tftpboot/ubuntu-installer/amd64/boot-screens/bootlogo.png MENU RESOLUTION 800 600 MENU TITLE HTDOM PXE Server MENU COLOR TITLE 1;37 #ffffffff #00000000 std MENU WIDTH 98 MENU ROWS 11 MENU MARGIN 15 MENU COLOR BORDER * #00000000 #00000000 std LABEL Boot from local DISK localboot 0 TEXT HELP Boot from local DISK ENDTEXT LABEL --------------------------------------------------------------------- LABEL Ubuntu 16.04.2 Desktop Live kernel /tftpboot/ubuntu/amd64/casper/vmlinuz.efi append vga=normal netboot=nfs boot=casper nfsroot=192.168.178.10:/tftpboot/ubuntu/amd64/ ro initrd=/tftpboot/ubuntu/amd64/casper/initrd.lz locale=de_DE bootkbd=de console-setup/layoutcode=de TEXT HELP Boot Ubuntu 16.04.2 Desktop Live ENDTEXT ############# |
So nun wünsche ich euch viel Spaß mit euren eigenen PXE Server.
Gruß Helmut