Well I've joined the "accidentally trashing your system with rm -rf" club! Luckily I didn't delete my home directory with all the things I care about, but I did delete /boot and /usr, and maybe /var (long story, boils down to me trying to delete non-system directories named those but reflexively adding the slash in front when I should not have). I have backups of those as well, so what are my prospects of recovering from this by just copying them back in using a live USB? Only issue is they're stored in my server as belonging to the server user (I assume everything in those directories should belong to root and I can just use chown?) But I also don't know if they retain the same permissions when backed up.

Has anyone had any luck recovering a system in this way? I'm hoping not to have to reinstall everything because I had gotten pretty cozy with the current installation.

UPDATE: I finally had the time to sit down and try it, and, I was at least hoping to document some glitchy or unstable behaviour but it just didn't work at all. No matter what I tried I couldn't even get the UEFI to recognize the old system as bootable, so I cut my losses and just reinstalled. Gonna make sure I have btrfs snapshotting enabled this time, which I'm realizing I probably should have done in the first place.

  • gomp@lemmy.ml
    ·
    edit-2
    7 months ago

    Just reinstall :)

    Copying back the files to the right partition/directory works, but if you didn't backup the owner and permissions for each file it's gonna be a pain to restore those.

    After reinstalling, you can compare your new system with your backup to see what changes/configs you had made

  • bertmacho@lemm.ee
    ·
    7 months ago

    you dont say the o/s but if the pkg manager works, or you can add a statically compiled version, you could force reinstall all pkgs

  • bizdelnick@lemmy.ml
    ·
    7 months ago

    No way, reinstall.

    If even file owner is not preserved (it is not always root, espetially in /var), you likely lost files' extanded attributes an, maybe, also permissions. Without them your system won't work normally.

    Then, contents of these directories must be consistent with other ones. E. g. /var contains a package manager data about packages you installed. If you installed/removed anything after creating a backup, information about this will be lost.

    If you created the backup while system was working, some files (espetially under /var, again) could be changed during that process, and this also makes such backup unusable. Every sysadmin knows that to create a database backup by copying files, dbms must be stopped.

    In future, think about restoration before planning a backup and test if this possible immediately after it is done.

  • cmeerw@programming.dev
    ·
    7 months ago

    Only issue is they’re stored in my server as belonging to the server user (I assume everything in those directories should belong to root and I can just use chown?) But I also don’t know if they retain the same permissions when backed up.

    Not everything will be owned by root, and some of the binaries will be setuid or setgid, some might even have extended attributes (e.g. ping will usually have a security.capability attribute). /var will also have a lot of different owners.

  • sebsch@discuss.tchncs.de
    ·
    edit-2
    7 months ago

    Normally its better practice to have the server configuration stored in a declarative way like ansible or similar and only store the userdata in the backup.

    So you can fast and easy reinstall your server including all of its config files and then clone the usage data like dbs or files into the new machine. This is more reliable and also faster than just do a full dump of the system.