Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am trying to move a 32-bit Vista installation onto a larger hard disk. I tried to do this using my normal method:

  1. Boot the system into an Ubuntu Live CD
  2. Backup the MBR using: dd if=/dev/sda of=/some/backup/place bs=512 count=1
  3. Backup the entire partition using dd to a temporary external USB drive. (This system only has room for one hard disk to be installed)
  4. Shutdown and install the new drive.
  5. Boot into the Ubuntu Live CD again.
  6. Restore the MBR onto the new drive from the backup using dd if=/some/backup/place of=/dev/sda bs=512 count=1.
  7. Use fdisk to delete the partitions restored as part of the MBR, and create a new partition of the same size as the one to be restored, remembering to mark it bootable. (The reason for this is that the old drive had other partitions that I'm not interested in moving over.)
  8. Restore the entire partition using dd, and check that the new partition can be mounted.
  9. Reboot into the new drive and check that Windows is still happy. Run a disk check for sanity.

I have used this method dozens of times with various versions of Windows and it has always worked fine. This is my first time trying it with Vista and I find that it does not work correctly. The system will not boot from the new drive. I get a flashing cursor when I try to boot off the new drive, and nothing else.

Things I have tried:

  • Using the method above, I backed up from /dev/sda3 and restored to /dev/sda1. I was concerned that moving the partition number might confuse the Vista bootloader, so I instead tried naming the new partition as sda3 again (this can be done by simply specifying the correct primary partition number in the fdisk stage above). This did not fix the non-booting problem.
  • I have also tried creating the new MBR from scratch (without reference to the backup) using "dd if=/dev/zero of=/dev/sda bs=512 count=1 && lilo -M /dev/sda mbr", then proceeding from step 7 above. This did not fix the problem.

I am at the stage where I am confident that the partition itself has been restored correctly. My Ubuntu Live CD can mount the partition just fine. My only remaining problem is to get the system booting from the new drive.

Does anyone know how the Vista bootloader differs from Windows XP, so I might debug why my above method hasn't worked?

share|improve this question

2 Answers 2

The bootloader is very different to XP, so I would recommend doing a repair from the Windows disc. It should detect the partition and repair the boot sector, then you can (if you're dual-booting) do the GRUB refresh with the LiveCD.

share|improve this answer
up vote 0 down vote accepted

I finally got this problem sorted.

I resorted to copying the whole drive, not just the one partition I wanted.

  1. Boot into Ubuntu Live CD.
  2. Backup entirety of /dev/sda using dd.
  3. Shutdown, put in new drive, boot back into Ubuntu Live CD.
  4. Restore backup onto new /dev/sda using dd, complete with unwanted partitions.
  5. Reboot into the new drive, and check that Vista is happy.
  6. Rejig partitions as necessary.

I don't know what was wrong with my first approach, but it's sorted now. :)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.