fix: use Debian 12 (Bookworm) live ISO base, remove squashfs boot artifacts
The ISO build was using Debian 13 (Trixie) as the live installer base while the rootfs was built from Debian 12 (Bookworm). This caused: - Debian 13 kernel/hostname/user in the live environment - Squashfs errors on reboot from live-boot initramfs hooks Fixes: - Pin live ISO to Debian 12.10.0 (archive URL) - Remove live-boot/live-config packages before initramfs regeneration - Clean out any live-boot initramfs hooks/scripts from installed rootfs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -391,7 +391,7 @@ echo "📦 Step 2: Creating installer environment..."
|
||||
|
||||
# Download Debian Live as our installer base
|
||||
BASE_ISO="$WORK_DIR/debian-live-installer.iso"
|
||||
EXPECTED_SIZE=1500000000 # ~1.5GB min (Debian 13 Live standard ~1.9GB)
|
||||
EXPECTED_SIZE=350000000 # ~350MB min (Debian 12 Live standard ~600MB)
|
||||
|
||||
# Check if file exists and is complete
|
||||
if [ -f "$BASE_ISO" ]; then
|
||||
@@ -410,7 +410,8 @@ if [ ! -f "$BASE_ISO" ]; then
|
||||
|
||||
# Use wget without -O so --continue actually works
|
||||
# Download with the ugly SourceForge filename, then rename
|
||||
ISO_URL="https://cdimage.debian.org/debian-cd/current-live/${DEB_ARCH}/iso-hybrid/debian-live-13.3.0-${DEB_ARCH}-standard.iso"
|
||||
# Use Debian 12 (Bookworm) to match the rootfs — NOT Debian 13 (Trixie)
|
||||
ISO_URL="https://cdimage.debian.org/cdimage/archive/12.10.0-live/${DEB_ARCH}/iso-hybrid/debian-live-12.10.0-${DEB_ARCH}-standard.iso"
|
||||
|
||||
if command -v wget >/dev/null 2>&1; then
|
||||
cd "$WORK_DIR"
|
||||
@@ -425,8 +426,8 @@ if [ ! -f "$BASE_ISO" ]; then
|
||||
# Find the downloaded file (wget creates it with a name like "download" or the actual filename)
|
||||
if [ -f "download" ]; then
|
||||
mv "download" "$BASE_ISO"
|
||||
elif [ -f "debian-live-13.3.0-${DEB_ARCH}-standard.iso" ]; then
|
||||
mv "debian-live-13.3.0-${DEB_ARCH}-standard.iso" "$BASE_ISO"
|
||||
elif [ -f "debian-live-12.10.0-${DEB_ARCH}-standard.iso" ]; then
|
||||
mv "debian-live-12.10.0-${DEB_ARCH}-standard.iso" "$BASE_ISO"
|
||||
else
|
||||
echo " ❌ Downloaded file not found"
|
||||
exit 1
|
||||
@@ -1494,6 +1495,14 @@ elif [ -n "${GRUB_BIOS_TARGET}" ]; then
|
||||
echo " Skipping Legacy BIOS bootloader (machine supports UEFI)"
|
||||
fi
|
||||
|
||||
# Remove any live-boot artifacts that could cause squashfs errors on boot
|
||||
# These can sneak in from Docker base image or package dependencies
|
||||
echo " Cleaning live-boot artifacts..."
|
||||
chroot /mnt/target apt-get remove -y --purge live-boot live-boot-initramfs-tools live-config 2>/dev/null || true
|
||||
rm -f /mnt/target/etc/initramfs-tools/conf.d/live-boot* 2>/dev/null || true
|
||||
rm -f /mnt/target/usr/share/initramfs-tools/scripts/live* 2>/dev/null || true
|
||||
rm -f /mnt/target/usr/share/initramfs-tools/hooks/live* 2>/dev/null || true
|
||||
|
||||
# Regenerate initramfs — the one from Docker export is corrupt/incomplete
|
||||
# (Docker builds have limited /proc, /sys, /dev so initramfs generation fails silently)
|
||||
echo " Regenerating initramfs..."
|
||||
|
||||
Reference in New Issue
Block a user