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 <noreply@anthropic.com>
This commit is contained in:
parent
cb182a058f
commit
86ebea6d66
@ -69,10 +69,15 @@ rm -f /home/*/.bash_history 2>/dev/null || true
|
|||||||
# zweiten Durchlauf.
|
# zweiten Durchlauf.
|
||||||
|
|
||||||
echo "==> Packe nach ${OUTPUT_FILE}"
|
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 \
|
tar --numeric-owner --xattrs \
|
||||||
--exclude=/proc --exclude=/sys --exclude=/dev \
|
--exclude=proc --exclude=sys --exclude=dev \
|
||||||
--exclude=/run --exclude=/tmp --exclude=/var/tmp \
|
--exclude=run --exclude=tmp --exclude=var/tmp \
|
||||||
--exclude="${OUTPUT_FILE}" \
|
--exclude="${OUTPUT_FILE#/}" \
|
||||||
-C / -cf - . | zstd -f -T0 -19 -o "${OUTPUT_FILE}"
|
-C / -cf - . | zstd -f -T0 -19 -o "${OUTPUT_FILE}"
|
||||||
|
|
||||||
echo "==> Fertig: ${OUTPUT_FILE} ($(du -h "${OUTPUT_FILE}" | cut -f1))"
|
echo "==> Fertig: ${OUTPUT_FILE} ($(du -h "${OUTPUT_FILE}" | cut -f1))"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user