# shellcheck disable=SC2317 # shellcheck has trouble understanding the code flow in this file
# error_handler {{{
-if [ "$REPORT_TRAP_ERR" = "yes" ] || [ "$FAIL_TRAP_ERR" = "yes" ]; then
- set -e
- set -E
- set -o pipefail
- trap "error_handler" ERR
-fi
+set -e
+set -E
+set -o pipefail
+trap "error_handler" ERR
# }}}
+bash -n /etc/debootstrap/config
# shellcheck source=config
. /etc/debootstrap/config || exit 1
+bash -n /etc/debootstrap/variables
# shellcheck source=tests/shellcheck-stub-debootstrap-variables
. /etc/debootstrap/variables || exit 1
# add security.debian.org:
case "$RELEASE" in
- unstable|sid) ;; # no security pool available
- jessie|stretch|buster)
+ unstable|sid|stretch) ;; # no security pool available
+ jessie|buster)
echo "Adding security.debian.org to sources.list."
echo "deb http://security.debian.org ${RELEASE}/updates $COMPONENTS" >> /etc/apt/sources.list
;;
$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"
+ case "$RELEASE" in
+ stretch)
+ echo "Installing busybox on Debian/$RELEASE as it's essential for the initramfs"
+ DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL busybox
+ ;;
+ esac
+
+ KERNELPACKAGES="linux-image-$KVER linux-headers-$KVER firmware-linux-free $INITRD_GENERATOR"
# only add firmware-linux if we have non-free as a component
if expr "$COMPONENTS" : '.*non-free' >/dev/null ; then
KERNELPACKAGES="$KERNELPACKAGES firmware-linux"
return 0
fi
- echo "Activating shadow passwords."
- shadowconfig on
-
CHPASSWD_OPTION=
if chpasswd --help 2>&1 | grep -q -- '-m,' ; then
CHPASSWD_OPTION='-m'
local rootfs_mount_options=""
if [ -z "${FILESYSTEM}" ] ; then
- FILESYSTEM="$(blkid -o value -s TYPE /dev/disk/by-uuid/"${TARGET_UUID}")"
+ FILESYSTEM="$(blkid -o value -s TYPE /dev/disk/by-uuid/"${TARGET_UUID}")" || true
fi
case "${FILESYSTEM}" in
fi
if [ -n "$EFI" ] ; then
- # shellcheck disable=SC2086
- echo "UUID=$(blkid -o value -s UUID $EFI) /boot/efi vfat umask=0077 0 1" >> /etc/fstab
+ UUID_EFI="$(blkid -o value -s UUID "$EFI")"
+ echo "UUID=$UUID_EFI /boot/efi vfat umask=0077 0 1" >> /etc/fstab
fi
cat >> /etc/fstab << EOF
if [ -n "$INITRD" ] ; then
echo "Generating initrd."
if [ "$INITRD_GENERATOR" = 'dracut' ] ; then
- DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL dracut
# shellcheck disable=SC2086
dracut --no-hostonly --kver "$KERNELVER" --fstab --add-fstab /etc/fstab --force --reproducible $INITRD_GENERATOR_OPTS
else
mkdir -p /boot/efi
echo "Mounting $EFI on /boot/efi"
- mount "$EFI" /boot/efi || return 1
+ mount "$EFI" /boot/efi
# if efivarfs kernel module is loaded, but efivars isn't,
# then we need to mount efivarfs for efibootmgr usage
fi
echo "Invoking efibootmgr"
- efibootmgr || return 1
+ efibootmgr
}
# grub configuration/installation {{{
return 0
fi
- efi_setup || return 1
+ efi_setup
if [ -n "$EFI" ] ; then
GRUB_PACKAGE=grub-efi-amd64
initrd grub_install passwords \
custom_scripts upgrade_system remove_apt_cache services \
remove_chrootmirror; do
- if stage $i ; then
- $i && stage $i 'done' || exit 1
+ if stage "$i" ; then
+ "$i"
+ stage "$i" 'done'
fi
done
# always execute the finalize stage: