After fitting an IDE SSD in my aging laptop, I found that although Windows 7 (and Windows 8 Preview) would install to it, they wouldn’t boot – instead claiming that there was a disk error.
After some experimentation, I found that the Super Grub2 Disk, booted from a CD, could start Windows via its “Detect any other operating system” option.
But booting from a CD every time sort of defeats the point of a faster drive, so I tried to get grub to boot into Windows from the hard drive. It worked – (almost every time), and here’s how.
- Get an Ubuntu Live disk.
- Boot into Ubuntu and repartition the disk using gparted. Create one ext2 partition of 256Mb (aligned to none) and set its flags to bootable. Create a second partition for NTFS that fills the rest of the disk.
- From the terminal, start a su shell and mount the ext2 partition as /boot, then install grub
- sudo –i
- mount /dev/sda1 /boot
- grub-install /dev/sda
- Install windows to the second partition, you might need the Super Grub2 disk to help it through the reboots.
- Boot into Ubuntu again, mount the boot partition, and find the volume info for the NTFS partition using the blkid command.
- Create a /boot/grub/grub.cfg that looks like this
set default=0
set timeout=0menuentry "Windows 7" --class windows --class os {
insmod part_msdos
insmod ntfs
insmod ntldr
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set=root BIGHEXNUMBERFROMBLKID
ntldr ($root)/bootmgr
}