Hello, so for context my system is current booting on a snapper snapshot entry and I want to delete this entry to free up some space, to do that I need to change the boot back to root
btrfs subvolume list:
ID 256 gen 449029 top level 5 path home
ID 257 gen 448679 top level 5 path root
ID 258 gen 448675 top level 257 path root/var/lib/machines
ID 260 gen 448727 top level 5 path snapshots
ID 573 gen 449029 top level 260 path snapshots/157/snapshot
and so I run this command sudo grubby --update-kernel=ALL --args="rootflags=subvol=root"
and sudo btrfs subvolume set-default 257 /
to change the default btrfs subvolume to root.
Turns out this bricked my system and cannot boot with bunch of errors in the image:
this text captured with Google Lens. See the image for the accurate one
Reloading system manager configuration.
Starting default.target
[FAILED] Failed to mount boot-efi.mount /boot/efi.
Dependency falled for local-fs.target Local File Systems.
[FAILED] Dependency failed for selinux-autorelabel-mark.service - Mark the need to relabel after reboot. ]
[Failed] Failed to mount var-lib-nfs-rpc_pipefs.mount RPC Pipe File System.
1 Dependency failed for rpc-gssd.service - RPC security service for NFS client and server.
1 Dependency failed for rpc_pipefs.target.
[FAILED] Failed to mount var-11b-snapd-snap-bare-5.mount Mount unit for bare, revision 5. ) Failed to mount var-lib-snapd-snap-core22-1621.mount Mount unit for core22, revision 1621.
[Failed] Failed to mount var-lib-snapd-snap-cups-1858.mount Mount unit for cups, revision 1858.
[FAILED] Failed to mount var-lib-snapd-snap-gnome\x2d42x242284-176.mount - Mount unit for gnome-42-2284, revision 176. ] Failed to mount car-lib-snapd-snap-gtk2dcommon\2dthemes-1535.mount - Mount unit for gtk-common-themes, revision 1535.
[FAILED] Failed to mount var-lib-snapd-snap-simplex2dscan-798.Mount Mount unit for simple-scan, revision 798 ] Failed to mount var-lib-snapd-snap-snapd-21759.mount Mount unit for snapd, revision 21759.
[FAILED] Failed to mount proc-sys-fs-binfmt misc.mount - Arbitrary Executable File Formats File System.
[FAILED] Failed to start systemd-binfmt.service Set Up Additional Binary Formats. are in emergency mode. After logging in, type "journalct1 -xb" to view
You system logs, "systemctl
I managed to get my system boot again after reverting the changes I made with live USB chroot by removing args in grubby sudo grubby --update-kernel=ALL --remove-args="rootflags=subvol=root"
and btrfs default subvolume back to snapshot.
However I noticed the error popping back up after a kernel update and those rootflags=subvol=root args is back on the grubby default one and I have to go back to live USB and remove it again. Now if I have to do this every single time after kernel update it would be painful and since Im still on Fedora 41, Im afraid I will have a problem upgrading to Fedora 42 after 41 EOS. So how do I resolve the root do not want to boot or at the very least make grubby not putting the args back every kernel update. Also I have to inform that this system is halftop (means the laptop main display is dead only external one) so I cannot see GRUB menu or BIOS menu during bootup.
.snapshots/157/etc/fstab entries
#
# /etc/fstab
# Created by anaconda on Sun Oct 6 01:49:30 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=a1b0772d-58ee-4479-8bf5-8c1ffd54045a / btrfs subvol=root,compress=zstd:1 0 0
UUID=23873106-1d0f-4073-a229-825f81e65493 /boot ext4 defaults 1 2
UUID=3D9A-8671 /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID=a1b0772d-58ee-4479-8bf5-8c1ffd54045a /home btrfs subvol=home,compress=zstd:1 0 0
UUID=a1b0772d-58ee-4479-8bf5-8c1ffd54045a /.snapshots btrfs subvol=snapshots,compress=zstd:1 0 0
/etc/fstab entries
#
# /etc/fstab
# Created by anaconda on Sun Oct 6 01:49:30 2024
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=a1b0772d-58ee-4479-8bf5-8c1ffd54045a / btrfs subvol=root,compress=zstd:1 0 0
UUID=23873106-1d0f-4073-a229-825f81e65493 /boot ext4 defaults 1 2
UUID=3D9A-8671 /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID=a1b0772d-58ee-4479-8bf5-8c1ffd54045a /home btrfs subvol=home,compress=zstd:1 0 0
UUID=a1b0772d-58ee-4479-8bf5-8c1ffd54045a /.snapshots btrfs subvol=snapshots,compress=zstd:1 0 0
/etc/default/grub. I think this contains the problem why grub keep putting those args back
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="rhgb quiet rd.driver.blacklist=nouveau,nova_core modprobe.blacklist=nouveau,nova_core rootflags=subvol=root"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true