Browse Source

Überarbeite und ergänzte PXE Netzinstallation APU

efbeff 2 months ago
parent
commit
9c79ec8381

+ 129 - 23
Community/Bildung/FF@home/14 APU4D4 aufbauen und mit Debian in Betrieb nehmen.page

@@ -35,6 +35,13 @@ APU ausgeschaltet: 1,5W
 
 Nur Netzteil: 0,0W
 
+# APU Installation auf dem PC vorbereiten
+
+Erforderlich ist ein Nullmodemkabel zur Verbindung APU <--> PC  
+Ein Terminalprogramm (z.B., minicom)  
+Eventuell bei Installation PXE übers Netz ein tftpserver (z.B., dnsmasq)  
+
+
 # APU Installation mit USB-Stick 
 
 Bereithalten: einen USB-Stick mit dem aktuellen Debian Image, Stick als bootbar definiert mit:  
@@ -65,7 +72,8 @@ muss das eigene Netzwerk eingerichtet werden mit folgenden Diensten:
 - Netzwerkkabel
 
 ## Verwendete Adressen
-- 192.168.178.0 Netzwerk
+- Diese sind an die eigenen anzupassen
+- 192.168.178.0/24 Netzwerk
 - 192.168.178.254 Fritz!Box Router, DHCPserver, Zugang Internet
 - Die folgenden Adressen ausserhalb des Bereiches F!B DHCP-server
 - 192.168.178.51 Statische Adresse für die APU (später)
@@ -80,21 +88,20 @@ muss das eigene Netzwerk eingerichtet werden mit folgenden Diensten:
     Datei und ersetzen sie durch folgenden Inhalt:
 
 
- dhcp-range=192.168.178.0,proxy                    # Unser Netzwerk.  
- dhcp-boot=pxelinux.0,192.168.178.52,192.168.178.0 # IP TFTP-Server und Netzwerk.  
- pxe-service=x86PC,"Netzwerk Boot",pxelinux       # gewünschter Dienst  
- enable-tftp                     # aktiviere TFTP-server   
- tftp-root=/var/lib/tftpboot     # hier liegen die Daten Debian 10 Buster   
- #### tftp-root=/srv/tftp        # hier liegen die Daten Ubuntu 20.4 focal   
- port=0                          # DNS brauchen wir hier nicht   
+   dhcp-range=192.168.178.0,proxy                    # Unser Netzwerk.  
+   dhcp-boot=pxelinux.0,192.168.178.52,192.168.178.0 # IP TFTP-Server und Netzwerk.  
+   pxe-service=x86PC,"Netzwerk Boot",pxelinux       # gewünschter Dienst  
+   enable-tftp                     # aktiviere TFTP-server   
+   tftp-root=/var/lib/tftp         # hier liegen die Daten Debian 12 Bookworm   
+   port=0                          # DNS brauchen wir hier nicht   
 
 ### Bootimage holen im Browser oder mit wget, ...
 
