X-Git-Url: https://git.grml.org/?p=grml-debootstrap.git;a=blobdiff_plain;f=chroot-script;h=e59b829a175896046fbf03f676e3e26029e0548d;hp=3544d5c240d6953c9d56ebb50ac5600db1546b2a;hb=b1008a63920208df5814d8c10543f1a7032187da;hpb=52c01f74a2f5c52d17cffdd6cddf042553f3eba0 diff --git a/chroot-script b/chroot-script index 3544d5c..e59b829 100755 --- a/chroot-script +++ b/chroot-script @@ -75,8 +75,8 @@ askpass() { # 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 @@ -129,8 +129,8 @@ chrootmirror() { # 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 @@ -470,8 +470,26 @@ timezone() { # helper function for fstab() {{{ createfstab(){ echo "Setting up /etc/fstab" + cat > /etc/fstab < /etc/fstab + local rootfs_mount_options=",errors=remount-ro" + case "${FILESYSTEM}" in + f2fs) + # errors=remount-ro is unsupported, see https://github.com/grml/grml-debootstrap/issues/163 + rootfs_mount_options="" + ;; + esac + + echo "/dev/disk/by-uuid/${TARGET_UUID} / auto defaults${rootfs_mount_options} 0 1" >> /etc/fstab else echo "Warning: couldn't identify target UUID for rootfs, your /etc/fstab might be incomplete." fi @@ -577,6 +595,13 @@ efi_setup() { 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 } @@ -658,6 +683,11 @@ grub_install() { return 1 fi + if [ -n "${BOOT_APPEND}" ] ; then + echo "Adding BOOT_APPEND configuration ['${BOOT_APPEND}'] to /etc/default/grub." + sed -i "/GRUB_CMDLINE_LINUX_DEFAULT/ s#\"\$# ${BOOT_APPEND}\"#" /etc/default/grub + fi + mountpoint /boot/efi &>/dev/null && umount /boot/efi $UPDATEGRUB @@ -692,6 +722,8 @@ finalize() { [ -n "$POLICYRCD" ] && rm -f /usr/sbin/policy-rc.d + umount /sys/firmware/efi/efivars &>/dev/null || true + umount /sys >/dev/null 2>/dev/null || true umount /proc >/dev/null 2>/dev/null || true }