Browse Source

Überarbeite und ergänzte PXE Netzinstallation APU

efbeff 8 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
 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 
 # APU Installation mit USB-Stick 
 
 
 Bereithalten: einen USB-Stick mit dem aktuellen Debian Image, Stick als bootbar definiert mit:  
 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
 - Netzwerkkabel
 
 
 ## Verwendete Adressen
 ## 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
 - 192.168.178.254 Fritz!Box Router, DHCPserver, Zugang Internet
 - Die folgenden Adressen ausserhalb des Bereiches F!B DHCP-server
 - Die folgenden Adressen ausserhalb des Bereiches F!B DHCP-server
 - 192.168.178.51 Statische Adresse für die APU (später)
 - 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:
     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, ...
 ### 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
 - 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
 ### 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.
 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
     SERIAL 0 115200
     CONSOLE 0
     CONSOLE 0
 
 
-    default Buster
+    default Bookworm
 
 
     ALLOWOPTIONS 0
     ALLOWOPTIONS 0
     TIMEOUT 600
     TIMEOUT 600
 
 
-    LABEL Buster
-	MENU LABEL ^Buster
+    LABEL Bookworm
+	MENU LABEL ^Bookworm
 	KERNEL debian-installer/amd64/linux
 	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
 	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.
 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
     #!/bin/sh
     killall-dhcp
     killall-dhcp
     netcfg
     netcfg
     echo netcfghack ende
     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.
  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.