Recovering Linux after Re-installing Windows
Dual-booting is a technique used in order install two working Operating Systems in your computer. Multi-booting on the other hand refers to installing two or more OS. This is pretty useful when you have certain work requirements that can't be done in one OS and it can be only done on the other. Say for example, you are using primarily Linux Operating System but in your line of work, you are required to create a sample client application in CSharp. So you need to have a computer that runs on Windows OS to code your CSharp application. Or, let's just say you want to experience or experiment on using other Operating Systems. So you want to have access to computers running on FreeBSD, OpenBSD, Cent OS, Fedora, Ubuntu, Windows. Etc. Learning how to Dual-boot or Multi-boot saves you from installing different Operating Systems on different computers. What you only need is one computer with large storage capacity that can accommodate those different OS types and flavors.
Dual-booting Ubuntu Linux and Windows
The number one rule in dual-booting Linux and Windows is to install the Windows OS first. Why? Because Windows does not support multi-booting with different OS types. With Windows installed first in a certain partion of your Hard Drive, you can then install Linux on the empty partition without having problems. Linux comes with a very useful program called Boot Manager or Boot Loader. In the case of Ubuntu Linux, the Boot Loader program is called GRUB or GNU GRUB (GNU GRand Unified Bootloader).
When you turn on your computer, the Boot Loader will let you select which Operating System you would like to run, either Linux or Windows.
Reinstalling Windows in a Dual-boot Machine
In my case, I have a second hand Lenovo Y410 laptop that was dual-boot with Microsoft Windows Vista and Ubuntu Linux 11.04. I have no problem with the Ubuntu Linux already but with Microsoft Windows Vista, I just want to make sure its virus free. And so I delete the old Vista and installed a new one. (I tried Windows 7 but I got no luck in finding drivers for Lenovo Y410 so I went back to Vista).
After I successfully installed Windows Vista, the Boot Loader of Ubuntu Linux was erased and overwriten. If I turn on the machine, I am not given anymore the choice to boot with Ubuntu. The following are steps I did in order to re-install the GRUB boot loader of Ubuntu:
Steps in Recovering Linux after Re-installing Windows
- Boot with an Ubuntu LiveCD of the same version and architecture with the one that is currently installed.
- From the Ubuntu LiveCD GUI, run a Terminal console.
- From the Terminal console, check and determine what partition in your Hard Disk is your Linux and which one is contains the Windows
# sudo fdisk -l
- Mount the Linux root partition:
# sudo mount /dev/sdXX /mnt
XX can be a0, a1, a2... or b0, b1, b2... or d0, d1, d2... etc.
If you have a separate boot partition in your Linux, mount also this partition:
# sudo mount /dev/sdYY /mnt/boot
- Mount some important virtual filesystems.
# for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
- From the LiveCD terminal, Chroot into your mounted Linux machine.
# sudo chroot /mnt
- Recreate the GRUB configuration file.
- Reinstall GRUB.
# grub-install /dev/sdX
Important Note: Do not specify the partition number.
- Exit from Chroot: CTRL-D on keyboard
- Unmount the virtual filesystems.
# for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
Note: If you have mounted a separate boot partition in Step 4, unmount it also:
# sudo umount /mnt/boot
- Unmount your Linux root partition.
# sudo umount /mnt
- Reboot your computer.
# sudo reboot
Now after following these steps, you must have fully recovered already your Ubuntu Linux. Try booting with your Ubuntu Linux first then check also if you can still boot with your Windows OS.