this post was submitted on 06 Oct 2024
47 points (94.3% liked)

Linux

48008 readers
1278 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Hi everyone,

I’ve been a happy user of Fedora Workstation since Fedora 36 on my Surface Go 1.

I really enjoy Gnome and everything is set up the way I want to.

Since I was really happy with my setup I just wanted to be able to replicate it easily through Clonezilla so that I could port it on any future computer I’d get.

Sadly, even with the help of really helpful and knowledgeable users on Lemmy, it hasn’t worked (https://sh.itjust.works/post/25963065).

So now I’m left wondering if there could be a distribution that I’d enjoy and which would be easy to deploy on another computer as I’d hate to have to configure everything on every computer I’d get.

I love Gnome but I wouldn’t be against trying something else if necessary.

What distribution could meet my needs?

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 44 points 4 weeks ago (2 children)

NixOS. A big learning curve but replicable.

[–] [email protected] 4 points 4 weeks ago

++. Yes, and not your standard Linux distro in design, never mind the hurdle of understanding Nix expressions and functional programming language. However, once tweaked, deployment on multiple machines is straightforward.

[–] [email protected] 2 points 4 weeks ago (2 children)

replicable.

As someone who spent time in OS Build/Relmgmt before security, I have a pressing desire to play the "how do you know" game, here.

[–] [email protected] 3 points 4 weeks ago

Because the only way to have a functioning NixOS system is to have it be reproducible. That's the only way it works; Nix is reproducible by design.

The ability to reproduce a system implies the ability to replicate it.

load more comments (1 replies)
[–] [email protected] 26 points 4 weeks ago (1 children)

I'd jump on the bandwagon of nixos, I use it myself and love it, does exactly what you're asking for

However judging on some of your other comments it might be a better idea to just suck up having to manually rebuild until you understand the basics of Linux a little better

(nixos more or less requires you understand programming syntax for writing your system config)

[–] [email protected] 2 points 4 weeks ago (1 children)

(nixos more or less requires you understand programming syntax for writing your system config)

It's technically not a real programming language but an expression language. The difference is that the former is a series of commands to execute in the specified order to produce arbitrary effects while the latter is a declaration of a set of data. You can think of it like writing a config file i.e. in JSON format.

The syntax isn't really the hard part here. You can learn the basics that comprise 99% of Nix code in a few minutes.
The actually hard part is first figuring out what you even want to do and then second how the NixOS-specific interface for that thing is intended to be used. The former requires general Linux experience and the latter research and problem solving skills.

[–] [email protected] 3 points 4 weeks ago (1 children)

It's hard to say whether it's difficult or not coming into it already knowing how to program

More people than not struggle to come to terms with what a variable is let alone all the stuff you can do in nix

There are definitely other hard parts, but I didn't want to write a wall of text lol

[–] [email protected] 1 points 3 weeks ago

While that's certainly true, using NixOS usually does not involve many advanced concepts or requires you to understand them.

You can set foo = bar in a .conf file without knowing what a variable is either.

[–] [email protected] 24 points 4 weeks ago (1 children)

For reproducibility, nothing really beats NixOS. That's not really what you're asking for, as that would not involve Clonezilla.

If you're frequently switching hardware, and want to have everything up and running, configured to your liking, in minutes, you're gonna have fun with NixOS in the long term. But I'm not gonna sugarcoat it, it has a steep learning curve and does require you to enjoy some tinkering. Worth it, imo

Otherwise, just pick a distro that you enjoy and create a separate home partition, when it's time to switch you do a fresh install and clone only the home partition. That'll get you 90% of the way to have your old setup on the new device

[–] [email protected] 4 points 4 weeks ago (2 children)

But what is a home partition?

I mean for me the problem is backing up my settings (including for every app) and I don't know where they are saved.

Backing up my pictures, documents and others isn't a problem.

[–] [email protected] 10 points 4 weeks ago

Your settings for the most part are in your home directory, generally when you install a Linux system everything that isn't the bootloader is on one partition (system, installed applications, etc)

Your home directory is for anything specific to your user, meaning your downloads folder, your pictures, documents and also your .config folder which holds 90% of the config files

There are some weird ones that have directories outside of home, afaik that's stuff like network manager remembering your saved networks that runs outside of your user context

[–] [email protected] 6 points 4 weeks ago

Usually your settings are saved under ~/.config

[–] [email protected] 16 points 4 weeks ago* (last edited 4 weeks ago) (2 children)

I'm going to mention Ansible as I haven't seen it mentioned, and it can be used to locally manage a reproducible build.

It has already been mentioned, but as a minimum to replicate your system you need two things:

  • Transfer/copy your entire /home directory as there is where the majority of the configuration files of your system pertaining the software you use (there could be configs you could need on /etc and on /usr/local or other dir), that is why it is recommended to partition your disk on installation of your distro, so the /home directory is already separated, as if you reinstall in the same machine you don't lose any configuration in addition to your personal documents/pictures/etc
  • Have a way to automatically install a list of programs/apps/drivers/libraries, and that is what something like a bash script, Ansible, nixOs, etc. could help you with.

The truth is that using any of the tools in the second point requires learning a bunch, so if your skill level is still not there, there is some work to do to get there.

load more comments (2 replies)
[–] [email protected] 9 points 4 weeks ago* (last edited 4 weeks ago) (1 children)

Personally, I use Fedora Silverblue and use bash scripts for reproducibility. To set up a new system, all I need to to is install, reboot, run my bash script, reboot, and my system is 90% configured. With bash scripts, I am able to reproduce more of my system than I could when I used NixOS.

A lot of people recommend Nix, but the thing about Nix is that you're only declaring how the system is configured. Not your home folder. You need to rely on third party tools for that.

Bash scripts can configure system and home folder. They can also be used on any distro, whereas a Nix configuration file only works on NixOS.

Though the worst part about any new install is just signing back into everything, especially an annoyance when you have proper 2FA setup. Bash scripts or Nix can't solve that unless you migrate data over.

[–] [email protected] 2 points 4 weeks ago* (last edited 4 weeks ago) (2 children)

What is a bash script? Is it something I'd have to write mysel using the terminal? Sorry but my skills are quite limited for now.

[–] [email protected] 7 points 4 weeks ago* (last edited 4 weeks ago)

Yes, it's something you write yourself. Bash is the language you use when you use the terminal. A bash script is just many lines of bash commands.

A bash script could be as simple as

dnf install package1 package2 package3
dnf remove package4 package5 package6

This script automates installing some packages and removing some packages. The bash script I use does a lot more, such as running commands to configure Gnome how I like it.

If you're not comfortable with the terminal, I would definitely recommend staying away from NixOS. To declaratively/reproducibly set up the system, it uses a language called Nix that is a fair bit more complicated than bash. It's also just very different from traditional Linux systems like Fedora or Ubuntu.

[–] [email protected] 2 points 4 weeks ago* (last edited 4 weeks ago)

What is a bash script?

At this point in time, I need to stop you.

There's a massively-increased risk of you being misled by someone else's agenda without knowing it's not the simplest and most effective solution to your problem because there's a lot of technical stuff you may not know and can't pick from available options based on their nuances. So:

  1. find a real person you trust who knows this
  2. ask them

Whatever they tell you, they'll be able to support. Ensure you're the one typing so you learn things, and ask every question you think of all the time.

Stop asking random strangers which solution is best, because you're going to get a lot of short-sighted clique answers that DO NOT HELP YOU.

[–] [email protected] 8 points 4 weeks ago

NixOS is the sort answer. It's reproducible across hardware. But I've never tested it.

[–] [email protected] 5 points 4 weeks ago

Cloning the system and home partitions always worked fine for me with openSUSE Tumbleweed with KDE Plasma desktop. Another option openSUSE offers is AutoYaST

AutoYaST is a system for unattended mass deployment of openSUSE Leap systems. It uses an AutoYaST profile that contains installation and configuration data.

[–] [email protected] 4 points 4 weeks ago

NixOS is exactly what you want.

You declare your configs in a way that you can just copy them to another computer and it willbe configured the same way.

I've never tried it my self, but I might for my next machine.

[–] [email protected] 4 points 4 weeks ago (2 children)

If you want something simple that does this for you: check out SaveDesktop. I'm not sure if it will meet every need, but it works for me when I need to switch.

[–] [email protected] 2 points 4 weeks ago

Oh from reading what’s in the link, it looks like it’s exactly what I need.

I’ll go deeper into it.

[–] [email protected] 2 points 4 weeks ago (6 children)

Would you know why I'm getting that error? :

I've already allowed access to all system files through Flatseal.

[–] [email protected] 2 points 4 weeks ago

I think it needs access to all your host files as well, let me see if I can replicate that error.

load more comments (5 replies)
[–] [email protected] 4 points 4 weeks ago (1 children)

I just discovered the source of all your problems by reading your previous post.

The Surface Go 1 is a UEFI system. The Acer Aspire 5737z is a legacy BIOS system and thus can't boot UEFI partitions. If your Aspire was a UEFI system, what you did probably would have worked just fine - no need for a special snazzy distro (no offense, NixOS users).

I'm actually extremely surprised no one noticed this before me.

From here, you have a few routes:

  • Flash the install to the drive, and try to downgrade it to a legacy BIOS system.
  • Reinstall Fedora and copy just your Gnome config over - from what I can tell, it's just a few directories.
  • Buy a slightly newer device (maybe 2012/2013-ish at the earlist, probably originally designed for Windows 8.x) that support UEFI so you could just use the image.
    • Honestly, I am a bit conflicted on this option, as I don't exactly like not reusing the Aspire. However, this may be the easiest way out, and maybe you could put the Aspire to use as a server in a home lab instead.
  • Try NixOS like others have been saying. Learning things is fun when you have the time - I don't, and so stick with Debian.
[–] [email protected] 3 points 4 weeks ago

Oh well thanks for this information. I’ll see what I’ll do but I’m determined to keep using the Aspire for a few things.

[–] [email protected] 4 points 4 weeks ago

Any of the many immutable distros (vanilla os, fedora silverblue, bluefin, aeon, endless os, pure os, ...) will all obviously work.

Most of your customizations will live in your home directory anyway, so the details of the host OS do not matter too much. As long as it comes with the UI you like, you will be mostly fine. And yku said you like gnome, that installs many apps from flathub anyway and they work just fine from there.

For development work you just set up a distrobox/toolbox container and are ready to go with everything you need. I much prefer that over working on the "real system" as I can have different environments for different projects and do not have to polute my system with all kinds of dependencies that are useless to the functionality of my system.

NixOS is ofmcourse also an option and is quasi-immutable, but it is also much more complicated to manage.

[–] [email protected] 3 points 4 weeks ago* (last edited 4 weeks ago) (2 children)

As a counterpoint to the majority of answers here, I'd love to suggest GNU Guix as the best answer. Like Nix, but enhanced for freedom with a formidable governance model. Built on freedom. Built to last forever. Also easier and more beautiful

[–] [email protected] 2 points 4 weeks ago (1 children)

How's it's hardware support GNU Trisequel was bad in that regard

[–] [email protected] 2 points 4 weeks ago

it is built so that non-free packages can be made easily available (e.g. the non-guix channel). being sort of a meta-OS, already a bunch of operating systems were built on top of it, arguably easier to just get started as a novice

[–] [email protected] 2 points 4 weeks ago (1 children)

It is kinda painful and the repos are very slow

[–] [email protected] 2 points 4 weeks ago

WDYM the repos are very slow?

i'm using it as a daily driver for a couple of years now

[–] [email protected] 3 points 4 weeks ago

Seperate home is a must imho. Fedora had kickstart but alas a little old. This may help. https://discussion.fedoraproject.org/t/here-is-how-to-easily-create-a-bootable-clone-of-your-fedora-system-disk/111308

[–] [email protected] 2 points 4 weeks ago (1 children)
load more comments (1 replies)
[–] [email protected] 2 points 4 weeks ago

So the question is this: Do you want to be able to reproduce the system exactly, or are you fine taking a few hours to reinstall software. If you're just wanting to keep settings and data for apps rather than the apps themselves, you can cut down on your storage requirements a lot.

If it's the latter, all of your user settings should be in your home directory ("/home/username" or just "~"). If you back that up, you should be able to recover your settings and data on a fresh install of your distro of choice.

[–] [email protected] 2 points 4 weeks ago

If you want to actually replicate one to one - any distro, and use dd or netcat to transfer the root partition. Reinstall the bootloader, update BLKIDs and you're done. Worked for me multiple times.

[–] [email protected] 2 points 4 weeks ago

Nixos and mynixos website helps you create your config if you don’t know how or don’t want to

[–] [email protected] 2 points 4 weeks ago (2 children)

Ubuntu will boot on either legacy or UEFI.

load more comments (2 replies)
[–] [email protected] 2 points 3 weeks ago
[–] [email protected] 1 points 4 weeks ago (1 children)

Can you just make a base image and then clone the image across. You would need to change the machine ID but that's pretty easy to do.

Alternatively you could use Ansible pull on a fresh install to set everything up

[–] [email protected] 1 points 4 weeks ago (1 children)

How can you just make a base image and change the machine ID?

load more comments (1 replies)
load more comments
view more: next ›