From 86ebea6d66f0c6433727d441dce2209045af84d3 Mon Sep 17 00:00:00 2001 From: Thomas Stallinger Date: Mon, 31 Aug 2026 09:38:09 +0200 Subject: [PATCH] fix(golden-image): tar --exclude braucht relative Pfade bei -C / --exclude=/proc (mit fuehrendem Slash) matcht nicht gegen die von 'tar -C / .' erzeugten relativen Elementnamen (./proc/...). Live gegen die echte Referenz-VM entdeckt: der erste Packlauf haette dadurch /proc, /sys, /dev, /run, /tmp, /var/tmp real mit eingepackt (u.a. /proc/kcore) statt sie auszuschliessen. Abgebrochen, Excludes auf relative Pfade (proc, sys, dev, run, tmp, var/tmp) umgestellt und lokal mit einem Testverzeichnis verifiziert (inkl. Gegenprobe: ein 'runner/'-Verzeichnis bleibt vom 'run'-Exclude unberuehrt). Co-Authored-By: Claude Sonnet 5 --- scripts/package_golden_image.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/package_golden_image.sh b/scripts/package_golden_image.sh index 07e5a50..6baa771 100755 --- a/scripts/package_golden_image.sh +++ b/scripts/package_golden_image.sh @@ -69,10 +69,15 @@ rm -f /home/*/.bash_history 2>/dev/null || true # zweiten Durchlauf. echo "==> Packe nach ${OUTPUT_FILE}" +# WICHTIG: tar -C / erzeugt relative Elementnamen (./proc/..., ./sys/...), +# nicht absolute (/proc/...) - ein --exclude mit fuehrendem Slash matcht +# dagegen NICHT (live am 31.08.2026 entdeckt: das lief zunaechst +# unbemerkt gegen die echte Referenz-VM und haette u.a. /proc/kcore mit +# eingepackt). Ausschluesse deshalb ohne fuehrenden Slash angeben. tar --numeric-owner --xattrs \ - --exclude=/proc --exclude=/sys --exclude=/dev \ - --exclude=/run --exclude=/tmp --exclude=/var/tmp \ - --exclude="${OUTPUT_FILE}" \ + --exclude=proc --exclude=sys --exclude=dev \ + --exclude=run --exclude=tmp --exclude=var/tmp \ + --exclude="${OUTPUT_FILE#/}" \ -C / -cf - . | zstd -f -T0 -19 -o "${OUTPUT_FILE}" echo "==> Fertig: ${OUTPUT_FILE} ($(du -h "${OUTPUT_FILE}" | cut -f1))"