I've been setting up a new system, triple-boot between Ubuntu, Windows 7 64-bit, and Windows 7 32-bit. I wanted to be able to boot between all three using the Grub menu alone, no Windows boot menu. And it worked fine, until I tried to mess with stuff; I accidentally screwed up the boot loader or boot sector or something on the 32-bit Windows 7 partition and I've been trying to use EasyBCD and other tools to fix it with no luck.
Here's what the partition table looks like (in Linux terms):
/dev/sda1 -- Ubuntu ext4
/dev/sda2 -- Windows 7 64-bit NTFS
/dev/sda3 -- Extended
/dev/sda4 -- Windows 7 32-bit NTFS
I installed Ubuntu first, installed Grub to /dev/sda1 (I haven't used Linux in years but back in 2001 I was a huge advocate of never putting anything in the MBR other than the standard MBR). Installed Windows 7 64-bit to /dev/sda2; the Windows installer made /dev/sda2 the only active partition & put a BCD on there. Then I installed Windows 7 32-bit to /dev/sda4; the Windows installer made /dev/sda4 the only active partition & put a BCD on there. I used the Ubuntu Live CD to set /dev/sda1 as the active partition again, added Grub entries pointing to the two Windows installs, and I had full functionality to boot between the OS's using Grub alone.
Perfect, right? I should have left it at that, but I had some leftover space at the end of the drive that I'd intended to put in my Extended partition, but I didn't so I couldn't do anything with it. So I booted into Ubuntu and made a disk image of /dev/sda4 onto an external drive using the dd command (Disk Duplicator). I expanded my Extended parition and re-created /dev/sda4 so that it was EXACTLY the same size as before, but now 100% of my disk was partitions. Yay! So I used dd again to restore that disk image to the partition, booted into 64-bit Windows (/dev/sda2), and verified that the filesystem on /dev/sda4 was completely intact and functional. Yay!
But... I apparently lost the boot sector on /dev/sda4, since I can no longer boot it through Grub (hangs on a "Starting Up" message), or boot it directly by seeing it as the only active partition ("A disk read error occurred" message). Jeer!
I used EasyBCD in order to create an entry on /dev/sda2 pointing to /dev/sda4 so I can now boot into Windows 7 32-bit using the Windows boot menu.... but that's not how I want to do it, I want it back the way it was before so I can boot them all directly from Grub!
I tried creating the BCD on /dev/sda4, I tried booting from the Windows 7 install CD and letting it Repair it, I tried booting from the Windows 7 install CD and using the command line to run the "bootsect" program to fix the boot sector on /dev/sda4... no luck!
Anything else I can try other than just reinstalling the 32-bit Windows 7 installation on /dev/sda4? I had it working before I moved the partition so it has to be possible to get it working like that again.
Addendum:
And just to clarify, since moving the partition I CAN still boot into the 32-bit Windows 7 on /dev/sda4, I just can't do it directly or through Grub., I have to do it through a boot menu on the 64-bit Windows 7 partition /dev/sda2; I can either make /dev/sda2 the primary partition and select the appropriate entry (added with EasyPCB) to boot from /dev/sda4, OR I can make /dev/sda1 the primary partition, get the Grub menu, select the entry that boots /dev/sda2 at get the Windows boot menu, then select the entry that jumps it to /dev/sda4... sheesh. Before I moved the partition, I could boot /dev/sda4 directly through Grub, or I could even boot it directly by seeing it as the active partition.... but I can't do that anymore.
Here's what the partition table looks like (in Linux terms):
/dev/sda1 -- Ubuntu ext4
/dev/sda2 -- Windows 7 64-bit NTFS
/dev/sda3 -- Extended
/dev/sda4 -- Windows 7 32-bit NTFS
I installed Ubuntu first, installed Grub to /dev/sda1 (I haven't used Linux in years but back in 2001 I was a huge advocate of never putting anything in the MBR other than the standard MBR). Installed Windows 7 64-bit to /dev/sda2; the Windows installer made /dev/sda2 the only active partition & put a BCD on there. Then I installed Windows 7 32-bit to /dev/sda4; the Windows installer made /dev/sda4 the only active partition & put a BCD on there. I used the Ubuntu Live CD to set /dev/sda1 as the active partition again, added Grub entries pointing to the two Windows installs, and I had full functionality to boot between the OS's using Grub alone.
Perfect, right? I should have left it at that, but I had some leftover space at the end of the drive that I'd intended to put in my Extended partition, but I didn't so I couldn't do anything with it. So I booted into Ubuntu and made a disk image of /dev/sda4 onto an external drive using the dd command (Disk Duplicator). I expanded my Extended parition and re-created /dev/sda4 so that it was EXACTLY the same size as before, but now 100% of my disk was partitions. Yay! So I used dd again to restore that disk image to the partition, booted into 64-bit Windows (/dev/sda2), and verified that the filesystem on /dev/sda4 was completely intact and functional. Yay!
But... I apparently lost the boot sector on /dev/sda4, since I can no longer boot it through Grub (hangs on a "Starting Up" message), or boot it directly by seeing it as the only active partition ("A disk read error occurred" message). Jeer!
I used EasyBCD in order to create an entry on /dev/sda2 pointing to /dev/sda4 so I can now boot into Windows 7 32-bit using the Windows boot menu.... but that's not how I want to do it, I want it back the way it was before so I can boot them all directly from Grub!
I tried creating the BCD on /dev/sda4, I tried booting from the Windows 7 install CD and letting it Repair it, I tried booting from the Windows 7 install CD and using the command line to run the "bootsect" program to fix the boot sector on /dev/sda4... no luck!
Anything else I can try other than just reinstalling the 32-bit Windows 7 installation on /dev/sda4? I had it working before I moved the partition so it has to be possible to get it working like that again.
Addendum:
And just to clarify, since moving the partition I CAN still boot into the 32-bit Windows 7 on /dev/sda4, I just can't do it directly or through Grub., I have to do it through a boot menu on the 64-bit Windows 7 partition /dev/sda2; I can either make /dev/sda2 the primary partition and select the appropriate entry (added with EasyPCB) to boot from /dev/sda4, OR I can make /dev/sda1 the primary partition, get the Grub menu, select the entry that boots /dev/sda2 at get the Windows boot menu, then select the entry that jumps it to /dev/sda4... sheesh. Before I moved the partition, I could boot /dev/sda4 directly through Grub, or I could even boot it directly by seeing it as the active partition.... but I can't do that anymore.
Last edited: