[[Vorlage(Getestet, )]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Paketquellen_freischalten:] }}} [[Inhaltsverzeichnis(2)]] Ubuntu kann - wie auch Debian - über ein Netzwerk installiert werden. Das ist z.B. hilfreich, wenn der Computer nicht über ein Wechsellaufwerk verfügt. Dazu muss der Computer über [wikipedia:Preboot_Execution_Environment:PXE] booten können. Das eigene Netzwerk muss auch für diese Installationsmethode vorbereitet sein. Es sollte jeweils ein System zur Verfügung stehen, auf dem folgende Dienste laufen: * Ein TFTP-Server, der das Bootimage für den Client bereithält (tftpd-hpa). * Ein DHCP-Server oder Proxy, der dem Client eine IP-Adresse und den Pfad zu seinem Bootimage zeigt. Optional aber sinnvoll ist es, die Distribution auf dem Server vorzuhalten, entweder als [:Lokale_Paketquellen:Spiegel-Server] für große Netzwerke oder als [:Lokale_Paketquellen:Proxy/Catcher] für kleine und Heimnetzwerke. Dies beschleunigt die Installation um einiges. Nun gibt es zwei Möglichkeiten: Entweder eine Kombination aus einen [#DHCP-Server-mit-TFTP-Server DHCP-Server und einem TFTP-Server], wobei der DHCP-Server der meisten Router nicht ausreichend ist. Oder (um den DHCP-Server des Routers mit den erforderlichen Informationen zu ergänzen) ein [#DHCP-Proxy-mit-TFTP-Server DHCP-Proxy mit TFTP-Server]. = DHCP-Proxy mit TFTP-Server = Weil viele Leute die Annehmlichkeiten eines DHCP-Servers auf ihrem Router wahrnehmen und diese meist nicht die gewünschten Anpassungen unterstützen, ist hier ein DHCP-Proxy vonnöten, der dem PXE-Clienten vermittelt, wo sich der PXE-Server befindet. Hierfür ist der DHCP-Server [:Dnsmasq:] das Mittel der Wahl, da er als DHCP-Proxy agieren kann und noch gleichzeitig einen TFTP-Server eingebaut hat. {{{#!vorlage Paketinstallation dnsmasq, universe [4] }}} Die Standardkonfiguration in '''/etc/dnsmasq.conf''' sollte als erstes gelöscht werden, da sich diese auf einen DHCP-Server bezieht. Dann müssen folgende Zeilen in die nun leere Datei eingefügt werden. {{{ dhcp-range=192.168.178.0,proxy # Durch das eingene Netzwerk ersetzen. dhcp-boot=pxelinux.0,192.168.178.2,192.168.178.0 # Durch die IP-Adresse des TFTP-Servers und des Netzwerks ersetzen. pxe-service=x86PC,"Netzwerk Boot",pxelinux enable-tftp tftp-root=/var/lib/tftpboot }}} Weiter geht es dann mit [#Bootimage-vorbereiten diesem Abschnitt] = DHCP-Server mit TFTP-Server = == TFTP-Server einrichten == Auf dem Server wird der TFTP-Server {{{#!vorlage Paketinstallation tftpd-hpa }}} installiert [1]. {{{#!vorlage Hinweis Man sollte das "d" am Ende von tftp'''d''' beachten - sonst installiert man nicht den Server, sondern den Client! }}} Der TFTP-Server kann beim Systemstart als Server gestartet werden. === Start als Alleinstehender Server === {{{#!vorlage Hinweis In Ubuntu 14.04 ist dies der Standard und somit kann dieser Schritt übersprungen werden. }}} Dazu ist zuerst die Datei '''/etc/default/tftpd-hpa''' zu bearbeiten (Editor mit Root-Rechten, [3]). {{{ #Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot" }}} Die Option `RUN_DAEMON="yes"` macht es zum einen erst möglich, dass der TFTP-Server manuell wie im folgenden Schritt gestartet werden kann und außerdem, dass der TFTP-Server beim Systemstart mitstartet. Im Terminal [2] sorgt {{{#!vorlage Befehl sudo /etc/init.d/tftpd-hpa start }}} dafür, dass der TFTP-Server gestartet wird. Ab 10.04 sieht es dank "event-based booting" etwas anders aus: {{{ TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -s" }}} bzw. Neustart mit: {{{#!vorlage Befehl sudo service tftpd-hpa restart }}} {{{#!vorlage Warnung Ein Neustart des tftpd-hpa reicht erfahrungsgemäß nicht aus! Erst nach einem kompletten Neustart von Ubuntu funktionieren get/put usw. Siehe auch [https://debianforum.de/forum/viewtopic.php?t=70492] {de}. }}} In '''/etc/inetd.conf''' sollte der folgende Eintrag noch mit `#` auskommentiert werden: {{{ tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot }}} == Vorbereiten des DHCP-Servers == Der DHCP-Server verteilt an den Client die IP-Adressen und die Information, von wo der Client das Bootimage abholen kann. Von den folgenden Beispielen kann einer genutzt werden, um diese Aufgabe zu übernehmen. === DHCPD3 === Da insbesondere die DNS-Fähigkeiten von dnsmasq für die Netzwerkinstallation nicht benötigt werden, ist der [:ISC-DHCPD:DHCP-Server des ISC][1] die erste Wahl. In der Config-Datei des DHCPD3 '''/etc/dhcp3/dhcpd.conf''' sind diese Parameter einzufügen, die Adresse des TFTP-Servers(`next-server`) und der Pfad zum Boot-Image(`filename`) (Editor mit Root-Rechten, [3]): {{{ next-server 192.168.1.2; filename "/pxelinux.0"; }}} Eine praktisch alles enthaltende Beispielkonfiguration ist [:ISC-DHCPD#Beispielkonfiguration:hier] zu finden. Im Normalfall müssen nur die Werte angepasst werden und die beiden Zeilen aus dem oberen grauen Kasten angefügt werden. === Dnsmasq === Dnsmasq ist ein kleiner DNS- und DHCP-Server. Die grundlegende Konfiguration wird in einem [:Dnsmasq:Extra-Artikel] beschrieben. Benötigt wird in diesem Fall nur die Konfiguration als DHCP-Server. Für die TFTP-Optionen sind diese Parameter in der '''/etc/dnsmasq.conf''' relevant: * Ist der dnsmasq auf der gleichen Maschine wie der TFTP-Server, ist dieser Parameter anzugeben: {{{ dhcp-boot=/pxelinux.0,0.0.0.0 }}} * Läuft der TFTP-Server auf einer anderen Maschine, sieht es so aus (Pfad zum Bootimage,TFTP-Hostname,IP-Adresse des TFTP-Servers): {{{ dhcp-boot=/pxelinux.0,pos,192.168.1.11 }}} {{{#!vorlage Hinweis In der Standardeinstellung vergibt Dnsmasq IPs im Bereich von 192.168.0.xxx bis 192.168.0.255. Der Rechner auf dem Dnsmasq läuft, muss ebenfalls eine IP in diesem Bereich haben, sonst kann der Client ihn nicht finden. Die IP des Rechners lässt sich über den [:Network-Manager:] bzw. über [:interfaces:] einstellen. }}} [[Bild(Wiki/Icons/pci.png, 48, right)]] = Bootimage vorbereiten = Im Verzeichnis '''/var/lib/tftpboot''' wird das Boot-Image abgelegt. Dazu ist das Archiv für das entsprechende Release herunterzuladen (Quellen sind im Artikel [:Downloads/Netzwerkinstallation:] enthalten). Anschließend wird das Archiv im Terminal [2] in das folgende Verzeichnis entpackt: {{{#!vorlage Befehl sudo tar xvzf netboot.tar.gz -C /var/lib/tftpboot/ ## Entpacken sudo chown -R nobody:nogroup /var/lib/tftpboot ## Besitzer festlegen }}} Nach jeder größeren Änderung muss der TFTP-Server neugestartet werden, da sonst die neue Konfiguration nicht erkannt wird! {{{#!vorlage Befehl sudo service dnsmasq restart # oder sudo service tftpd-hpa restart }}} = Vorbereitungen der Installation am Client = Nun ist im BIOS des Clients die Option ''"Network Boot"'' zu aktivieren. Die Bezeichnung dieser Option kann unterschiedlich sein. Es gibt jedoch auch noch eine weitere Möglichkeit. Viele neuere BIOS haben nicht nur eine spezielle Taste um ins BIOS zu gelangen [[Vorlage(Tasten, del)]] oder [[Vorlage(Tasten, F2)]] sondern noch eine weitere um das Bootmedium auszuwählen (bei Dell und Fujitsu [[Vorlage(Tasten, F12)]]). Bei dieser Methode wird die Wahl des Bootmediums, in diesem Fall die Netzwerkkarte, nur für diesen einen Bootvorgang gewählt, somit entfällt ein erneutes Einstellen der Festplatte als primäres Bootmedium nach der Installation. Wenn der Client danach neu bootet, passiert Folgendes: * Der Client fragt im Netzwerk nach einer IP-Adresse * Ein vorhandener DHCP-Server teilt diese dem Client mit, dazu die Adresse des TFTP-Servers * Der Client bootet vom TFTP-Server das Boot-Image, in diesem Falle das Installations-Image * Es kann jetzt wie mit einer CD-Installation begonnen werden. Wobei das nicht unbedingt so stimmt. Sollte die Installation wegen angeblich fehlender Pakete abbrechen, was dem Autor passiert ist, installiert man am besten erst das Grundsystem, indem man ''server'' am Boot-Prompt eingibt. Später kann man dann durch die Installation eines der Meta-Pakete ubuntu-desktop, kubuntu-desktop, etc. zu demselben Zustand kommen wie dem nach einer Standardinstallation, falls gewünscht. = PXE-Boot = Information, wie man mehrere Betriebssysteme laden kann und wie man einen Rechner unter Ubuntu über PXE bootet (ohne Installation), findet man im Artikel [:PXE-Boot:]. # tag: Installation, System, Netzwerk