zfsbootmenu/void/zfsbootmenu/INSTALL

60 lines
1.6 KiB
Plaintext

#!/bin/sh
CONF_FILE=etc/default/zfsbootmenu
CONF_DIR=etc/zfsbootmenu/dracut.conf.d
if [ -f ${CONF_FILE} ]; then
. ${CONF_FILE}
else
echo "${CONF_FILE} missing"
exit 0
fi
if [ "x${MANAGE_IMAGES}" != x1 ]; then
echo "Set MANAGE_IMAGES=1 in ${CONF_FILE}"
exit 0
elif [ ! -d ${IMAGE_DIR} ]; then
echo "${IMAGE_DIR} does not exist"
exit 0
fi
case "${ACTION}" in
pre)
for KERNEL in vmlinux vmlinuz kernel linux; do
if [ -f ${IMAGE_DIR}/${KERNEL}-zfsbootmenu ]; then
cp ${IMAGE_DIR}/${KERNEL}-zfsbootmenu ${IMAGE_DIR}/${KERNEL}-zfsbootmenu-backup
break
fi
done
if [ -f ${IMAGE_DIR}/initramfs-zfsbootmenu.img ]; then
cp ${IMAGE_DIR}/initramfs-zfsbootmenu.img ${IMAGE_DIR}/initramfs-zfsbootmenu-backup.img
fi
;;
post)
dracut -q -f --confdir ${CONF_DIR} ${IMAGE_DIR}/initramfs-zfsbootmenu.img
KVER=$( uname -r )
for KERNEL in vmlinux vmlinuz kernel linux; do
if [ -f boot/${KERNEL}-${KVER} ]; then
cp boot/${KERNEL}-${KVER} ${IMAGE_DIR}/${KERNEL}-zfsbootmenu
break
fi
done
# We always want both a primary and a backup image, even on the first run
for KERNEL in vmlinux vmlinuz kernel linux; do
if [ -f ${IMAGE_DIR}/${KERNEL}-zfsbootmenu ]; then
if [ ! -f ${IMAGE_DIR}/${KERNEL}-zfsbootmenu-backup ]; then
cp ${IMAGE_DIR}/${KERNEL}-zfsbootmenu ${IMAGE_DIR}/${KERNEL}-zfsbootmenu-backup
fi
break
fi
done
if [ ! -f ${IMAGE_DIR}/initramfs-zfsbootmenu-backup.img ]; then
cp ${IMAGE_DIR}/initramfs-zfsbootmenu.img ${IMAGE_DIR}/initramfs-zfsbootmenu-backup.img
fi
;;
esac