Subject: [alpine-devel] [PATCH 1/9] main/syslinux: fix/refactor initramfs

From: Dubiousjim <[email-masked]>
Date: Sat, 29 Jun 2013 16:41:21 -0400

If xen.gz is present, there are multiple kernels, and later ones lack an
initramfs, they'll currently be (wrongly) configured to use a initramfs anyway.
Fixed.

We also refactor the check for /boot/initramfs-$tag, and configure this using a
separate INITRD line, instead of adding it to the APPEND line. In passing, this
also closes a second might-use-a-stale-initramfs bug.
---
 main/syslinux/update-extlinux | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/main/syslinux/update-extlinux b/main/syslinux/update-extlinux
index a4d4fa7..2b980a9 100755
--- a/main/syslinux/update-extlinux
+++ b/main/syslinux/update-extlinux
@@ -91,6 +91,8 @@ if [ -f "/boot/xen.gz" ]; then
 		if [ -f "/boot/initramfs-$tag" ]; then
 			everbose "Found initramfs: /boot/initramfs-$tag"
 			initramfs="initramfs-$tag"
+		else
+			initramfs=
 		fi
 		label=xen-$(grep -w -l $tag /usr/share/kernel/*/kernel.release \
 				| cut -d/ -f5)
@@ -113,11 +115,6 @@ fi
 for kernel in $(find /boot -name "vmlinuz-*" -type f); do
 	tag=$(basename $kernel | cut -b9-)
 	everbose "Found kernel: $kernel"
-
-	if [ -f "/boot/initramfs-$tag" ]; then
-		everbose "Found initramfs: /boot/initramfs-$tag"
-		initramfs="initrd=initramfs-$tag"
-	fi
 	label=$(grep -w -l $tag /usr/share/kernel/*/kernel.release | cut -d/ -f5)
 	if [ -z "$label" ]; then
 		label=$lst
@@ -128,7 +125,11 @@ for kernel in $(find /boot -name "vmlinuz-*" -type f); do
 	fi
 	echo "  MENU LABEL Linux $tag" >> $conf.new
 	echo "  KERNEL $(basename $kernel)" >> $conf.new
-	echo "  APPEND $initramfs root=$root modules=${modules}${TYPE:+,$TYPE} $default_kernel_opts" >> $conf.new
+	if [ -f "/boot/initramfs-$tag" ]; then
+		everbose "Found initramfs: /boot/initramfs-$tag"
+		echo "  INITRD initramfs-$tag" >> $conf.new
+	fi
+	echo "  APPEND root=$root modules=${modules}${TYPE:+,$TYPE} $default_kernel_opts" >> $conf.new
 	echo "" >> $conf.new
 	lst=$(($lst + 1))
 done
-- 
1.8.3.1

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---