One of the biggest complaints I hear from new Ubuntu users is how easy it is to mess up an existing Ubuntu installation.
Whether the issue stems from an update gone wrong, the hard drive crashing (which is actually a hardware issue) or simply the user deleting a directory best left untouched isn’t the point. The fact of the matter is, having an indestructible Ubuntu installation does have its benefits.
In this article, I will outline my recipe for setting up what most would agree is a bulletproof Ubuntu installation.
Right away, I see many of you groaning at this sentiment. After all, it's not like dual-booting is all that difficult. This is especially true if you're only dual-booting Linux distributions.
But for most people, dual-booting involves Windows. And while the installation of Windows can be done along side Ubuntu, I would never recommend it if you are seeking a bulletproof Ubuntu setup.
Why? Simply because by adding Windows you're adding a wild card to your computing space. A better bet is to use two separate PCs for such things, or look toward a virtual machine solution.
If you absolutely must dual-boot with another operating system, then at the very least I recommend using separate hard drives to protect yourself and your data against drive failure. This way if one OS drive dies, the other is still working and in good condition.
It should be noted, however, that messing up one’s boot record isn't going to be prevented in any dual-boot situation. It's always a possibility and can be, in some instances, a real pain to fix when it happens.
A dedicated home partition is useful
There are countless schools of thought on how to setup your partition layout. Personally, I believe the use of a dedicated partition is the obvious choice. This offers a number of solid benefits.
First, if you happen to have the resources where a dedicated hard drive can be used for your home partition, I would recommend you consider doing so. This can protect your home directory contents should your main system drive run into any problems of a hardware related nature.
Second, using a dedicated partition means that you can "upgrade" your Ubuntu installation with peace of mind as the home partition can be set to be ignored by the installer. This option allows you to prevent lost user data such as documents, media, and user settings should your upgrade go horribly wrong.
One thing to consider when working with a dedicated home partition is that in some instances it may not be worth it. For example, if you are using incremental home directory backups, you may find that having a dedicated directory might be a bit redundant.
That being said, it's a personal choice that you will have to decide on yourself. Speaking exclusively for myself, I find that on my desktop PCs, a dedicated partition makes a lot of sense since this is where I do the bulk of my work.
But on my portable computers, such as my notebook or my netbook, I am perfectly fine with allowing a backup plan to handle my home directory data with a less intensive eye.
Backing up your computer
Not to be confused with hard drive cloning, setting up a worthwhile hard drive backup is actually pretty simple to do. What isn't all that easy is selecting the best method that works well for your needs.
Potential issues that must first be explored before deciding on a backup method are bandwidth caps from ISPs, external storage, network storage, DVD backups, and bulk vs incremental backups. Here are some insights on a few different options while explaining their benefits.
One of the simplest options is to use a cloud-based service for backing up, such as JungleDisk, Ubuntu One, or other backup to cloud solutions. No cloud-based solution is really "better" than the other, they all basically allow you to backup select directories to Amazon servers at some level.
In my case, I've had great success with JungleDisk as it allows me to easily select the directories to backup. Then on a schedule of my choosing, I can run JungleDisk's Simply Backup tool to send the latest copy of my data to remote S3 Amazon (or Rackspace) cloud servers.
The downside to this is that you might be better off using the JungleDisk localized backup option within their program instead. Backing up your entire home directory on the Internet is amazingly slow during its first run and, in most instances, likely to create problems with your ISP. Second, despite JungleDisk claiming that you can restore your files to a selected point in time with their Simply Backup option, I've never personally tested it. And, I would opt for an open source incremental backup solution instead if you need file versions from selected times/dates.
Best of all, it uses incremental backups, which means you can restore from set points in time quite easily. For newbies, I always recommend using Grsync, as it allows a clear view of what’s going on. Advanced users will obviously choose to use Ubuntu's CLI instead. Which option you happen to choose is little more than personal preference.
When using rsync, it's not uncommon to backup to network attached storage (NAS) or even a USB-attached external hard drive. I prefer the NAS option because it's a bit smoother and can be a bit more reliable.
The third option in my list of preferred backup solutions is to use the terminal to manually copy content from your existing Ubuntu installation over to a backup directory located on a NAS or other attached storage. One option, though not the best, is to do a cp -r (copy recursively) option in your terminal, which would then make a copy of one directory to another.
A better alternative to using cp, would be to compress your data a bit more into a tar file. Using something like tar cf– | (cd /to-stuff; tar xvf -) which sends the data into the new backup directory, would do the trick.
One thing to note: Neither of these solutions are nearly as dependable as using rsync. Why? Because if rsync is interrupted for some reason, it can safely resume without creating any hassles.
Cloning your hard drive
The last piece of the puzzle for creating a bulletproof Ubuntu installation is to clone your installation when you first start off. Unlike an incremental backup or a tarball backup via the command line, a clone of your Ubuntu installation is just that, a bootable clone of your current Ubuntu installation. The program that I have personally had success with in this space, is called Clonezilla.
Using Clonezilla is as easy as following the instructions provided on the software's website. Flavors of Clonezilla include Clonezilla Live, a bootable CD or flash drive image, or if you prefer, there is also a server edition called Clonezilla SE.
For the sake of this article, let's assume that you will be using the Live CD for a single workstation. Clonezilla offers two different options, which are great for two unrelated needs. If you bought a new hard drive, you might use Clonezilla's disk cloning to "ghost" the old hard drive contents to the new one. On the other hand, if you're simply looking to make a copy of your hard drive state and its contents, you would then opt for the “save a disk image” option instead.
What makes Clonezilla so awesome is that you don't have to simply clone the entire drive. If you'd rather, you can simply clone your system partition(s) instead, ignoring your home partition altogether. Bundle this with the home partition backup solutions above, and this can be a really great option to consider.
For someone needing a more robust setup, if you need to backup servers or other advanced needs for an extensive LAN, I would point you to AMANDA (Advanced Maryland Automatic Network Disk Archiver) as a more enterprise-friendly solution.
Putting the pieces together
To recap what I've shared in this article, let's begin by putting all of the above pieces together to see how this can make your Ubuntu installation bulletproof.
During a fresh installation, use Clonezilla to backup your system partition(s). This way if something happens to your computer, hard disk, or file system, restoration is quick and easy. In the meantime, I will assume rsync has ensured that your growing home directory, has been kept safe and backed up with all of the incremental details still intact should a disaster arise where your personal data is somehow lost.
On the off-chance that you merely mess up an Ubuntu update in which you would rather simply reinstall everything, a fresh installation of Ubuntu that leaves your dedicated home partition untouched will serve you well. Best of all, you won't have to wait for your home directory to be restored. It's just as you left it, application settings and all.
And that wraps it up. Follow the path above and you, too, will be able to run Ubuntu or any distribution of Linux with greater freedom. No longer will you be plagued by the possibility of messing something up only to have to start over from scratch with a clean installation, lost data and all.