I would like to know what differences between “Manjaro Immutable” and “Snapper or Timeshift with BTRFS”?
What are the advantages and disadvantages between the two?
I would like to know what differences between “Manjaro Immutable” and “Snapper or Timeshift with BTRFS”?
What are the advantages and disadvantages between the two?
Immutable doesn’t let you change things. Think of a live thumb drive. I don’t know how updates will work, no.
The Timeshift snapshots are just that. Snapsots of the state of the computer as it is. But you can change things on your computer and the snapshots won’t change. For that a new snapshot is required. You get Timeshift snapshots that don’t use BTRFS. I use 'em myself.
BTRFS snapshots, well, I don’t know.
Immutable distributions do not have be actually read only, and often aren’t. Just when your reboot, your changes are usually gone. And these systems have a very specific purpose.
Snapshots and CoW filesystems are just another tool. Which could even be used to achieve the above, but have so many other purposes.
Manjaro Immutable is a locked-down system in which you can install additional software only as Snaps or FlatPaks. The system is updated by installing a newer filesystem image – essentially a btrfs
snapshot. Updating or installing via pacman
is disabled.
timeshift
is a system restore utility that lets you create rsync
backups — preferably on a separate filesystem — or btrfs
snapshots. snapper
is a tool that allows you to easily create and manipulate/organize your snapshots.
I briefly played arkdep
in Manjaro “Immutable” KVM a few days ago, it uses a different Btrfs layout than Timeshift and Snapper.
I don’t think Manjaro “Immutable” is truly immutable, but if you use Pacman to install any program, it or some tool changes the read-only system to a writable system.
Pros:
It prevents Dependency Hell in Arch nature, especially if you don’t update your system for over a year. For example, KDE has many changing dependencies, and you can’t easily upgrade to a major version after 2 years. Arkdep allows you to download a new, fixed KDE image version and immediately deploy it to a new Btrfs layer. You can boot to this new Btrfs layer without re-installing the distro.
It uses Systemd-boot, You can boot into multiple different system versions, such as Stable branch, Testing branch, Unstable branch, or even KDE, Gnome, and more.
Cons:
Your installed Pacman packages and configurations from an older system version are gone in new system version, as the two systems are stored in separate Btrfs layers.
However, there is a trick: Flatpak apps are shared across different system versions.
There are some concerns about Flatpak packages being less trustworthy than Pacman and AUR packages (AUR PKGBUILD is transparent and allows anyone to review source code and track changes).
Different system versions, such as KDE, Gnome, and Xfce, they re-use the same home directory, which can lead to home configuration mess.
Arkdep is designed to protect the system, not your home directory.
Think about that your personal data in Home directory might be more important than the system itself. You can re-install or fix the system, but you can not fix your personal data without backup.
Pros:
Cons:
Don’t use Timeshift alongside Arkdep. Using both together can break your system. I can imagine many beginners trying to combine Timeshift with Arkdep, which would be a disaster.
Inflexible in comparison to Snapper.
There are some known critical issues that are not fixed yet.
It cannot handle Dependency Hell if you don’t update your system for over a year, but Arkdep can
Pros:
Cons:
Not ideal for beginners without technical knowledge (However, Btrfs-assistant might help them).
It cannot handle Dependency Hell if you don’t update your system for over a year, but Arkdep can.
I see, your comparison between Arkdep, Snapper and Timeshift is clear. Thanks!
That said, Manjaro Arkdep seems to have a huge advantage for inactive users. Right?
What’s surprising is that Manjaro Arkdep’s system isn’t really immutable.
Has anyone had experience with other good immutable distros?
Kind of? It would get around people that do not update their system very often, to the point there’s too many changes to do it in one upgrade command. (But it still would need updating just the same.)
The quintessential example for an immutable OS, are for public terminals. But often for certain staff, students, etc. Every time you start it up, it is a clean and up to date install.
The immutable has a few benefits over snapshots;
Immutable distros have a very specific audience, these systems are ideal for people who want their machine to just work.
If you are someone who likes to tweak their system and install random packages galore, an immutable is indeed not the right system for you, a traditional distro would serve you better.
If it is not immutable it is not an immutabl. Even if it matches functionality on every other front. it would be a “normal” distro with atomic updates.
On most immutables changes on the root filesystem are kept between reboots. I believe Nix to be the primary exception here.
You can still run Pacman like normal. Upon running it, it will offer to unlock the rootfs. After which you basically have a normal Manjaro install as long as you do not update anymore with Arkdep.
Good feedback, this sparked a discussion in dev chat.
No daily drivable immutable is truly immutable.
All immutables I am aware of perform lots of hackyness under the hood and perform plenty of ugly non-immutable and non-atomic actions. Immutables are very hacky.
I’m sad as I loved the Arch repo and actually have and always use BTRFS + timeshift and even able to restore at boot from GRUB which I think is such an amazing option only seen in Apple and working waaaay better than M$ terrible implementation but that’s my experience. Sad to see such a change instead of informing users that BTRFS snapshots are robust and instant, oh well…
As of now ‘immutable’ is not replacing OG manjaro.
The repos and regular ISOs will still be available.
You can keep using the same system you have been using.
It’s not a change; it’s an addition to the existing range of options.
My answer to my question is that I found OpenSUSE MicroOS to be the best immutable distro for minimal maintenance or even for going without updates for a long time, with easy rollback if something goes wrong.
Manjaro and many Arch Linux distros require updates too frequently at shorter intervals. Am I wrong?
No not necessarily - it depends on your use case
That depends on your skill level.
With Arch based distributions - in this case Manjaro Linux - the system is a mirror of a subset of the available binary packages.
The vast majority of these binary packages is continually build by Arch Linux and regularly imported into Manjaro unstable branch.
When you sync your system you get the new versions of those binary packages which replaces those you were using before the sync.
Using a lot of custom packages decreases the stablity of your system because you add unknown and untested factors into the know package pool.
There may be flaws in my understanding and attempt to explain - take as is.
With the new immutable - you get the core system which becomes a layer - a foundation - and your apps is another layer - separated from the core foundation.
When you update immutable - you get a complete core system as a compressed file.
This file is a btrfs filesystem which is then unpacked and imported to your local filesystem by the update process - and when you reboot - you have new core.
How often you want to do that is up to you.
Any point release type of Linux distribution will also have a longer update cycle; perhaps 6-monthly, or even yearly. This is normal.
Arch (and derivatives) are so-called rolling release distributions which effectively push an update as soon as it’s ready, so in that sense, yes, the update intervals are shorter (as they must be).
A rolling release distribution therefore requires frequent updates – by design – and this must be accepted if you choose an OS like Arch or Manjaro.
Further to this, Manjaro should be kept updated according to this rolling update schedule, else it will quickly become out of sync in comparison; an unsupported state.
Manjaro Immutable is fundamentally different from this.
I just had a look at MicroOS; it seems nothing like Manjaro Immutable. The purpose appears to be for hosting containers (such as docker images, for example).
It’s not designed as a desktop OS, and ‘immutable’ is used in their blurb only to describe how BTRFS
snapshots work with the system, as far as I can see.
Of course, I suppose there’s fundamentally no reason why you couldn’t use the OS as a desktop (application support might be an issue).
I have never tried MicroOS myself, but I believe it uses snapper
by default, since snapper
is officially developed by OpenSUSE.
However, you can use snapper
and snap-pac
on any Arch-based distro to create a read-only Btrfs snapshot as an immutable system layer before performing system updates.
Bootloaders such as grub-btrfs
or limine-snapper-sync
let you to boot from any immutable system version (snapshot) of your choice if an update fails.
That means that using snapper
and some bootloader with an Arch based distro provides a similar immutable system setup.
From a technical perspective, I don’t see much difference between Arch distro with snapper and openSUSE MicroOS.
This is not entirely accurate. The update strategies of Manjaro and Arch Linux are not the same.
Manjaro requires users to update frequently to prevent dependency issues,
while Arch Linux doesn’t have this limitation due to the integration of a daily snapshot feature in its official Arch repository for many years. This allows Arch users to update their installed packages incrementally over time.
For example, you can update step by step from 2022-01-01 to 2022-06-01 to 2023-01-01 … without needing to do a full update from the beginning of 2022 to the present.
Each snapshot in the official Arch repository is immutable, allowing you to sync your system with a specific snapshot repo of your choice.
In contrast, Manjaro doesn’t offer this level of flexibility, aas it only has 3 branches. To avoid dependency issues, Manjaro relies on tools like Arkdep.
I wasn’t aware of that distinction. Thanks.
That surprises me, given the built-in immutable snapshot functionality in the Arch repo.
I didn’t realize it was possible to do incremental updates in Arch without doing a full system update all at once??
Where can I find more info about this?
The Arch Wiki might be a good place to start.
Cheers.
man pacman.conf
The Arch Linux archive is NOT created to maintain systems at a given package level.
It is a historial archive not a maintenance hub.
//EDIT - I accidently left out the word not - corrected my mistake.
Alright, I couldn’t find any clear info about incremental updates. Where is the evidence for this?
Even ChatGPT stated that Arch’s rolling release model doesn’t support incremental updates – only full updates all at once.