mint-image: WLAN-/Netzwerkverbindungsprofil ins Zielsystem uebernehmen
Neue image_deploy_install_network_profile() kopiert das von export_connection_profile() (05_network.sh) geschuetzt abgelegte Verbindungsprofil nach /etc/NetworkManager/system-connections/ im Zielsystem - backend_launch() ruft das nach dem Mounten auf. Nutzer-Feedback (01.09.2026, echter Hardware-Test): "WLAN-Information sind nicht konsistent. Nach Reboot muss PSK neu eingegeben werden." Root Cause: export_connection_profile() legte das Profil zwar unter /run/tuxflotte/network/connection.nmconnection ab, aber niemand holte es von dort ab - das frisch installierte System stand beim ersten Boot ohne gespeichertes Profil da.
This commit is contained in:
parent
3739da37dc
commit
3f17885d55
@ -217,10 +217,20 @@ image_deploy_extract_image_from_url() {
|
||||
local target="$2"
|
||||
local pipe_status
|
||||
|
||||
# "--progress-bar" statt "--silent": mit Abstand der laengste Schritt
|
||||
# der ganzen Installation (Minuten statt Sekunden) - Nutzer-Feedback
|
||||
# (01.09.2026, echter Hardware-Test) wollte hier ausdruecklich eine
|
||||
# sichtbare Fortschrittsanzeige statt einer stillen Wartezeit. Der
|
||||
# Balken geht an stderr, unabhaengig vom stdout/stderr-Umleiten des
|
||||
# restlichen Moduls (siehe TUXFLOTTE_VERBOSE_MODULES in utils.sh -
|
||||
# 40_backend.sh bleibt deshalb bewusst von der Kreisel-Kompaktdarstellung
|
||||
# ausgenommen, sonst waere dieser Balken fuer die Person vor dem Geraet
|
||||
# unsichtbar).
|
||||
#
|
||||
# "|| true" verhindert, dass "set -e" hier sofort abbricht - der
|
||||
# eigentliche Fehlerfall wird gleich anhand von PIPESTATUS gezielt
|
||||
# ausgewertet, statt die Pipeline roh durchschlagen zu lassen.
|
||||
curl --silent --show-error --fail --location "${url}" |
|
||||
curl --progress-bar --show-error --fail --location "${url}" |
|
||||
tar --zstd -xpf - -C "${target}" || true
|
||||
pipe_status=("${PIPESTATUS[@]}")
|
||||
|
||||
@ -235,6 +245,33 @@ image_deploy_extract_image_from_url() {
|
||||
# /etc/fstab aus den tatsaechlichen Partitions-UUIDs neu erzeugen - kein
|
||||
# genfstab auf Debian/Mint verfuegbar (das ist ein Arch-Linux-Werkzeug),
|
||||
# blkid reicht fuer unseren einfachen Fall (Root + optional ESP) locker.
|
||||
# Uebernimmt das vom Netzwerkmodul exportierte, aktive NetworkManager-
|
||||
# Verbindungsprofil (siehe export_connection_profile() in 05_network.sh)
|
||||
# ins Zielsystem - ohne diesen Schritt bleibt das Profil nur unter
|
||||
# /run/tuxflotte/network/... auf dem Boot-Medium liegen und geht beim
|
||||
# Reboot ins frisch installierte System verloren. Live gefunden
|
||||
# (01.09.2026, echter Hardware-Test): Kunde musste den WLAN-PSK nach dem
|
||||
# ersten Boot erneut eingeben, weil genau dieser Kopierschritt fehlte.
|
||||
# Keine Fatal-Bedingung, falls die Datei fehlt - das Provisionierungs-
|
||||
# interface kann auch unmanaged/kabelgebunden ohne Profil gelaufen sein.
|
||||
image_deploy_install_network_profile() {
|
||||
local target="$1"
|
||||
local profile_file="$2"
|
||||
local dest_dir="${target}/etc/NetworkManager/system-connections"
|
||||
local dest_name
|
||||
|
||||
[[ -n "${profile_file}" && -f "${profile_file}" ]] || return 0
|
||||
|
||||
dest_name="$(basename "${profile_file}")"
|
||||
|
||||
install -d --mode=0700 --owner=root --group=root "${dest_dir}" ||
|
||||
{ image_deploy_fatal "Verzeichnis ${dest_dir} konnte nicht angelegt werden"; return 1; }
|
||||
|
||||
install --mode=0600 --owner=root --group=root \
|
||||
"${profile_file}" "${dest_dir}/${dest_name}" ||
|
||||
{ image_deploy_fatal "Verbindungsprofil konnte nicht nach ${dest_dir} kopiert werden"; return 1; }
|
||||
}
|
||||
|
||||
image_deploy_write_fstab() {
|
||||
local target="$1"
|
||||
local boot_part="$2"
|
||||
|
||||
@ -217,10 +217,20 @@ image_deploy_extract_image_from_url() {
|
||||
local target="$2"
|
||||
local pipe_status
|
||||
|
||||
# "--progress-bar" statt "--silent": mit Abstand der laengste Schritt
|
||||
# der ganzen Installation (Minuten statt Sekunden) - Nutzer-Feedback
|
||||
# (01.09.2026, echter Hardware-Test) wollte hier ausdruecklich eine
|
||||
# sichtbare Fortschrittsanzeige statt einer stillen Wartezeit. Der
|
||||
# Balken geht an stderr, unabhaengig vom stdout/stderr-Umleiten des
|
||||
# restlichen Moduls (siehe TUXFLOTTE_VERBOSE_MODULES in utils.sh -
|
||||
# 40_backend.sh bleibt deshalb bewusst von der Kreisel-Kompaktdarstellung
|
||||
# ausgenommen, sonst waere dieser Balken fuer die Person vor dem Geraet
|
||||
# unsichtbar).
|
||||
#
|
||||
# "|| true" verhindert, dass "set -e" hier sofort abbricht - der
|
||||
# eigentliche Fehlerfall wird gleich anhand von PIPESTATUS gezielt
|
||||
# ausgewertet, statt die Pipeline roh durchschlagen zu lassen.
|
||||
curl --silent --show-error --fail --location "${url}" |
|
||||
curl --progress-bar --show-error --fail --location "${url}" |
|
||||
tar --zstd -xpf - -C "${target}" || true
|
||||
pipe_status=("${PIPESTATUS[@]}")
|
||||
|
||||
@ -235,6 +245,33 @@ image_deploy_extract_image_from_url() {
|
||||
# /etc/fstab aus den tatsaechlichen Partitions-UUIDs neu erzeugen - kein
|
||||
# genfstab auf Debian/Mint verfuegbar (das ist ein Arch-Linux-Werkzeug),
|
||||
# blkid reicht fuer unseren einfachen Fall (Root + optional ESP) locker.
|
||||
# Uebernimmt das vom Netzwerkmodul exportierte, aktive NetworkManager-
|
||||
# Verbindungsprofil (siehe export_connection_profile() in 05_network.sh)
|
||||
# ins Zielsystem - ohne diesen Schritt bleibt das Profil nur unter
|
||||
# /run/tuxflotte/network/... auf dem Boot-Medium liegen und geht beim
|
||||
# Reboot ins frisch installierte System verloren. Live gefunden
|
||||
# (01.09.2026, echter Hardware-Test): Kunde musste den WLAN-PSK nach dem
|
||||
# ersten Boot erneut eingeben, weil genau dieser Kopierschritt fehlte.
|
||||
# Keine Fatal-Bedingung, falls die Datei fehlt - das Provisionierungs-
|
||||
# interface kann auch unmanaged/kabelgebunden ohne Profil gelaufen sein.
|
||||
image_deploy_install_network_profile() {
|
||||
local target="$1"
|
||||
local profile_file="$2"
|
||||
local dest_dir="${target}/etc/NetworkManager/system-connections"
|
||||
local dest_name
|
||||
|
||||
[[ -n "${profile_file}" && -f "${profile_file}" ]] || return 0
|
||||
|
||||
dest_name="$(basename "${profile_file}")"
|
||||
|
||||
install -d --mode=0700 --owner=root --group=root "${dest_dir}" ||
|
||||
{ image_deploy_fatal "Verzeichnis ${dest_dir} konnte nicht angelegt werden"; return 1; }
|
||||
|
||||
install --mode=0600 --owner=root --group=root \
|
||||
"${profile_file}" "${dest_dir}/${dest_name}" ||
|
||||
{ image_deploy_fatal "Verbindungsprofil konnte nicht nach ${dest_dir} kopiert werden"; return 1; }
|
||||
}
|
||||
|
||||
image_deploy_write_fstab() {
|
||||
local target="$1"
|
||||
local boot_part="$2"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user