Once again another great tutorial, thanks Leeky. Here is a few simple steps for people who want to restore and bring back their Linux to boot menu, which consists of :
- Boot Linux
- Chroot into installed Linux
- Reinstalling GRUB
Warning :Long post, close current tab immediately if you need your eyes!
Warning : I don't take any responsibility for damages done to your PC and data, so use it your own risk and follow steps carefully 
Warning : Linux commands are case sensitive, so check that your CapsLock is off before continuing and exactly type the given commands.
1. Boot Linux
First you need to get a Linux LiveCD for yourself such as Ubuntu LiveCD (recommended), Gentoo LiveDVD or Minimal Install CD, ArchLinux Core Image or Net Install Image and burn it on a CD or if you are out of blank CDs you can also use a USB memory stick to boot from.
2. Chroot into installed Linux
a. (Ubuntu LiveCD users only) Open a terminal
b. (Ubuntu LiveCD users only) Type the following command into terminal and press Enter to gain root access :
c. (Optional) If you always forget your partitions setup like me, use following command to get a list of current partitions :
Yes, that's a 'L' like Lamborghini in lower case don't confuse it with 'I' in upper case 
d. Now we are going to mount required partitions, assuming your existing partitions setup looks like this (mine actually) :
Code:
/dev/sda1 Windows boot partition (C:\)
/dev/sda2 Windows logical partition (D:\)
/dev/sda3 Windows logical partition (E:\)
/dev/sda4 Windows logical partition (F:\)
/dev/sda8 /boot
/dev/sda9 swap
/dev/sda10 /
/dev/sda11 /home
Note : You need to perform required changes to following steps depending on your partitions setup.
we need to mount boot (/boot) and root (/) partitions to continue with following commands :
Code:
mount /dev/sda8 /mnt
mount /dev/sda10 /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
e. Now it's time to chroot into existing Linux on your hard drive :
3. Reinstalling GRUB
a. (Ubuntu based Linux users) This step applies to Ubuntu based distros (like Linux Mint) which they use new GRUB2 for boot loader. Install the GRUB(2) with following command :
Code:
grub-install --recheck /dev/sda
a. (Legacy GRUB users) This step applies to other Linux distros which they still use old GRUB for stability/compatibility reasons (like ArchLinux , Gentoo Linux and ...). First we need to fire up GRUB :
Next we are going to tell GRUB where is our boot partition and to install itself :
Code:
root (hd0,7)
setup (hd0)
I know what you are thinking about, that 7 should be 8, but that's how old GRUB works. You need to enter boot partition number - 1 there. In our case boot partition resides in /dev/sda8 so we should enter 8-1=7 there.
b. Exit GRUB with following command :
c. Exit chroot environment with following command :
d. Now reboot with following command :
e. (Ubuntu based Linux users) This step applies to Ubuntu based distros (like Linux Mint) which they use new GRUB2 for boot loader. Open a terminal and type following command to detect Windows installation and enter your root password when asked :
e. (Legacy GRUB users) This step applies to other Linux distros which they still use old GRUB for stability/compatibility reasons (like ArchLinux , Gentoo Linux and ...). GRUB configuration file resides in /boot/grub/menu.lst for ArchLinux and /boot/grub/grub.conf for Gentoo Linux if I remember correctly and similar locations for other distros. Open it with your favorite text editor (like vim and nano) with following command :
Code:
sudo nano /boot/grub/menu.lst
then add these to end of the file to make your Windows installation visible in boot menu :
Code:
# (1) Windows
title Windows 8 Release Preview
rootnoverify (hd0,0)
makeactive
chainloader +1
The second 0 stand for 1-1=0 where Windows partition (C:\) resides which is /dev/sda1 in our case.
f. Press Ctrl+X to save the changes and Y when asked for confirmation.
g. (Optional) Reboot with following command if you like to enter and play around with new installed Windows which should be available in boot menu alongside Linux :
Bonus Material :
1. About partition namings (/dev/sdxy)
- sd stands for SATA hard drives and it could be hd instead for old IDE hard drives
- x is a for boxes with only one hard drive it would be b, c, d, ... for multiple hard drives
- y is a number which points to existing partitions on hard drive and starts from 1
2. What's wrong with old GRUB (in steps 3.a and 3.e)
- Old GRUB always uses hd regardless of hard drive type (IDE/SATA)
- 0 in hd0 stands for index of hard drive in numbers - 1 (remember a, b, c, d, ... explained in previous section)
References :
Restore GRUB2 after installing Windows
Restore GRUB (ArchLinux)
GRUB - ArchWiki