How can I back up my whole system and be able to restore perfectly to where I was? I have installed some nice themes and customized quite a few things (graphically) and wouldn't want to repeat this process if I need to re-install.
I guess my question is, do I have to only backup the home folder or do I have to do the whole system root folder. Many topics have advised not to backup the root folder but has let me confused.
I have no problem installing Ubuntu from scratch again and importing my home folder, as long as it gives me everything back in terms of the UI and custom themes etc. I am not fussed about the actual data such as Documents, Videos etc. I have alternative methods for these via cloud based solutions. Also, I have some commands in fstab
but not sure this is stored in the home directory as well?
My idea was to use rsync
and use
sudo rsync -aAXv --delete --exclude=/dev/* --exclude=/proc/*
--exclude=/sys/* --exclude=/tmp/* --exclude=/run/* --exclude=/mnt/*
--exclude=/media/* --exclude="swapfile" --exclude="lost+found"
--exclude=".cache" --exclude="Downloads" --exclude=".VirtualBoxVMs"
--exclude=".ecryptfs"
Then set up a cron to schedule this.
Can you help?
The reason of the advices to not backup the "
/
" folder is this: typically, there are many virtual (and, sometimes, physical) filesystems attached to it. A virtual filesystem is like a/proc
: it doesn't have physical files on the hard disk, instead listing/reading/writing their file structure manipulates some data structures of the kernel. For example, writing 1 into/sys/bus/pci/rescan
doesn't write anything to anywhere on a hard disk, instead it re-scans the PCI bus for new devices.Backing them up would be meaningless or they might be even harmful.
If your goal is to back up everything, then the best what you can do is that you back up everything. However, backing up
/
might be problematic because of the problem above.However, there is a simple trick to solve that. Linux knows the thing so-named bind mount: it means, that you can mount a filesystem multiple times.
For example, a
will mount your root filesystem (considering if your root is, for example,
sda7
) to the directory/mnt/root
. You will see everything in it, except any sub-mounts, including the virtual filesystems.The trick is this: after that, you can safely backup
/mnt/root
with any tool you wish to, includingrsync
.Note also, this is only a recursive file copy. You have no protection for possible file inconsistency issues what happen. Imagine if a database has two files, for example,
/var/lib/postgresql/11/main/base/13731
and/var/lib/postgresql/11/main/base/13732
which refer to eachother. If the database engine writes something into the first and to the second, while your backup process runs, then it is possible that the first will be backed up and the second won't. Thus, your database will become crap after a restoration.This is also a reason, why you will probably find contra-arguments (sometimes quite vehement ones) against backing up your system on this way. However, in practical, user-level use cases, a real problem such this exists only very rarely, maybe the most typical one is when you are playing with a database for some web development task. In a home environment, I simply ignore this problem. In a professional environment, it is practical to use another, different backup for your data which is sensitive for this.
Clonezilla to the rescue. Atrocious console interface but gets the job done reliably.
Download image and make a bootable USB drive from https://clonezilla.org/
Boot Clonezilla from USB drive and back up your drive and/or partitions to USB drives or sticks for easy restore. Don't let the UX scare you, it really works.
If you really want to have a backup of just your themes and customization, then you don't really need to make a backup of your whole system. You just need to make a backup of some of your dotfiles.
For example, the changes you made for your windows are in
~/.config/gtk-3.0/settings.ini
file. Most of the programs that you install will have a configuration file in~/.config
directory, you just need to make a backup of those configuration files.Timeshift - Automated Incremental Backups of Your System Made Easy
Timeshift provides functionality similar to the System Restore feature in Windows and the Time Machine tool in Mac OS.
It can be installed from Ubuntu's repos, but Ubuntu may or may not have the latest version. You can install it by either searching for Timeshift in the Ubuntu Software store, or you can type the following in terminal:
If having the most up to date version matters to you (you can check the release notes of each version and see if they would impact you for better or worse), you can add the developers repo and install Timeshift from there:
For more specifics on how to configure Timeshift to suit your specific needs, please check out the developer's github page: https://github.com/teejee2008/timeshift
If this was helpful, please consider giving this post an up-vote. Thanks!