Use the Windows Bootloader to dual-boot Windows Vista and Ubuntu
Sponsored Link
I am using Windows Vista Home Premium, and I am sure it works with 7 as well. But still, I can't think why it won't work in Windows XP as well. In my case, I have Ubuntu 10.04 installed on a second partition, and both the operating systems are running properly.
The fix is pretty easy. You just go to this website when running Windows and download EasyBCD. It's a very small and useful app. When this article was written, the latest version was 2.0.2. Now, when the installation is done, run it the program. Now click the button on the left that says ‘Bootloader Setup'. Here, under MBR Configuration Options, choose the relevant radio box, depending on which version of Windows you are using. Now click ‘Write MBR'. After a few seconds, you're done.
Now, go to Add New Entry. Here, under Operating Systems, select the Linux/BSD tab. Now in the drop-down menu, choose ‘GRUB 2' (don't worry, this will cause the GRUB menu to appear when you select this option, but we'll fix that in a minute) and name the option appropriately. Click ‘Add Entry'.
Click the top button on the left, that says ‘View Settings' and check if the two OSs are in the list. You may now close down EasyBCD and reboot your machine.
Now, if everything went well, you must get the Windows bootloader when you start the computer. You must see the two operating systems, as you named. But, the problem? When you choose your Linux option, you get the GRUB boot menu. You don't want that to happen. So let's change a little setting in Linux, so that the menu is not displayed at all and you boot directly to Linux when GRUB starts.
So, the effect will be this: You start the PC, you see the little splash screen (maybe not), and you see the Windows bootloader. You may choose Ubuntu or Windows and directly boot into it.
For this, we need to change the waiting countdown to 0 seconds for GRUB, so that you can boot directly into Ubuntu, when you choose it from the Windows bootloader.
In Ubuntu (10.04 in my case, as I mentioned earlier), first start Terminal (if you're a beginner, you can find it in Applications -> Accessories -> Terminal. Now, you need to run it as a ‘root' user (which is similar to having an elevated window in Windows, except that this is a super elevated user). For this, type in the Terminal window:
sudo -i
Now, it will ask you your password. Type it in (don't worry, nothing's wrong, you won't see anything getting entered into the window and that's normal). Press Enter. Now you'll see ‘root@[computer name]:~#' Type in:
cd /etc/default
Then, key in:
gedit grub
What we've done now is that you changed the directory in the Terminal to the folder ‘/etc/default' and you're now opening the text file ‘grub' located there in the app called Gedit at root level. Now, when the text file is open in Gedit, change the line ‘GRUB_TIMEOUT=10' to ‘GRUB_TIMEOUT=0'.
This will cause the 10 seconds countdown in GRUB to become zero, and you'll boot into Linux as soon as GRUB starts.
Close the file, saving it. Now, in Terminal (open it again and get to ‘root' level if you have closed it), type the command:
update-grub
In a few seconds, the settings will be applied. Now, reboot the computer and see if everything works. You should be able to get into Windows or Ubuntu from the Windows bootloader, and change the settings for the default OS, countdown and other things from EasyBCD, which is installed in Windows.
Update: If the GRUB menu is still displayed, edit the ‘grub' file again, and set the timeout to 0.10 instead of a zero. The GRUB menu should not appear now.
This is a guest post by Antriksh Yadav, author of blog Right Now In Tech. This article has been taken from RNIT.
I’ve tried it before to boot Win-Ubuntu-Mac. It won’t be so easy if your othes OSes located in other hard-drives. It’ll work, from my test, only to boot OS located in the same hard-drive, different partition, Or is it just me?
I did this on a Windows computer, and I just had Ubuntu and Windows installed, on separate partitions, same hard drive.
On a Mac, it is probably different. I have not used a Mac ever but I guess you can easily multi-boot one really easily using Boot Camp, isn’t it?
@glowndark because the slightly different way grub and windows get their hardware config, it may be necessary to “re-map” your drives if the os are not on the same drive. Try google “grub map”.
My preferred way to dual or triple boot is to skip “grub” altogether during install and exporting (using dd) the linux bootsector for use by the windows boot.
If you think that Grub is ugly (and it is) check out burg (http://code.google.com/p/burg/). It’s really nice and I’ve switched to it.
Screenshots: http://code.google.com/p/burg/wiki/Screenshots
agreed, if i need to boot windows and ubuntu i wouldn’t need EasyBCD, would i? Grub has already handled it pretty nicely. actually i happen to have a working hackintosh on the other hard-drive,and EasyBCD should be able to boot the 3 OSes, at least that’s what EasyBCD said, but i can never get it to work.
It is better to do “sudo gedit /etc/default/grub” (without the ” marks) from the terminal to edit GRUB as using the sudo command is much safer than switching to root.
(for those that don’t know the sudo command gives you temporary root privileges for the task you’re currently doing – it is therefore safer than running as root and is considered best practice).
Other than that an excellent tutorial. Thanks man 🙂
when i select ubuntu, my computer restarts. Anyway to avoid this?
There is no need of doing this much. Just goto system–>administration–>startup manager
Then enter the password when prompted. Now under boot options set timeout to 0. Done. Close the window and reboot.
To replace Win bootloader either Grub
use of easyBCD at the first “Add new Entry”:add Linux and then at “BCD Backup/Repair”: chose “change boot drive”->Perform action->now carefully select your windows drive.
good luck.
I have Kali linux (2016.2) and i followed the tutorial and added the entry to the BCD, but when i boot into kali, I get the GRUB4DOS command line (grub>) but NO (useful) command works, even ‘ls’ says “Filesystem compatibility error, cannot read whole file”
How do i solve this?!