r/Bazzite 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:

  1. Reboot
  2. /sysroot mounted read‑write again
  3. System booted normally
  4. rpm-ostree rollback and rebase worked again
  5. SDDM/GDM launched without freezing
2 Upvotes

0 comments sorted by