supermin: Die with an error if no kernels found (RHBZ#539746).
[libguestfs.git] / appliance / libguestfs-supermin-helper.in
index e521020..4d8fd04 100755 (executable)
@@ -38,14 +38,20 @@ initrd="$3"
 # without arch second.
 
 arch=$(echo "@host_cpu@" | sed 's/^i.86$/i?86/')
-kernels=$(ls -1vr /boot/vmlinuz-*.$arch* 2>/dev/null | grep -v xen; ls -1vr /boot/vmlinuz-* 2>/dev/null | grep -v xen)
+kernels=$(ls -1dvr /boot/vmlinuz-*.$arch* 2>/dev/null | grep -v xen; ls -1dvr /boot/vmlinuz-* 2>/dev/null | grep -v xen)
+
+if [ -z "$kernels" ]; then
+    echo "$0: failed to find a suitable kernel in /boot directory" >&2
+    exit 1
+fi
+
 for f in $kernels; do
     b=$(basename "$f")
     b=$(echo "$b" | sed 's,vmlinuz-,,')
     modpath="/lib/modules/$b"
     if [ -d "$modpath" ]; then
-       ln -sf "$f" "$kernel"
-       break
+        ln -sf "$f" "$kernel"
+        break
     fi
     modpath=
 done
@@ -83,4 +89,4 @@ find "$modpath" \( -not -name '*.ko' $whitelist \) -a -print0 |
   ls -1df $(
       cat "$sourcedir"/initramfs.@REPO@.@host_cpu@.supermin.hostfiles
     ) 2>/dev/null |
-  cpio --quiet -o -H newc ) >> "$initrd"
+  cpio -C 65536 --quiet -o -H newc ) >> "$initrd"