Add initrd generation and fix duplicate image shipping

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-01-02 00:57:57 +00:00
parent a6736d0bbf
commit b6b85e445b
2 changed files with 37 additions and 11 deletions

View File

@@ -8,6 +8,10 @@ echo "=== Downloading Linux kernel from Ubuntu repositories ==="
mkdir -p /kernel
apt-get update
# Install initramfs-tools for generating initrd
echo "Installing initramfs-tools..."
apt-get install -y initramfs-tools
# Get the actual kernel package name (not the metapackage)
echo "Finding latest kernel package..."
KERNEL_PKG=$(apt-cache depends linux-image-generic | grep -E 'Depends.*linux-image-[0-9]' | head -1 | awk '{print $2}')
@@ -20,7 +24,7 @@ fi
echo "Downloading kernel package: $KERNEL_PKG"
apt-get download "$KERNEL_PKG"
# Extract the kernel package
# Extract the kernel package to /kernel
echo "Extracting kernel..."
dpkg -x ${KERNEL_PKG}*.deb /kernel
@@ -37,6 +41,30 @@ if [ -z "$KERNEL_FILE" ]; then
fi
echo "Kernel extracted successfully: $KERNEL_FILE"
# Extract kernel version from the kernel filename
KERNEL_VERSION=$(basename $KERNEL_FILE | sed 's/vmlinuz-//')
echo "Kernel version: $KERNEL_VERSION"
# Copy kernel modules to system location so mkinitramfs can find them
echo "Copying kernel modules to system location..."
if [ -d /kernel/lib/modules/${KERNEL_VERSION} ]; then
cp -r /kernel/lib/modules/${KERNEL_VERSION} /lib/modules/
else
echo "WARNING: No modules found for kernel ${KERNEL_VERSION}"
fi
# Generate initrd using mkinitramfs
echo "Generating initrd for kernel version $KERNEL_VERSION..."
mkinitramfs -o /kernel/boot/initrd.img-${KERNEL_VERSION} ${KERNEL_VERSION}
# Verify initrd was created
if [ ! -f /kernel/boot/initrd.img-${KERNEL_VERSION} ]; then
echo "ERROR: Failed to generate initrd"
exit 1
fi
echo "Initrd generated successfully: /kernel/boot/initrd.img-${KERNEL_VERSION}"
ls -lh /kernel/boot/
# Clean up