diff --git a/install-zfs.backports.sh b/install-zfs.backports.sh index 03c69f9..fb8749c 100755 --- a/install-zfs.backports.sh +++ b/install-zfs.backports.sh @@ -1211,6 +1211,9 @@ function create_pools_and_datasets { # BOOT POOL CREATION ################# + # We can't create the datasets with the old procedure; on boot, the `bpool` dataset is attempted to be mounted. + # Possibly, this can be fixed in configure_boot_pool_import()->ExecStart. + zpool create \ "${v_bpool_create_options[@]}" \ -O mountpoint=/boot -R "$c_zfs_mount_dir" -f \ diff --git a/install-zfs.sh b/install-zfs.sh index 475583e..8d74bcd 100755 --- a/install-zfs.sh +++ b/install-zfs.sh @@ -1385,6 +1385,11 @@ function prepare_fstab { local mountpoint=/boot/efi$((i + 1)) fi + # Wait for /boot to be mounted before mounting the EFI partitions; we use the services as dependency + # rather than a mount (`requires-mounts-for`) because the `/boot` path may exist but still not mounted. + # It's important to give a long enough timeout time; on relatively slow machines (e.g. virtual machines), + # a timeout of 1 will fail. + # chroot_execute "echo /dev/disk/by-uuid/$(blkid -s UUID -o value "${v_selected_disks[i]}"-part1) $mountpoint vfat nofail,x-systemd.requires=zfs-mount.service,x-systemd.device-timeout=10 0 0 >> /etc/fstab" done