Merge remote-tracking branch 'origin/pr/196'
authorMichael Prokop <mika@grml.org>
Fri, 25 Nov 2022 13:33:35 +0000 (14:33 +0100)
committerMichael Prokop <mika@grml.org>
Fri, 25 Nov 2022 13:33:35 +0000 (14:33 +0100)
1  2 
chroot-script

diff --combined chroot-script
@@@ -479,16 -479,11 +479,16 @@@ createfstab()
  EOF
  
    if [ -n "$TARGET_UUID" ] ; then
 -    local rootfs_mount_options=",errors=remount-ro"
 +    local rootfs_mount_options=""
 +
 +    if [ -z "${FILESYSTEM}" ] ; then
 +      FILESYSTEM="$(blkid -o value -s TYPE /dev/disk/by-uuid/"${TARGET_UUID}")"
 +    fi
 +
      case "${FILESYSTEM}" in
 -      f2fs)
 -        # errors=remount-ro is unsupported, see https://github.com/grml/grml-debootstrap/issues/163
 -        rootfs_mount_options=""
 +      # errors=remount-ro is supported only by a few file systems
 +      ext*|exfat|fat|jfs|nilfs2|vfat)
 +        rootfs_mount_options=",errors=remount-ro"
          ;;
      esac
  
@@@ -530,28 -525,6 +530,28 @@@ fstab() 
  }
  # }}}
  
 +# ensure we have according filesystem tools available {{{
 +install_fs_tools() {
 +  local pkg=""
 +
 +  # note: this is supposed to be coming either via command lines'
 +  # $_opt_filesystem or via createfstab()
 +  case "${FILESYSTEM}" in
 +    jfs)
 +      pkg="jfsutils"
 +      ;;
 +    xfs)
 +      pkg="xfsprogs"
 +      ;;
 +  esac
 +
 +  if [ -n "${pkg:-}" ] && ! dpkg --list "${pkg}" 2>/dev/null | grep -q '^ii' ; then
 +    echo "Filesystem package ${pkg} not present, installing now"
 +    DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL "${pkg}"
 +  fi
 +}
 +# }}}
 +
  # set up hostname {{{
  hostname() {
    if [ -n "$HOSTNAME" ] ; then
@@@ -601,7 -574,12 +601,12 @@@ initrd() 
    # generate initrd
    if [ -n "$INITRD" ] ; then
       echo "Generating initrd."
-      update-initramfs -c -t -k "$KERNELVER"
+      if [ "$INITRD_GENERATOR" = 'dracut' ] ; then
+          DEBIAN_FRONTEND=$DEBIAN_FRONTEND $APTINSTALL dracut
+          dracut --no-hostonly --kver "$KERNELVER" --fstab --add-fstab /etc/fstab --force --reproducible $INITRD_GENERATOR_OPTS
+      else
+          update-initramfs -c -t -k "$KERNELVER" $INITRD_GENERATOR_OPTS
+      fi
    fi
  }
  # }}}
@@@ -773,8 -751,7 +778,8 @@@ trap signal_handler HUP INT QUIT TER
  
   for i in chrootmirror grmlrepos backportrepos kernelimg_conf \
       kernel packages extrapackages reconfigure hosts \
 -     default_locales timezone fstab hostname initrd grub_install passwords \
 +     default_locales timezone fstab install_fs_tools hostname \
 +     initrd grub_install passwords \
       custom_scripts upgrade_system remove_apt_cache services \
       remove_chrootmirror; do
       if stage $i ; then