If the build fails, we can end up with an empty initrd directory which
prevents the build script from operating again. Better rely on the
resulting init executable instead.
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
echo >&2 "$D does not exist: Malformed kernel source tree?"
exit 1
fi
-if [ -d "$D/initrd" ]; then
- echo "$D/initrd already exists, no need to create it"
+if [ -s "$D/initrd/init" ]; then
+ echo "$D/initrd/init already exists, no need to create it"
exit 0
fi
# Filesystem creation
dracut --force --no-hostonly --no-hostonly-cmdline --module "base" $T/initramfs.img
cd $D
- mkdir initrd
+ mkdir -p initrd
cd initrd
zcat $T/initramfs.img | cpio -id
cp $T/init init
# future-proof than dracut.
echo "Could not find dracut, attempting C initrd"
cd $D
-mkdir initrd
+mkdir -p initrd
cd initrd
cat > init.c << '___EOF___'
#include <unistd.h>