-- https://ftp.halifax.rwth-aachen.de/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz
+- [download netboot.tar.gz Image](https://ftp.halifax.rwth-aachen.de/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz)
 - Verzeichnis für TFTP-server anlegen
-  sudo mkdir /var/lib/tftpboot
-- Bootimage entpacken
-- sudo tar xvf netboot.tar.gz -C /var/lib/tftpboot
+  sudo mkdir /var/lib/tftp
+- Bootimage dort entpacken
+- sudo tar xvf netboot.tar.gz -C /var/lib/tftp
 
 ### Konfigurations Dateien für die Clients erstellen oder anpassen
 
@@ -104,34 +111,133 @@ Weitere Infos in https://wiki.ubuntuusers.de/PXE-Boot/
 
 Die in netboot.tar enthaltene default Konfigurationsdatei pxelinux.cfg/default kann für die APU nicht ohne Anpassung verwendet werden wegen fehlender Grafikkarte.
 
-Inhalt der default Datei für APU Installation mit Antwortdatei (debseed.cfg)  
-Achtung IP-adresse evtl. anpassen
+Inhalt der default Datei für APU Installation im tftpserver mit Antwortdatei (debseed.cfg)  
+Achtung IP-adresse tftp Server evtl. anpassen
+Dateiname C0A8B2 ergibt sich als hex von 192.168.178. Damit ist diese Datei für alle Geräte im Netz /24 zuständig.
 
 
     SERIAL 0 115200
     CONSOLE 0
 
-    default Buster
+    default Bookworm
 
     ALLOWOPTIONS 0
     TIMEOUT 600
 
-    LABEL Buster
-	MENU LABEL ^Buster
+    LABEL Bookworm
+	MENU LABEL ^Bookworm
 	KERNEL debian-installer/amd64/linux
 	append interface=enp1s0 priority=critical initrd=debian-installer/amd64/initrd.gz auto=true url=tftp://192.168.178.52/debseed.cfg console=ttyS0,115200n8 --- console=ttyS0,115200n8
 
 Die Antwortdatei debseed.cfg und die Hilfsdatei netcfghack.sh müssen sich im TFTP-server Rootverzeichnis befinden.
-netcfghack.sh sorgt für die statische Netzkonfiguration von enp1s0.
+netcfghack.sh sorgt für die statische Netzkonfiguration von enp1s0 der APU.
 
     #!/bin/sh
     killall-dhcp
     netcfg
     echo netcfghack ende
 
-debseed.cfg ist zu gross (>450 Zeilen) wohin damit???
-
- In der debseed.cfg sind die IP-adressen evtl. auch anzupassen.
-
-Wenn alles klappt, ist die APU nach ca 13 Minuten installiert.
+debseed.cfg hier ohne Kommentare  
+Weitere Informationen im Debian Installationshandbuch [Handbuch](https://www.debian.org/releases/stable/amd64/apbs04.en.html)
+
+    #_preseed_v1
+    ######### debseed.cfg  ohne Kommentare, damit sie ins wiki passt
+    d-i apt-setup/contrib boolean true
+    d-i apt-setup/non-free boolean true
+    d-i apt-setup/non-free-firmware boolean true
+    d-i apt-setup/security_host string security.debian.org
+    d-i apt-setup/services-select multiselect security, updates
+    d-i clock-setup/ntp boolean true
+    d-i clock-setup/utc boolean true
+    d-i debian-installer/country string DE
+    d-i debian-installer/language string en
+    d-i debian-installer/locale string de_DE.UTF-8
+    d-i hw-detect/load_firmware boolean true
+    d-i keyboard-configuration/xkb-keymap select de
+    d-i localechooser/supported-locales multiselect en_US.UTF-8
+    d-i mirror/country string manual
+    d-i mirror/http/directory string /debian
+    d-i mirror/http/hostname string ftp.halifax.rwth-aachen.de
+    d-i mirror/http/proxy string
+    d-i netcfg/choose_interface select enp1s0
+    d-i netcfg/confirm_static boolean true
+    d-i netcfg/dhcp_failed note
+    d-i netcfg/dhcp_options select Configure network manually
+    d-i netcfg/disable_autoconfig boolean true
+    d-i netcfg/get_domain string ffdo.net
+    d-i netcfg/get_gateway string 192.168.178.254
+    d-i netcfg/get_hostname string berghofen
+    d-i netcfg/get_ipaddress string 192.168.178.51
+    d-i netcfg/get_nameservers string 192.168.178.254
+    d-i netcfg/get_netmask string 255.255.255.0
+    d-i netcfg/hostname string berghofen.ffdo.net
+    d-i netcfg/link_wait_timeout string 10
+    d-i netcfg/wireless_wep string
+    d-i partman-auto/choose_recipe select atomic
+    d-i partman-auto/init_automatically_partition select biggest_free
+    d-i partman-partitioning/confirm_write_new_label boolean true
+    d-i partman/choose_partition select finish
+    d-i partman/confirm boolean true
+    d-i partman/confirm_nooverwrite boolean true
+    d-i passwd/root-login boolean false
+    d-i passwd/user-fullname string Debian apu
+    d-i passwd/user-password password ganzsicher
+    d-i passwd/user-password-again password ganzsicher
+    d-i passwd/username string fb
+    d-i preseed/run string netcfghack.sh
+    d-i time/zone string Europe/Berlin
+    tasksel tasksel/first multiselect standard
+    d-i pkgsel/include string \
+    bird2 \
+    bridge-utils \
+    build-essential \
+    debconf-utils \
+    dkms \
+    dnsutils \
+    flashrom \
+    iperf \
+    iproute2 \
+    iputils-tracepath \
+    lshw \
+    mlocate \
+    mtr-tiny \
+    net-tools \
+    openssh-server \
+    psmisc \
+    ssh-tools \
+    tinc \
+    tree \
+    unbound \
+    vim \
+    wireless-tools \
+    wpasupplicant 
+    d-i finish-install/reboot_in_progress note
+    d-i grub-installer/bootdev  string /dev/sda
+    d-i grub-installer/with_other_os boolean true
+    popularity-contest popularity-contest/participate boolean false
+    d-i preseed/late_command string cp /etc/network/interfaces  /target/etc/network/interfacesweg2 ; env > /target/etc/network/env.lst
+
+ In der debseed.cfg sind die IP-adressen, Hostnamen und User/PW für den sudouser anzupassen.
+
+## Ablauf der Installation
+dnsmasq mit Option -d starten, damit bleibt die Ausgabe im Terminal sichtbar:
+
+    dnsmasq-dhcp: PXE(enp109s0f1) 00:0d:b9:58:66:1c proxy
+    dnsmasq-dhcp: PXE(enp109s0f1) 192.168.178.51 00:0d:b9:58:66:1c pxelinux.0
+    dnsmasq-tftp: sent /var/lib/tftp/pxelinux.0 to 192.168.178.51
+    dnsmasq-tftp: sent /var/lib/tftp/ldlinux.c32 to 192.168.178.51
+    dnsmasq-tftp: Datei /var/lib/tftp/pxelinux.cfg/01-00-0d-b9-58-66-1c nicht gefunden
+    dnsmasq-tftp: Datei /var/lib/tftp/pxelinux.cfg/C0A8B233 nicht gefunden
+    dnsmasq-tftp: Datei /var/lib/tftp/pxelinux.cfg/C0A8B23 nicht gefunden
+    dnsmasq-tftp: sent /var/lib/tftp/pxelinux.cfg/C0A8B2 to 192.168.178.51
+    dnsmasq-tftp: sent /var/lib/tftp/debian-installer/amd64/linux to 192.168.178.51
+    dnsmasq-tftp: sent /var/lib/tftp/debian-installer/amd64/initrd.gz to 192.168.178.51
+    dnsmasq-tftp: sent /var/lib/tftp/debseed.cfg to 192.168.178.51
+    dnsmasq-tftp: sent /var/lib/tftp/netcfghack.sh to 192.168.178.51
+
+APU booten (Strom einschalten) und mit f10 oder N PXE boot auswählen.  
+Bei der Schnittstelle enp1s0 auswählen und bestätigen. (Es ist mir nicht gelungen, diese Auswahl automatisch zu treffen).  
+Wenn alles klappt, ist die APU nach ca 15 Minuten installiert und bootet in das frisch installierte System.  
  Bei Fehlern in der debseed.cfg springt die Installation in den interaktiven Modus.
+
+Die Konfiguration (oder auch Kompilieren) von tinc, bird2 und unbound kann jetzt erfolgen.