the method above doesn't fully work, since even though grub doesn't pass the subvol= option to the kernel, it still tries to find kernel at full path, including the subvolume name. e.g. in /boot/grub/grub.cfg there are lines like: linux /@/boot/vmlinuz-5.13.0-20-generic
to make it work as easy as on OpenSuse i have made separate subvolume for /boot 1. in /etc/grub.d/10_linux i have removed (commented out) the lines: # case x"$GRUB_FS" in # xbtrfs) # rootsubvol="`make_system_path_relative_to_its_root /`" # rootsubvol="${rootsubvol#/}" # if [ "x${rootsubvol}" != x ]; then # GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}" # fi;; # xzfs) # # We have a more specialized ZFS handler, with multiple system in 10_linux_zfs. # if [ -e "`dirname $(readlink -f $0)`/10_linux_zfs" ]; then # exit 0 # fi # rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` # bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`" # LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}" # ;; # esac Though i could have commented out only the btrfs related path, but i don't use zfs anyway 2. Then mounted the btrfs root subvolume (subvolid=5 option) sudo mount -L sys -o subvolid=5 /mnt and created @boot subvolume there, and copied (cp -a) the boot directory from my previous boot. 3. created fstab record for the new boot: LABEL=sys /boot btrfs defaults,subvol=@boot 0 2 and mounted it mount -a mount /boot/efi 4. update-grub Now works fine even on top of luks. I have also created separate subvolume for /var/log but this is optional. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1734496 Title: snapper rollback does not work on ubuntu for btrfs To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/snapper/+bug/1734496/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs