Hi.
I encountered today an issue with GRUB that I found no way to explain.
First of all, I'm talking about my laptop (Acer Aspire 5633WLMi). I say this because I'm suspecting about a BIOS issue and this machine has a crippled BIOS setup program (as any other laptop I guess), so I can't play much with it.
Well. Here is the story. It is long, so I warn you before you start reading:
The laptop had a 320Gb HDD. Yesterday I bought a 500Gb HDD and installed it today on my laptop. The partition layout of the old 320Gb HDD was like this:
/dev/sda1 (20 GB) - Windows XP <primary partition>
/dev/sda2 (20 GB) - Debian (Lenny then Squeeze) <primary partition>
/dev/sda3 (15 GB) - FreeBSD <primary partition>
<extended partition>
/dev/sda5 (2 GB) - Linux swap
/dev/rest-of-the-disk - <whatever>
I usually avoid installing GRUB in the MBR of the disk and install it instead in the Linux partition just in case I have to reinstall Windows, so GRUB was installed in /dev/sda2 and everything was working nicely. This way I just have to activate /dev/sda2 if I reinstall Windows and I don't have to reinstall GRUB again.
I just wanted the same layout on the new HDD, so I partitioned it like this:
/dev/sda1 (30 GB) - Windows XP <primary partition>
/dev/sda2 (20 GB) - Debian <primary partition>
<extended partition>
/dev/sda5 (2 GB) - Linux swap
/dev/rest-of-the-disk - <whatever>
As you can see, the only changes I did were:
a) Bigger Windows partition.
b) No FreeBSD partition (I planned to add it after I had Debian running).
I use disk imaging tools, so I restored my Windows partition from my Acronis image and my Debian partition from my
partimage image. Partimage saves and restores the boot sector of the partition, so it was a matter of restoring from it and activating /dev/sda2 as I did zillions of times in the past with no issues.
I did so and rebooted. Then, instead of the GRUB menu, I just got a blinking cursor in the top left corner of the screen that stays there forever (I waited 5 minutes because I thought it was a delay).
No errors, no text, no nothing. GRUB was simply not loading.
I proceeded then to install GRUB again. Partimage could have messed it, so I installed GRUB to /dev/sda2 and... blinking cursor.
I then went desperate. Activated /dev/sda1 and Windows booted correctly. Took Super GRUB disk and told it to boot /dev/sda2 from it and Debian was booting fine.
I thought I was hitting a disk cylinder issue and that GRUB was not able to boot partitions beyond a certain disk cylinder.
I resized Windows partition to 20 GB (as I had in the old HDD) and moved the Linux partition next to it. Activated /dev/sda2 and... blinking cursor. I was not hitting any cylinder limit then...
I simply don't understand what is happening.
Same HDD layout, same computer, and GRUB doesn't load in the new disk. WTF?
I finally surrendered and installed GRUB in the MBR of the disk. Now GRUB shows and works nicely, but I
must now what was happening.
Why doesn't GRUB load in the new HDD?