It’s been almost a year since I setup my personal server which I named Jarvis. I haven’t
backed-up Jarvis at all and recently grew paranoid that something might happen to him. Jarvis
represents hundreds of hours of work, and there are documents and code that are stored only in him.
I spent some time figuring out how to backup everything. The easiest solution is to initialize
Git repositories for all my projects and then create bare Git repos for all of them. Then I simply
tarballed them up and stored copies of them elsewhere.
But I wanted to also preserve all my server configurations and packages. I wanted a hard
drive that if Jarvis’ hard disk suffered some catastrophic failure like fire, I could simply plug
into another computer and have a perfect clone up and running in no time. Spending hours
installing packages isn’t fun. What I needed was to take a snapshot of the disk and create a disk
image. It turns out
dd is the command for the job.