Похоже на то, что #archlinux не умеет работать с откатами #snapper .
В /etc/grub.d/10_linux захардкожено прописывать подтом для корня, хотя снаппер предполагает что будет монтироваться подтом выставленный им как подтом по умолчанию при откате.
Пока выпилил проблемный кусок кода. Думаю поныть на форуме да в багтрекере.
На арч форумах везде рекомендуют вручную делать откаты, но снаппер-то удобнее!
Пока вот так починил /etc/grub.d/10_linux:
case x"$GRUB_FS" in
xbtrfs)
rootsubvol="`make_system_path_relative_to_its_root /`"
rootsubvol="${rootsubvol#/}"
# Use default subvolume in case of snapper's rollback is used
if [ "x${rootsubvol##*/}" != xsnapshot ] && [ "x${rootsubvol}" != x ]; then
GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
fi;;
xzfs)
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
Если обнаруженный подтом корня заканчивается на /snapshot, то не добавляем параметры ядра с ним.
Пока вот так починил /etc/grub.d/10_linux:
case x"$GRUB_FS" in
xbtrfs)
rootsubvol="`make_system_path_relative_to_its_root /`"
rootsubvol="${rootsubvol#/}"
# Use default subvolume in case of snapper's rollback is used
if [ "x${rootsubvol##*/}" != xsnapshot ] && [ "x${rootsubvol}" != x ]; then
GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
fi;;
xzfs)
rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
bootfs="`make_system_path_relative_to_its_root...