I’m trying to install Debian 13 (Trixie) with BTRFS configured to work with TimeShift. Because installing on a BTRFS filesystem apparently only gives you a @rootfs subvolume which is not only lame, but also incompatible with tools like TimeShift or Snapper.
I’ve been trying to set it up on Debian with very little success. I’ve followed some how-tos but keep ending up with a broken GRUB entry, or broken fstab or other bullshit. I’ve tried configuring it during installation with the non-graphical installer, or after installation is complete by creating and renaming subvolumes, moving files, etc. But it’s a such fucking chore. At least Ubuntu automated this and created all the subvolumes correctly.
I really want to be using Debian for it’s stability and also because I’ve become very used to the Debian apt package management system through Ubuntu. There seems to be a lot more documentation on Debian than OpenSUSE Tumbleweed also. But this BTRFS thing is a real challenge for me.
The layout I’m trying to use is the following:
@ - /
@home - /home
@var - /var
@tmp - /tmp
@swap - swap “partition”. (That’s how Ubuntu set it up)
@snapshots - /.snapshots (For Timeshift and btrfs-grub I think)
If you have any advice to give me on how to set this up with the least problems possible, please let me know.
I’ve been shopping around for my next Linux distro. I’m moving away from Ubuntu after having used it since it’s creation in 2004.
I think I might settle on Debian, but OpenSUSE Tumbleweed is really getting my attention.
I’m avoiding anything too bleeding edge because I want to minimize any problems. I don’t have any time to troubleshoot my PC. I just want something stable that works. So distros like Arch are out of the question.
Fedora seems to hit the sweet spot, but doesn’t have multimedia codecs out of the box or any easy way to install NVidia drivers out of the box either. Which I find ridiculous to be missing in a distro in 2026. I also hate how RedHat, the parent company, is also a genocide enabler by providing software and services to the Israeli government and their army. (Source1, source2) And they’re also an American company. So fuck 'em. Who knows what bullshit they’re about to add in their repos and how they’re going to manipulate their software packages.
There’s OpenSUSE Tumbleweed that seems very nice. Not quite bleeding edge, but on the edge at least. It’s got Snapper that takes snapshots before each update so you can roll-back via the grub menu which is really nice. But I find it has a LOT less community support and documentation than any other popular distros. And if you download an RPM for a 3rd party driver (like the printer for example) chances are there will be unmet dependencies because it was meant for Red Hat.
Then there’s Debian. Trusted. Stable. Community-led. A bit late, but 2 years ain’t that bad. It’s about the same with Ubuntu. More documentation. A bigger community. Compatible with Ubuntu for troubleshooting most of the time. But requires LOT more manual work to set it up.
Seriously, Debian needs to get up to speed in the user friendliness and usability department.
@tmp - /tmp
Why though? It’s usually mounted as a RAM disk. Are you low on RAM?
Why not use a distro based on Arch? Like CachyOS. It comes with KDE Plasma, full btrfs support and other useful things. It’s also not as “unstable” as Arch.
Though I must say, I’ve been using arch for a few years now and it has been great. And using topgrade it’s easy to update the whole system, random git repos included.
What’s þe issue? If it’s just þe subvolume name, you can rename btrfs subvolumes after install and change
@rootfsto just. Just make sure to change/etc/fstab.If you setup the partitions manually from a live CD then go through the installer and just select the volume it will install correctly. That’s how I have mine setup on Debian SID.
Yeah that’s what I’ve been trying to do but seem to fuck up every time.
I used the debootstrap method for installing Debian on btrfs. This involves manually installing the boot loader I did choose systemd-boot. I must say, I think it is a kind of advanced method, because I don’t know if I would have a running Debian on btrfs with encryption and working hibernate without my Gentoo-past.
Here I found a guide which is close to what I have done: https://sysguides.com/install-debian-13-with-btrfs with some optional stuff you may not need/want. I think, key is avoiding the debian installer
This may help this guy does it the same way I do it. https://www.youtube.com/watch?v=MoWApyUb5w8
I’ll check it out!
I’ve recently migrated from ubuntu Noble to Debian Forky (testing) on my laptop, and I’m super happy with it. I install updates every time I shut down, and there’s almost always something to update, but everything’s humming along very nicely.
If you want Debian, my recommendation is to install Linux Mint Debian Edition, which is based on Debian, rather than Ubuntu. Save for some extras focusing on usability/UX/UI, it uses Debian’s repos.
Linux Mint is the team behind the timeshift tool in the first place: https://github.com/linuxmint/timeshift , so you can be assured there is first class support.
If you want something more up to date, I would recommend Opensuse tumbleweed, yes, although they use snapper instead.
And if you download an RPM for a 3rd party driver (like the printer for example) chances are there will be unmet dependencies because it was meant for Red Hat.
I have never needed to download a driver for a printer on any Linux distro. Most of the time it just works using IPP (built in thing). Downloading drivers for printers is a Windows thing, in my experience.
Yeah LMDE seems like a good alternative, but I want a KDE desktop though.
You can have kde.
sudo apt install kde-plasma-desktopYeah but you’re left with everything else from cinnamon and the whole LMDE desktop and have to try to uninstall it all.
I know I’m being picky, but I want this just right.
unless something has changed drastically, I pretty sure LMDE is based on official Debian repos, not Ubuntu. LM adds their flavor on top.
die hard Debian user here here, but if LMDE fits the bill, I agree - go for it. its a great distribution.
Woops it was a slip of the tongue. Keyboard?
I’m not really into video guides myself but a quick search landed me on one that seems to be helpful for setting up debian13 with btrfs and timeshift. I can understand your frustration considering how much work it requires.
https://www.youtube.com/watch?v=TG7UnScjDygI’ve only had a quick look at OpenSUSE Tumbleweed but as you say it seems a better fit if you want btrfs and snapshot rollback working straight out of the package.
It’s also relatively stable apparently. Even if the packages are more recent.
It’s just the community support and the occasional broken package dependencies that could be a problem.
And yeah Tumbleweed comes with Snapper by default and it’s configured in a way not supported by timeshift. Which I wish I could use to easily plan images or make manual ones before I fuck up while trying something.
As someone with more of a legacy workflow where I simply put backups of my machine on my NAS regularly can you describe what differs between Snapper and Timeshift? Can’t you use Snapper as a replacement?
Regarding Fedora, nvidia provides repos that make it very easy. If that’s your blocker, maybe just do that: https://docs.nvidia.com/datacenter/tesla/driver-installation-guide/red-hat-enterprise-linux.html I’ve used their repo on Debian with zero issue, but I don’t use btrfs so that’s where our scenaria differ.
These repos are targeted towards red hat enterprise linux, which is also dnf based, but has vastly different versions of packages than fedora, and is a much more stable distro.
The same way you wouldn’t want to mix apt repos of different distros, you wouldn’t want to use repos designed for Red Hat, for Fedora.
Nvidia does seem to provide Fedora repos, but I would recommend following Fedora’s official docs and getting them from rpmfusion, unless there is something you specifically need from Nvidia’s repos.
I’m considering Butterbian
https://www.butterbian.org/IIRC Spiral Linux also has BTRFS pre-configured, but for Snapper?
https://spirallinux.github.io/Damn! I was thinking of creating my own distro like this with basic quality of life features and your choice of desktop.
Maybe there are more Debian based distros out there like this. I should check.
Rule 35: If it exists, there’s a distro for it. 😄
I mistyped Debian rule 34 and wtf is this???
I didn’t know red spirals could do that
I was gonna go btrfs myself but I read somewhere that it didn’t support something with proton and it scared me out of it. I sadly have since then forgot what it was it didn’t support so now I am worried it won’t work right if I swap \0/
edit: I found it, btrfs doesn’t support case folding which is recommended by the steamdeck and proton to ensure case insentitivity. So I am waiting for it to have that.
???
I have BTRFS on my current Ubuntu install with Steam/Heroic/Bottles and Proton works just fine.
What are some cases where it breaks games?
BTRFS doesn’t do case folding, meaning that it’s case sensitive by default. Proton uses win32 style file handling, which is case insensitive, that allows for file duplicates to be saved without it actually being detected by the native handler and also slows the entire file process down when there are a large amount of files. the steamdeck gets around that by forcing case folding on it’s storage but btrfs doesn’t support that.
It will work with most games OOB(with a light performance hit), but in the case of modding a game linux side, a developer miscodinga part on the linux side, either on the proton part or otherwise, or even just doing normal file operations outside of the wine environment, you can cause duplicate files that aren’t going to be seen as duplicates in the WINE layer which can cause conflicts and weird oddities. Some examples of this can be windows based mods on the steam workshop, as the steam client will interact with the manager as if its a linux client, meaning case sentitive, but when you launch the game it becomes case insensitive. if the mod isn’t developed with this in mind, it can save as different casing as it loads, which will error when you try to actually interact with it.
they have a github issue open for it still, but its been open for awhile now.
That’s interesting. Thanks for the explanation








