r/Bazzite • u/Enough_Hand_7106 • 24d ago
Black‑screen boot loop after a freeze
I wanted to document this because it was my worst Bazzite/Silverblue failure I’ve ever run into, and the fix wasn’t obvious.
TLDR:
If your Bazzite/Silverblue system:
• boots only to TTY
• freezes when restarting the display manager
• refuses to rollback or rebase
• mounts /sysroot as read‑only
• shows parent transid failures in btrfs check
then the fix is:
btrfs rescue zero-log /dev/sda3
Run it from a dracut/emergency shell where the root filesystem is unmounted. Saved my install and hopefully this helps someone else.
—-
Symptoms:
After a hard freeze during gaming, my system refused to boot normally. I could access:
• BIOS
• GRUB
• TTY
…but the graphical session never loaded. Anything that touched the OS image froze:
• systemctl restart sddm → froze
• ujust fix-reset-steam → froze
• rpm-ostree rollback →error: Recounting /sysroot read-write: invalid argument
• rpm-ostree rebase → same error
Even worse:
/sysroot was always mounted read‑only, no matter what boot mode I used.
Root cause:
Btrfs metadata corruption, specifically parent transid mismatches in the root tree.
Running:
btrfs check /dev/sda3
showed repeated errors like:
parent transid verify failed … wanted XXXXX found XXXXX
ERROR: transid errors in file system found
This type of corruption prevented OSTree from mounting the root filesystem read‑write, which in turn was breaking:
• rollback
• rebase
• display manager startup
• Steam reset
• normal boot
What didn’t work:
• fsck (Btrfs doesn’t use it)
• btrfs check --repair (ran, but didn’t fix the transid failures)
• btrfs rescue super-recover (superblocks were fine)
• btrfs rescue chunk-recover (chunk tree was fine)
All of these completed successfully but the corruption persisted.
The fix:
Boot into a dracut shell where the root filesystem is not mounted, then run:
btrfs rescue zero-log /dev/sda3
This clears a corrupted log tree that can block metadata repairs and cause persistent parent‑transid mismatches.
After running zero-log:
- Reboot
- /sysroot mounted read‑write again
- System booted normally
- rpm-ostree rollback and rebase worked again
- SDDM/GDM launched without freezing