#
# Defaults
#
-# 20 Mb for the boot partition
-BOOT_SIZE=20
+# 100 Mb for the boot partition
+BOOT_SIZE=100
# Cleanup after die()
cleanup() {
die "Failed to read DISKID"
fi
ROOTFS_PARTUUID="$ROOTFS_DISKID-02"
-debug "PARTUUID for ROOTFS in grub.conf is $ROOTFS_PARTUUID"
+debug "PARTUUID for ROOTFS is $ROOTFS_PARTUUID"
if [ $DEBUG -eq 1 ]; then
parted -s $DEVICE print
mkfs.vfat $BOOTFS -n "EFI" >$OUT 2>&1 || die "Failed to format $BOOTFS"
fi
-debug "Formatting $ROOTFS as ext3"
-mkfs.ext3 -F $ROOTFS -L "ROOT" >$OUT 2>&1 || die "Failed to format $ROOTFS"
+debug "Formatting $ROOTFS as ext4"
+mkfs.ext4 -F $ROOTFS -L "ROOT" >$OUT 2>&1 || die "Failed to format $ROOTFS"
#
echo "bootx64.efi" > $BOOTFS_MNT/startup.nsh || error "Failed to create startup.nsh"
# Copy the efi loader and configs (booti*.efi and grub.cfg if it exists)
cp -r $HDDIMG_MNT/EFI $BOOTFS_MNT >$OUT 2>&1 || error "Failed to copy EFI dir"
-# Silently ignore a missing gummiboot loader dir (we might just be a GRUB image)
+# Silently ignore a missing systemd-boot or gummiboot loader dir (we might just be a GRUB image)
cp -r $HDDIMG_MNT/loader $BOOTFS_MNT >$OUT 2>&1
# Update the boot loaders configurations for an installed image
sed -i "s/ LABEL=[^ ]*/ /" $GRUB_CFG
sed -i "s@ root=[^ ]*@ @" $GRUB_CFG
- sed -i "s@vmlinuz @vmlinuz root=$ROOTFS_PARTUUID ro rootwait quiet @" $GRUB_CFG
+ sed -i "s@vmlinuz @vmlinuz root=$ROOTFS_PARTUUID @" $GRUB_CFG
fi
+# look for a systemd-boot loader.conf file and create a default boot entry
+SYSTEMDBOOT_CFG="$BOOTFS_MNT/loader/loader.conf"
+if [ -e "$SYSTEMDBOOT_CFG" ]; then
+ info "Configuring SYSTEMD-BOOT"
+ SYSTEMDBOOT_BOOT="$BOOTFS_MNT/loader/entries/boot.conf"
+ SYSTEMDBOOT_DEBUG="$BOOTFS_MNT/loader/entries/debug.conf"
+ # Delete the install entry
+ sed -i "/menuentry 'install'/,/^}/d" $SYSTEMDBOOT_CFG
+ rm -rf "$BOOTFS_MNT/loader/entries/install.conf" >$OUT 2>&1
+ # Add PARTUUID to the boot entry file
+ if [ ! -e "$SYSTEMDBOOT_BOOT" ]; then
+ die "no boot.conf entry found in systemd-boot directories"
+ fi
+ # Delete any LABEL= strings
+ sed -i "s/ LABEL=[^ ]*/ /" $SYSTEMDBOOT_BOOT
+
+ sed -i "s@ root=[^ ]*@ @" $SYSTEMDBOOT_BOOT
+ sed -i "s@options @options root=$ROOTFS_PARTUUID @" $SYSTEMDBOOT_BOOT
+fi
+
# Ensure we have at least one EFI bootloader configured
-if [ ! -e $GRUB_CFG ] ; then
+if [ ! -e $GRUB_CFG ] && [ ! -e $SYSTEMDBOOT_CFG ] ; then
die "No EFI bootloader configuration found"
fi