There are many cases you might want to upgrade your hard drive: 1) you are running out of space on your laptop or PC; 2) when you buy new PCs, manufacturers usually charge higher for hard drive upgrade and you want to purchase with the lowest configuration and upgrade by yourself.
The question here is how you can make a "TRUE COPY" of your old hard drive to the new drive.
I will share my experience in upgrading a Lenovo Thinkpad T61 with Windows XP installed.
1) Buy a new hard drive.
You have to figure out the exact model that your computer supports. For instance, interface (EIDE or SATA), size (2.5", 3.5" ...).
For T61 or most current-day laptops, find a 2.5" SATA drive. Actually, I purchased a portable external drive (for instance, Maxtor OneTouch 4 mini). The benefits of the external drive are: a) you can firstly plugin to copy the hard drive; b) after switching drives, you can still use the old drive as an external storage.
2) Hard drive copy: copy all partitions in the old drive to the new one.
Method: a) direct partition to partition copy; 2) backup your drive into an image and then restore the image to the new drive.
Software: there are many commercial products, such as partition magic, Norton Ghost, ... I picked a free software called
Disk Copy (Supports IDE, SATAI, SATAII, SCSI, Firewire(IEEE1394) and USB drives). Another software I want to mention is Gparted, which is included in the Ubuntu installation and live CD.
3) Procedure:
- download Disk Copy from here, and burn it into a CD.
- keep the old drive your laptop and plugin the external hard drive (USB).
- boot the Disk Copy CD.
- You have the optional for "Disk Copy" or "Partition Copy". I pick Partition Copy
- Pick the source(from the old drive) and the destination(from the new drive) partition. If you pick the destination in an existing partition in the new drive, the existing parition will be deleted and a new partition will be created with the same size as the source partition ( the rest will be left as unallocated space. If you pick the destination from a unallocated space, then a new partition is created.
- Copy ....... The speed of copying is 800MB/Min ( I guess it's limited by the USB connection speed). Since it does a sector to sector copy, a 80GB partition will cost around 100 mins.
- Repeat the above procedures for all partitions you want to copy.
- Shutdown the computer, switch the hard drive.
- Turn on the computer with the new drive, cross your fingers ......
PROBLEMAll right, my copy of the Windows XP doesn't boot normally; it hanged on the booting screen with Microsoft Windows XP logo.
Problem: I reinserted the new hard drive into the enclosure and read the boot log from another computer; discovered that the device drivers are loaded OK but then the computer tried to load files from "E:\Windows" instead of "C:\windows". OK, I realize that XP "thinks" the new drive as another drive.
Solution: change the drive letters. This can be done by changing the registry table
"HKLM\System\MountedDevices\DosDevices\C:".
How can you edit the registry table without being able to boot into the system? I found one tool named
Offline NT password and registry editor. It's a bootable CD which boots into a program in a Linux envoinment. The problem allows you to change certains things on your Windows 2000/XP/NT systems, such as registry table, passwords(!).
Procedure to fix my problem: the registry table editor in ntpasswd works prefectly on HKLM\Software, but not always on HKLM\System. For instance, I cannot write back as "/Windows/System32/Config/System is read-only".
- create the ntpasswd CD.
- boot the CD with the new drive in the laptop and an external drive (for instance, a USB pen drive).
- follow the prompt of the CD, pick "system" and use option "9-registry editor"
- use "?" to find a list commands in the editor. you can "ls" to list; "cd xx" to enter a subkey.
- ok, I use "cd MountedDeives". but then i cannot edit the value for "\DosDevices\C:". So i deleted all of \DosDevices. the idea is that i cleared all the drive letter assignments, in the next boot, XP will try to reassign drive letters, and hopefull get it right(indeed it worked !). The command to delete a key is "dv xxx".
- all right, press q to quit and quit. It then prompted you to write the modified registry table back. But it failed as I mentioned "/Windows/System32/Config/System is read-only".
- after the failure, the ntpasswd exited to a linux prompt.
- mount the USB drive, for instance "mount -t vfat /dev/sdb1 /mnt".
- the modified registry file is in "/tmp". So, "cp /tmp/system /mnt".
- shutdown the computer.
- put the (new) hard drive into the enclosure and plug into another (bootable) computer together with the pen drive. Now copy the "system" file in your pen drive to the (new) hard drive "Windows(or Winnt)\System32\Config", replace the old "system" file(you can make a copy).
- Now, insert the (new) hard drive back into the computer. Boot up, .... magic happens|
COMMENT: Windows IS STUXXX!!!