My (wife’s) desktop PC at home started to act up. The boot hard disk was dying. This was a Windows PC. I didn’t want to re-install the OS and all the software, partly because I can’t find the serial numbers of some of the software I have already installed. So what I needed to do was to clone the dying disk to a new disk. How can I do the cloning?
Now, I’ve dealt with dying disks on Linux systems many times before. I’m familiar with various tools in Linux. This would be the first time I’m trying to do on Windows. Had this been Linux, I would be quite happy dd’ing the disks. But this is Windows. Okay, I could simply plug the disk into my Linux box and be done.
Anyway, I started to think about tools like Norton Ghost. Ok, Norton Ghost is not free. But hey, there is also a Ghost-clone called Ghost for Unix, which is Open Source and free to download and use. Cool. I downloaded the ISO image, burnt it to a CDROM, and booted up the desktop from the CDROM.
Ghost for Unix offers cloning of entire disks as well as of individual disk partitions. You can also clone the disk directly to another disk, if they are already both attached to the computer. You can rip the disk and store the image onto a FTP server, where you can later fetch it and write it into a new disk. You’d need a FTP server to do this of course, and, obviously the FTP server had better be on your LAN otherwise you’re going to take forever to get the image transferred over.
There are some compression options to reduce the among of space the image takes (if you are going to rip it to a FTP server). Ghost for Unix also skips empty sectors, meaning sectors that contain NULL values (which is not the same as a sector that is not used to store any useful data).
The cloning and ripping is not terribly complicated. My 80GB disk took about 1 hour to clone. It took over 4 hours to save the image a FTP server. I did the save-to-FTP-server as a backup as well, just in case something went wrong.
An interesting thing is about cloning disks of different size. You know how it is, that when your old disk is dying, it is highly unlikely that you’d buy a new disk that is of exactly the same size. Either they don’t sell disks of that size anymore, or it just isn’t good value for money to buy disks of that size.
Fortunately, cloning from small disk to bigger disk is simple. The cloning process gives you an exact replica of the old disk onto the new disk. Assuming the new disk is bigger, it will be filled up exactly up to the size of the old disk, and leaving the rest of the new disk empty. The rest of the empty space can still be used if you create new partitions in there.
Just to give an example: Old disk is 80GB. New disk is 250GB. After cloning, the new disk has the exact replica of the old 80GB disk. The remaining 170GB of the new disk is empty. You can create a new partition here.
In my old 80GB disk, I had a 30GB primary partition, then a 50GB extended partition containing a 50GB logical partition. After cloning to the new disk, the remaining 170GB had to be filled up with a new primary partition. This works well in Windows XP (and presumably Vista too). Long time ago, you could only have one primary partition. So if you’re not comfortable with having two primary partitions, you’d have to create a new logical partition, but the problem is that the extended partition did not extend to the remaining 170GB. Okay, you could delete the extended/logical partitions and recreate them, but then you’d have to backup your data first. Troublesome.
At this point, you’d probably want to use a repartitioning tool like Partition Magic. Not free. Again, thanks to Open Source, we have GParted which is free to download and use. Downlond the Live CD ISO and burn it to a CDROM. With GParted, I can now easily repartition the new disk the way I like.
It’s funny that although I play with lots of Open Source software and technologies, I’ve never actually tried out Ghost for Unix and GParted prior to this. Thankfully they work as they were supposed to do and didn’t present new problems of their own.
GParted runs with a GUI, so it is quite intuitive to figure out. It isn’t very different from how other disk partitioning software work. Ghost for Unix is slightly more difficult though. It is command line driven. Although the commands are pretty straightforward, and the documentation on the web is clear and provides simple examples, the command line interface may indeed be a challenge to some people. But if you are familiar with UNIX, this shouldn’t be an issue.
After note: I just learnt that there is also Ghost for Linux. This is a ncurses-based interface (text-based menu system), so it will probably be a lot more friendly to use than Ghost for Unix. I’m done with ghosting for this time around, so maybe I’ll try it another time (but touch wood, hopefully not because of another dying disk).