Hi Dietrich,
ein Lösungsvorschlag:
- Unmittelbar nach der Installation das default Subvolumen festlegen.
- Die Datei /etc/grub.d/10_linux ändern.
- Den Bootmanager grub aktualisieren.
- Reboot.
So kannst du vorgehen:
1.Nach dem ersten Boot in das frisch auf btrfs installierte System die vorhandenen Subvolumen anzeigen lassen und das Subvolumen @ als default setzen.
root@lap1:/# btrfs subvolume list /
ID 256 gen 752 top level 5 path @
ID 257 gen 724 top level 5 path @snapshots
ID 258 gen 755 top level 5 path @home
ID 259 gen 755 top level 5 path @root
ID 260 gen 773 top level 5 path @var@log
ID 262 gen 69 top level 258 path @home/.snapshots
root@lap1:/# btrfs subvolume set-default 256 /
2.In der Datei /etc/grub.d/10_linux die Zeilen 85-90 auskommentieren.
Einen Editor mit ROOT-Rechten benutzen.
Vorhercase 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)
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
Nachhercase 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)
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
3.Grub aktualisieren.
root@lap1:/# update-grub
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/mow/theme.txt
Found linux image: /boot/vmlinuz-6.1.1-4-siduction-amd64
Found initrd image: /boot/initrd.img-6.1.1-4-siduction-amd64
Found memtest86+x64 image: /@/boot/memtest86+x64.bin
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Detecting snapshots ...
No snapshots found.
If you think an error has occurred , please file a bug report at " https://github.com/Antynea/grub-btrfs "
Unmount /tmp/grub-btrfs.lP3VjQ6pQj .. Success
done
root@lap1:/#
4.Reboot. Von nun an sollten die Snapshots und ggf. Rollback funktionieren.
Ich empfehle ausdrücklich die Rollback von dem default Subvolumen bzw. Snapshot aus zu machen.
Der Befehl lautet dann:
snapper --ambit classic rollback #
Wobei "#" die Nummer des gewünschten Snapshot ist.
Man muss berücksichtigen, dass nach einem Rollback auch die grub.cfk die des alten Snapshot ist und somit die neueren Snapshot, von dennen aus man den Rollback getätigt hat, nicht enthalten sind.
Das ist der Sinn des Rollback, den alten Zustand herstellen.
Erst ein weiterer Snapshot oder ein 'update-grub' im Rollback Ziel aktualisiert das dortige Grub-Menü.