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.
Give it a try! System is broken anyway. Also fix your backup to include file metadata, maybe disk images?
Heck I would try using testdisk to undelete the files onto another filesystem then copy them back if the permissions look okay.
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
I did a similar fucky-wucky before and honestly i just cut my losses and backed up the user data before reinstalling the OS from scratch. Took a few days of tinkering to get my system back to where it was but there’s no telling what kind of system you’ll be left with when you merge a known good image with a broken system.
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
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.
Depends on specific machine setup and how good the backup is.
Backup requirements for /usr there are sticky bits set on some binaries. That needs to be preserved. In all cases soft links likely need to be preserved for things to work correctly on future package installs. Hard links can be problematic, but if you have a large enough drive or not that many it wont matter. Running package verification can be help after restore to make sure everything looks right. If running a Linux system with SELinux in enforcing mode (RHEL on many derivatives), then the security context will also need to be preserved BUT running a relabel will probably work if the security context was not included in backups. Sometimes running the relabel process wont work if there are files that needs a specific security context but are not listed in the security context database. Can’t provide more details because most of my experience with that is on systems we just replace (LSPP custom labeling resulted in systems that if you booted into permissive would then be unbootable, so they were just reinstalled once any debugging was done).
For /boot things can get tricky depending on the distribution, what boot manager is used, and /boot was a separate partition or not. Basically the boot manager (probably grub) needs to know how to find the files in boot so it can load the kernel. In most cases if you restore /boot and rerun the tools to update the boot manger everything will be fine. BUT some distributions, hardware setups, or dual boot configurations are more complicated, so extra work might be needed.
You didn’t mention /dev, which is all special files. These don’t need to be restored, just make sure the right processes recreate them. There are tools to do this, hopefully the packages are installed. Or boot from a rescue disk and fix it. Look up instruction for your specific distro.