i’ve instaled opensuse tumbleweed a bunch of times in the last few years, but i always used ext4 instead of btrfs because of previous bad experiences with it nearly a decade ago. every time, with no exceptions, the partition would crap itself into an irrecoverable state

this time around i figured that, since so many years had passed since i last tried btrfs, the filesystem would be in a more reliable state, so i decided to try it again on a new opensuse installation. already, right after installation, os-prober failed to setup opensuse’s entry in grub, but maybe that’s on me, since my main system is debian (turns out the problem was due to btrfs snapshots)

anyway, after a little more than a week, the partition turned read-only in the middle of a large compilation and then, after i rebooted, the partition died and was irrecoverable. could be due to some bad block or read failure from the hdd (it is supposedly brand new, but i guess it could be busted), but shit like this never happens to me on extfs, even if the hdd is literally dying. also, i have an ext4 and an ufs partition in the same hdd without any issues.

even if we suppose this is the hardware’s fault and not btrfs’s, should a file system be a little bit more resilient than that? at this rate, i feel like a cosmic ray could set off a btrfs corruption. i hear people claim all the time how mature btrfs is and that it no longer makes sense to create new ext4 partitions, but either i’m extremely unlucky with btrfs or the system is in fucking perpetual beta state and it will never change because it is just good enough for companies who can just, in the case of a partition failure, can just quickly switch the old hdd for a new one and copy the nightly backup over to it

in any case, i am never going to touch btrfs ever again and i’m always going to advise people to choose ext4 instead of btrfs

  • @ReversalHatchery@beehaw.org
    link
    fedilink
    English
    5
    edit-2
    7 days ago

    being able to revert a failed upgrade by restoring a snapshot is not a power user need but a very basic feature for everyday users who do not want to debug every little problem that can go wrong, but just want to use their computer.

    ext4 does not allow that.

    • Yozul
      link
      fedilink
      25 days ago

      You know file systems are not the only way to do that, right? Heck, Timeshift is explicitly designed to do that easily and automatically without ever even having to look at a command line. Backup before upgrade is a weird thing to cram into a file system.

      • @ReversalHatchery@beehaw.org
        link
        fedilink
        English
        15 days ago

        Timeshift is explicitly designed to do that easily and automatically

        by consuming much more space. but you’re right, I did not think about it

        Backup before upgrade is a weird thing to cram into a file system.

        I agree, but these are not really backups, but snapshots, which are stored more efficiently, without duplicating data. of course it does not replace an off site backup, but I think it has its use cases.

    • @Unmapped@lemmy.ml
      link
      fedilink
      26 days ago

      By using NixOS I can do this on ext4. Just reboot back to the previous image before the update. Not saying everyday users should be running nixos but there are other Immutable distros that can do the same.

      • @ReversalHatchery@beehaw.org
        link
        fedilink
        English
        25 days ago

        will that also restore your data? what happens when a program updates its database structure with the update, and the old version you restore won’t understand it anymore?

        • @Unmapped@lemmy.ml
          link
          fedilink
          25 days ago

          That is a good point. I’ve only had to rollback twice and nether time had any issues. But from my understanding of how it works, you are correct, the data wouldn’t rollback.

          • @ReversalHatchery@beehaw.org
            link
            fedilink
            English
            25 days ago

            I’ve learned this lesson with my Android phone a few years ago. There it was actually about sqlite databases of a system app (contacts I think?), but this can happen with other formats too. Worst is if it doesn’t just error out, but tries to work with “garbage”, because it’ll possibly take much more time to debug it, or even realize that your data is corrupt.