# define chroot mirror {{{
chrootmirror() {
- if [ -n "$KEEP_SRC_LIST" ] ; then
- echo "KEEP_SRC_LIST has been set, skipping chrootmirror stage."
+ if [ "$KEEP_SRC_LIST" = "yes" ] ; then
+ echo "KEEP_SRC_LIST has been enabled, skipping chrootmirror stage."
return
fi
# remove local chroot mirror {{{
remove_chrootmirror() {
- if [ -n "$KEEP_SRC_LIST" ] ; then
- echo "KEEP_SRC_LIST has been set, skipping remove_chrootmirror stage."
+ if [ "$KEEP_SRC_LIST" = "yes" ] ; then
+ echo "KEEP_SRC_LIST has been enabled, skipping remove_chrootmirror stage."
return
fi
fi
$APTUPDATE
- KVER=$(get_kernel_version)
- if [ -n "$KVER" ] ; then
- # note: install busybox to be able to debug initramfs
- KERNELPACKAGES="linux-image-$KVER linux-headers-$KVER busybox firmware-linux-free"
- # only add firmware-linux if we have non-free as a component
- if expr "$COMPONENTS" : '.*non-free' >/dev/null ; then
- KERNELPACKAGES="$KERNELPACKAGES firmware-linux"
- fi
- # shellcheck disable=SC2086
- DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL $KERNELPACKAGES
- else
- echo "Warning: Could not find a kernel for your system. Your system won't be able to boot itself!"
+
+ local kernel_version
+ kernel_version=$(get_kernel_version)
+
+ if [ -z "${kernel_version}" ] ; then
+ echo "Error: could not find a kernel for your system. Your system won't be able to boot itself!" >&2
+ exit 1
fi
+
+ # defaults (note: install busybox to be able to debug initramfs)
+ KERNELPACKAGES="linux-image-${kernel_version} linux-headers-${kernel_version} busybox firmware-linux-free"
+
+ # only add firmware-linux if we have non-free as a component
+ if expr "$COMPONENTS" : '.*non-free' >/dev/null ; then
+ KERNELPACKAGES="$KERNELPACKAGES firmware-linux"
+ fi
+
+ # when installing into a VM using buster or newer, install only
+ # linux-image-cloud-amd64 (and no headers and firmware packages)
+ if [ -n "${VMSIZE}" ] && [ "${ARCH:-}" = "amd64" ] ; then
+ case "${RELEASE}" in
+ lenny|squeeze|wheezy|jessie|stretch)
+ ;;
+ *)
+ echo "Note: installing into VM, choosing linux-image-cloud-amd64 kernel package"
+ KERNELPACKAGES="linux-image-cloud-amd64"
+ ;;
+ esac
+ fi
+
+ # shellcheck disable=SC2086
+ DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL $KERNELPACKAGES
}
# }}}
echo "Mounting $EFI on /boot/efi"
mount "$EFI" /boot/efi || return 1
+ # if efivarfs kernel module is loaded, but efivars isn't,
+ # then we need to mount efivarfs for efibootmgr usage
+ if ! ls /sys/firmware/efi/efivars/* &>/dev/null ; then
+ echo "Mounting efivarfs on /sys/firmware/efi/efivars"
+ mount -t efivarfs efivarfs /sys/firmware/efi/efivars
+ fi
+
echo "Invoking efibootmgr"
efibootmgr || return 1
+
+ umount /sys/firmware/efi/efivars &>/dev/null || true
+
}
# grub configuration/installation {{{