PXE: Unterschied zwischen den Versionen

Aus Mediawiki Ferdinand Gruber
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
 
Betriebssystem booten über Netzwerk.
 
Betriebssystem booten über Netzwerk.
  
== Installation ==
+
=== Dienste bereitstellen ===
* TFTP Server installieren - mit YAST
+
Folgende Services müssen installiert sein und (manuell) gestartet werden, damit PXE funktionieren kann.
 +
* TFTP Server
 +
* NFS Server
 +
* DHCP Server
 +
* XINETD
 +
 
 +
== TFTP Server ==
 +
TFTP Server installieren - mit YAST
 +
 
 
:'''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol.
 
:'''T'''rivial '''F'''ile '''T'''ransfer '''P'''rotocol.
 
:Es wird ein Verzeichnis <code>/srv/tftpboot</code> angelegt.
 
:Es wird ein Verzeichnis <code>/srv/tftpboot</code> angelegt.
Zeile 15: Zeile 23:
 
* Bootimage kopieren
 
* Bootimage kopieren
 
  cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot
 
  cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot
 +
 +
== DHCP Server - für PXE ==
 
* DHCP Server für TFTP konfigurieren
 
* DHCP Server für TFTP konfigurieren
 
  /etc/dhcpd.conf
 
  /etc/dhcpd.conf
Zeile 21: Zeile 31:
 
   next-server 10.0.0.140;
 
   next-server 10.0.0.140;
 
   filename "pxelinux.0";
 
   filename "pxelinux.0";
* DHCP Server nur für PXE
 
 
Oft ist ein Router im LAN zugleich ein DHCP Server, den man aber nicht für PXE anpassen kann.  
 
Oft ist ein Router im LAN zugleich ein DHCP Server, den man aber nicht für PXE anpassen kann.  
Man kann einen zweiten DHCP Server konfigurieren, der nur auf PXE Anfragen reagiert:
+
Man kann jedoch einen zweiten DHCP Server konfigurieren, der nur auf PXE Anfragen reagiert:
 
  default-lease-time 600;
 
  default-lease-time 600;
 
  max-lease-time 7200;
 
  max-lease-time 7200;
Zeile 30: Zeile 39:
 
  allow booting;
 
  allow booting;
  
  option domain-name "gruber";
+
  option domain-name "mydomain";
 
  option domain-name-servers 195.3.96.67, 213.33.98.136;
 
  option domain-name-servers 195.3.96.67, 213.33.98.136;
 
  option routers 10.0.0.138;
 
  option routers 10.0.0.138;
Zeile 60: Zeile 69:
  
 
== Suse Linux installieren über PXE ==
 
== Suse Linux installieren über PXE ==
 +
 +
Die Installations CD (Net-Version) oder DVD downloaden und die ISO Datei als Loopback Device mounten - [[ISO Image]]. Dieses Verzeichnis, im folgenden Beispiel <tt>/mnt/suse_NET</tt>, wird als NFS Share freigegeben. PXE holt sich von dieser NFS Freigabe die Installationsdateien.
 +
 
* Folgende Dateien von der Suse DVD kopieren nach /tftpboot:
 
* Folgende Dateien von der Suse DVD kopieren nach /tftpboot:
 
  suse_isopath=/mnt/suse_NET
 
  suse_isopath=/mnt/suse_NET
Zeile 71: Zeile 83:
 
: Die zwei Doppelpunkte bedeuten, dass der '''rsyncd''' auf dem Server angesprochen werden soll.
 
: Die zwei Doppelpunkte bedeuten, dass der '''rsyncd''' auf dem Server angesprochen werden soll.
 
* Menü konfigurieren
 
* Menü konfigurieren
Einträge aus
+
Dateien übertragen
  $suse_isopath/boot/i386/loader/isolinux.cfg
+
  rsync -av $suse_isopath/boot/x86_64/loader/* /srv/tftpboot/pxelinux.cfg/default
übertragen nach
 
/srv/tftpboot/pxelinux.cfg/default
 
 
* Menü erstellen / ergänzen
 
* Menü erstellen / ergänzen
  pico /srv/tftpboot/message
+
  /srv/tftpboot/message
  
 
== Puppy Linux starten über PXE ==
 
== Puppy Linux starten über PXE ==
Zeile 117: Zeile 127:
 
* Startdateien kopieren
 
* Startdateien kopieren
  
Die Knoppix Startdateien per scp oder über einen USB Stick auf den TFTP Server kopieren, von dem aus gebootet werden soll. Diese Aktion in Knoppix als root durchführen.
+
Die Knoppix Startdateien per <tt>scp</tt> oder über einen USB Stick auf den TFTP Server kopieren, von dem aus gebootet werden soll. Diese Aktion in Knoppix als root durchführen.
  
 
Knoppix rasch beenden - wegen dem DHCP Server ...
 
Knoppix rasch beenden - wegen dem DHCP Server ...
Zeile 143: Zeile 153:
 
  mount -t nfs -o nolock 192.168.1.4:/mnt/suse32bit /mnt
 
  mount -t nfs -o nolock 192.168.1.4:/mnt/suse32bit /mnt
  
Möglicherweise funktioniert der NFS Server nicht, wenn über '''systemd''' gebootet wurde - im Bootmenü von Suse Linux F5 drücken und über '''sysvinit''' booten.
 
 
: Unter Ubuntu muss das Paket nfs-common nachinstalliert werden, damit der Zugriff auf ein NFS Share funktioniert.
 
: Unter Ubuntu muss das Paket nfs-common nachinstalliert werden, damit der Zugriff auf ein NFS Share funktioniert.
 
  sudo apt-get install nfs-common
 
  sudo apt-get install nfs-common

Aktuelle Version vom 7. November 2021, 21:51 Uhr

PXE

Preeboot Execution Environment

Betriebssystem booten über Netzwerk.

Dienste bereitstellen

Folgende Services müssen installiert sein und (manuell) gestartet werden, damit PXE funktionieren kann.

  • TFTP Server
  • NFS Server
  • DHCP Server
  • XINETD

TFTP Server

TFTP Server installieren - mit YAST

Trivial File Transfer Protocol.
Es wird ein Verzeichnis /srv/tftpboot angelegt.
  • Firewall

Es ist notwendig, den UDP Port 69 freizugeben - YAST Firewall.

  • Xinetd für TFTP konfigurieren

Da der TFTP Server über den Xinetd gestartet wird, muss Xinetd aktiviert werden - mit YAST

Xinetd gegebenenfalls beim Booten starten - YAST Runlevel Editor bzw. Services Editor
  • Bootimage kopieren
cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot

DHCP Server - für PXE

  • DHCP Server für TFTP konfigurieren
/etc/dhcpd.conf

Zwei Zeilen einfügen:

 # Beispiel:
 next-server 10.0.0.140;
 filename "pxelinux.0";

Oft ist ein Router im LAN zugleich ein DHCP Server, den man aber nicht für PXE anpassen kann. Man kann jedoch einen zweiten DHCP Server konfigurieren, der nur auf PXE Anfragen reagiert:

default-lease-time 600;
max-lease-time 7200;
ddns-update-style none; 
ddns-updates off;
allow booting;
option domain-name "mydomain";
option domain-name-servers 195.3.96.67, 213.33.98.136;
option routers 10.0.0.138;
# define rules to identify DHCP Requests from PXE and Etherboot clients.
class "pxe" {
  match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
}
class "etherboot" {
  match if substring (option vendor-class-identifier, 0, 9) = "Etherboot";
} 

subnet 10.0.0.0 netmask 255.255.255.0 { 
   option broadcast-address 10.0.0.255;
   pool {
        default-lease-time 180; # no long lease time required for booting
        max-lease-time 360;     # booted system does its own dhcp request
        server-name "suserver";
        next-server suserver.;  # in case your local DNS only handles  
                                # unqualified domains keep trailing '.'
        filename "pxelinux.0"; 
        allow members of "pxe";
        allow members of "etherboot"; # allow etherboot, too
        range 10.0.0.201 10.0.0.211;
    }
}

Siehe: http://en.opensuse.org/SDB:PXE_boot_installation

Suse Linux installieren über PXE

Die Installations CD (Net-Version) oder DVD downloaden und die ISO Datei als Loopback Device mounten - ISO Image. Dieses Verzeichnis, im folgenden Beispiel /mnt/suse_NET, wird als NFS Share freigegeben. PXE holt sich von dieser NFS Freigabe die Installationsdateien.

  • Folgende Dateien von der Suse DVD kopieren nach /tftpboot:
suse_isopath=/mnt/suse_NET
cp $suse_isopath/boot/x86_64/loader/initrd /srv/tftpboot/suse
cp $suse_isopath/boot/x86_64/loader/linux /srv/tftpboot/suse

... oder downloaden:

source="ftp5.gwdg.de::pub/opensuse/distribution/15.3/repo/oss/boot/i386/loader"
rsync -av $source/initrd $source/linux /srv/tftpboot/suse

Details: Siehe http://www.gtkdb.de/index_7_1822.html

Die zwei Doppelpunkte bedeuten, dass der rsyncd auf dem Server angesprochen werden soll.
  • Menü konfigurieren

Dateien übertragen

rsync -av $suse_isopath/boot/x86_64/loader/* /srv/tftpboot/pxelinux.cfg/default
  • Menü erstellen / ergänzen
/srv/tftpboot/message

Puppy Linux starten über PXE

Die Pfade in der folgenden Anleitung beziehen sich auf Suse Linux

  • TFTP Verzeichnis für Puppy anlegen
mkdir /srv/tftpboot/puppy
  • ISO Datei oder CD mounten:
# Beispiel für ISO Datei
mount -o loop lupu-525.iso /mnt
  • Dateien kopieren
cd /mnt
cp /initrd.gz /srv/tftpboot/puppy/
cp /vmlinuz /srv/tftpboot/puppy/
cp /lupu_525.sfs /srv/tftpboot/puppy/
  • Init Ramdisk entpacken
mkdir /srv/tftpboot/puppy/temp
cd /srv/tftpboot/puppy/temp
zcat /srv/tftpboot/puppy/initrd.gz | cpio -i -H newc -d
  • SFS Datei einfügen und neue initrd.gz erzeugen
mv /srv/tftpboot/puppy/lupu_525.sfs /srv/tftpboot/puppy/temp
find | cpio -o -H newc | gzip -4 > ../newinitrd.gz
  • Eintrag im PXE Menü für Puppy
# puppy
 label pup
 kernel puppy/vmlinuz
 append initrd=puppy/newinitrd.gz pmedia=atahd psubdir=puppy nosmp

Siehe:

http://sirlagz.net/?p=341

Knoppix starten über PXE

Knoppix bereitet von sich aus alles vor, damit man es über PXE booten kann. Dazu muss man lediglich den Knoppix Terminal Server starten.

  • Knoppix Terminalserver

Knoppix von CD/DVD starten. Im Startmenü den Eintrag Knoppix Terminalserver suchen und diesen starten und konfigurieren.

Knoppix startet einen DHCP Server, daher kann es während dieses Vorgangs zu Störungen im Netzwerk kommen. Also am besten diese Aktion dann durchführen, wenn Ruhe im Netzwerk herrscht ...

Nachdem Knoppix den Terminalserver eingerichtet hat, findet man in der Knoppix Session im Verzeichnis /tftpboot alle Dateien, die für den Start von Knoppix über PXE notwendig sind.

  • Startdateien kopieren

Die Knoppix Startdateien per scp oder über einen USB Stick auf den TFTP Server kopieren, von dem aus gebootet werden soll. Diese Aktion in Knoppix als root durchführen.

Knoppix rasch beenden - wegen dem DHCP Server ...

  • Boot Image

In /tftpboot am Server hat man nun den Kernel und die Initial Ramdisk, damit überhaupt der Bootvorgang von Knoppix über PXE beginnen kann. Vom Kernel wird dann das Knoppix Boot Image geladen.

Das legt man am besten auf einem NFS Share ab.

Die KNOPPIX DVD als ISO File auf den Server kopieren, dieses ISO File als Loopback Device mounten und über NFS freigeben.

Im PXE Startmenü /tftpboot/isolinux.cfg/default muss man einen Verweis auf das Bootimage angeben.

Infos

http://pxe.dev.aboveaverageurl.com/index.php/PXE_Booting/Knoppix

Knoppix_Terminal_Server

Troubleshooting

  • NFS Server testen

Mit einem anderen Computer, Notebook oder einer VM testen, ob die NFS Freigaben tatsächlich gemountet werden können

## Beispiel mit Knoppix
mount -t nfs -o nolock 192.168.1.4:/mnt/suse32bit /mnt
Unter Ubuntu muss das Paket nfs-common nachinstalliert werden, damit der Zugriff auf ein NFS Share funktioniert.
sudo apt-get install nfs-common

Info

Wikipedia

http://www.fedorawiki.de/index.php/PXE

http://www.debian-administration.org/articles/478


SuSE installieren über PXE

http://en.opensuse.org/SDB:PXE_boot_installation