Hi everyone!

I now have 4 computers running Linux, each with an almost perfectly set up distro (which took days to perfect) and would want to create backups so that I can move and restore these between all of my computers.

Here is a list of my computers:

Surface Go 1 128gb SSD 8gb of Ram running Fedora Silverblue

MacBook Pro 2012 (upgraded with 512gb SSD and 16gb of Ram) running Pop!_OS

NUC7i3DNB 128gb SSD 8gb of Ram running LibreELEC

Steam Deck LCD 256 SSD 16gb of Ram running Steam OS

I was planning on using Clonezilla to create backups of these, store them somewhere (kDrive and external hard drive) and be able to restore these between each of these (and my future) computers if needed.

I’ve succesfully used Clonezilla in the past, but I’ve also encountered a dead end issue when trying to restore my Surface Go 1 backup on an old Acer (probably 5737Z) I had lying around. I don’t remember what the problem was, but something related to UEFI and EFI legacy stuff I think…

So, as all these computers are quite different and not all of them so Linux friendly, I wanted to know if you think I’ll encounter issues when trying to move installs between them or not.

In order to save space, I’d probably shrink every partition so that it’s the same size as the data it contains and then extend it again once restored on another computer.

Thanks in advance for your help!

  • SayCyberOnceMore@feddit.uk
    link
    fedilink
    English
    arrow-up
    2
    ·
    25 minutes ago

    Consider your perfect settings as the part you want to keep (as well as all your documents etc, of course), but the OS will change.

    Tomorrow you’ll do an update and 2 applications and 10 libraries are now newer… so you probably don’t want to store a “golden image” for too long without redoing it to consider all the updates.

    Now… with that situation in mind, it’s generally easier to just do a clean install of the distro and reapply your settings.

    So, depending on what you’ve setup, installed, tweaked & configured, saving that can be done with config files in /etc and /home and maybe a 1-liner for applications to install.

    That will be smaller and more easily reproducable on all your hardware (and maybe some VMs)

    How you do that depends on what you’ve changed and your skills… maybe bash, maybe ansible, maybe just copying files - whatever makes sense to you.

  • utopiah@lemmy.ml
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    47 minutes ago

    I understand where you are coming from but I would take the opposite approach, namely not how quickly and conveniently you get back to exactly the same state (because that’s actually really hard) but rather how quickly and conveniently you can get to work, or play, or do whatever you do, from the most generic of hardware and software, including of course yours. What this perspective suggests though is NOT to consider your stuff precious but on the contrary, to assume it will inevitably disappear, due to any reason, from a freak event, e.g stolen to the mundane, e.g. hardware failure over time.

    IMHO it’s much more relaxing to consider hardware disposable. My own heuristic for this is to understand what a distribution does, save only MY data (e.g. things that I produce, for example in a data it would be my saves but not the game itself) and buy only well supported hardware.

  • historicaldocuments@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    4 hours ago

    Anything that creates a reproducable build for you is fine; however, learning Ansible (or Puppet, etc.) puts you on the road to being able to do that sort of thing professionally.

  • Quazatron@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    5 hours ago

    I mostly backup /home and /etc on my home machines. Anything else I can recreate with configuration-as-code tools like Ansible.

    • Dariusmiles2123@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      3
      ·
      3 hours ago

      Could you tell me what’s supposed to be in /home and what’s supposed to be in /etc ?

      What do you do when you install a new install? You replace the installed version of these with your old version?

  • GustavoM@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    5 hours ago

    Your best bet is to set up bash scripts instead that downloads packages and copies/compiles every single thing you need. Then send em to gitlab.

    t. That is what I do.

  • atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    5 hours ago

    An alternative to complete cloning (which gets out of date fast) would be to manage systems with ansible.(or puppet, or chef).

    You can script configurations, package installs, users, etc. And it also allows for hardware/architecture specifics when needed (e.g. drivers for the different platforms).

    You would then just install a base os and run your playbook. No need to store gigs of data and easier to update the base os to newer versions. You could even mix

    You can also push out changes without needing to snapshot a new image and re-install it everywhere.

  • fozidA
    link
    fedilink
    English
    arrow-up
    9
    ·
    7 hours ago

    For me that would be a waste of time. Just because my setup seems perfect today, tomorrow I might decide to make changes to accommodate a new task. My pc’s are living breathing machines that are always a day or 2 away from a slight tweak.

    When I move to a new machine, I rarely want to replicate another machine I have as then I would have 2 machines setup for the same tasks. Each machine serves a different purpose so needs a different setup.

    If I am replacing a machine, then I would transfer the physical disk itself. Only use clonezilla type tools for replacing a disk, as in replacing the sata SSD holding root with a new fast nvme.

    It’s easy to transfer config files from one machine to another if you want to replicate some specific setups.

    • unfortunate_ferret@piefed.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 hours ago

      What do you do when you need to restore from failure, for one of those specific tasks? Just build from scratch every time?

      • fozidA
        link
        fedilink
        English
        arrow-up
        1
        ·
        44 minutes ago

        What sort of failure? A harddrive failure? I have never had a disk completely fail where every bit of data is unreadable.

  • BCsven@lemmy.ca
    link
    fedilink
    arrow-up
    3
    ·
    6 hours ago

    They are all different hardware so you’ll run into issues where the system has drivers or settings for the original hardware that is different on the next hardware.

    Lots of drivers are already in the kernel, but I think you’ll find your better off using NixOS or MicroOS and making a proper install recipe.

    • Dariusmiles2123@sh.itjust.worksOP
      link
      fedilink
      arrow-up
      1
      ·
      6 hours ago

      I don’t know if it’s useful, but they are all running distros with only default settings changed and program installed.

      The only modification I’ve done is installing some broadcom drivers for the MacBook. The rest is quite stock/vanilla except extensions and workflow tweaking.

      • BCsven@lemmy.ca
        link
        fedilink
        arrow-up
        2
        ·
        5 hours ago

        Well you might have luck if the systems aren’t using proprietary drivers for network or GPU.

        If you’ve setup the system for hibernations then it will have a swap partition sized to the memory. So that will need to be the biggest RAM machine as a start point.

        There are some methods to check what kernel modules were included in your install. You would want to check if all machines have the same kernel modules for compatibility between them

  • HaraldvonBlauzahn@feddit.org
    link
    fedilink
    arrow-up
    3
    ·
    6 hours ago

    With standard PC hardware, that would work.

    Some things like firmware or drivers can be auto-detected and installed on demand. Symptom would be that e.g. your WiFi or video card does not work.

    The safe way is to back up user data (including config) and install newly. This will work almost always as the kernel provides hardware abstraction - that is its main purpose.

    Installers like Debian are also quite quick… quicker than restoring a backup.

      • HaraldvonBlauzahn@feddit.org
        link
        fedilink
        arrow-up
        3
        ·
        5 hours ago

        Linux has a strict separation of user data and system.

        Anything that you can configure and adust without entering the root password is stored as user data in your home account.

        If you back it up and restore it on another computer with the same distro, it will work.