LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Ubuntu (http://www.linuxquestions.org/questions/ubuntu-63/)
-   -   Putting 3 windows OS into Grub Menu without going thru windows boot loader (http://www.linuxquestions.org/questions/ubuntu-63/putting-3-windows-os-into-grub-menu-without-going-thru-windows-boot-loader-768198/)

c_mack93 11-10-2009 10:15 AM

Putting 3 windows OS into Grub Menu without going thru windows boot loader
 
I have installed Windows XP, Windows Vista, Windows 7 and Fedora onto one harddrive and i am currently using GRUB boot loader. I want to make is so i can boot all 4 operating systems from one menu without having to go thru the next screen that has all the versions of windows on it. Please help me ASAP

Larry Webb 11-10-2009 10:21 AM

I do not understand your question. Can you boot all the windows and fedora now? Do you get two grub menu.lst's?


Larry

yancek 11-10-2009 02:59 PM

You boot, get the Grub menu, select windows, get the windows menu with three options?

Grub doesn't boot windows, it just points to where the windows bootloader should be and the windows bootloader takes over from there.

You could try EasyBCD which can modify the vista/win 7 bootloader and can be set up to boot Linux, just google it, it's a free download. This might give you what you want, I don't use vista or win 7 so have never used it.

Have you tried putting entries for each windows in menu.lst? Haven't used windows for a while so...?

pixellany 11-10-2009 03:09 PM

to summarize:

Windows boots from NTLDR, which is in turn called by the code in the MBR. If you put GRUB in the MBR, then you use the chainloader in GRUB to boot NTLDR.

Your other options include booting Linux from the Windows loader (There are many threads here on how to do this.), make boot floppies for each system you want to boot, or use multiple hard drives and use the BIOS options.

c_mack93 11-12-2009 11:43 AM

i want GRUB to directly boot to each os without having to go through WIndows bootloader. I installed the OS as follows Xp, Vista, Win7, then Fedora. I want the grub menu to display each operating system and boot to each one without going to windows bootloader. It currently has one option labeled windows and goes to the windows bootloader after choosing it. How can i configure grub to bypass windows bootloader and load each OS??????
this is ny grub config now.


# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,4)
# kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=8
splashimage=(hd0,4)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.29.4-167.fc11.i686.PAE)
root (hd0,4)
kernel /vmlinuz-2.6.29.4-167.fc11.i686.PAE ro root=/dev/mapper/VolGroup-lv_root rhgb quiet
initrd /initrd-2.6.29.4-167.fc11.i686.PAE.img

title windows
hide (hd0,1)
unhide (hd0,0)
root (hd0,0)
makeactive
chainloader +1

pixellany 11-12-2009 11:48 AM

I think several of us have tried to explain that what you are trying to do is not possible. However, I for one cannot PROVE that it is impossible. I can tell you that I have never seen any information that would make me think it could be done.

soleil24 11-13-2009 08:51 PM

Not stepping through the Windows bootloader offering multiple Win options is possible. The "problem" is that subsequent Windows installs see the pre-existing ones and offer them as boot options.

But you need to know you are going to do this before you start.

So, install first windows (e.g. XP) then use 3rd party tool (gparted?) to "hide" that partition.
Install second windows (Vista if you like) and it doesn't "see" XP so offers no boot option except straight to Vista. Use gparted to hide that win partition too so now both win partitions are hidden.
Install 3rd win (7) and it doesn't "see" either xp or vista so doesn't offer them as boot options, just straight to win7. Hide this partition.

Install your favourite Linux installing grub wherever you like.
Manually edit grub's menu.lst to include 3 separate chainload win entries with each entry containing unhide for the win partition you want to boot and hide for the other 2 (2 lines) - this hides them if they have previously been unhidden to boot.

Note that your win installs won't be easily accesible (except the most recently installed) until you have finished this process because you are ultimately relying on your Linux grub to do the booting.

And actually you *are* still using each Windows bootloader (as everyone else has pointed out), you're just not allowing each of those bootloaders to "see" that there are other windows versions to offer as boot options...which I think is what you actually meant !

Now I have to admit I've only done this with XP and 7 (i.e. 2 x win installs) but can't see why by extension it shouldn't work with 3.

IG

soleil24 11-13-2009 09:15 PM

On reflection, as you already have your 3 win installs, you could probably (?) amend your last win bootloader to not display win boot options other than itself, then use grub entries to find them but would suggest editing grub and ensuring it does boot "directly" (indirectly really because you are chainloading their bootloaders) to those win installs before you remove the option to at least get at those other wins. In that transient state your first two win installs should boot "directly" while the third will still show the 3 win options until you change its own bootloader.

For info, the relevant section of my menu.lst looks like this:

Code:

title Windows XP Pro
    rootnoverify (hd0,0)
    unhide (hd0,0)
    hide (hd0,1)
    makeactive
    chainloader +1

title Windows 7
    rootnoverify (hd0,1)
    unhide (hd0,1)
    hide (hd0,0)
    makeactive
    chainloader +1

In your case, each entry should have an additional "hide" line pointing at the second of three win versions you don't want to see.

IG

soleil24 11-13-2009 09:23 PM

Just one other point (of order ;) )

As this thread is in the Ubuntu forum, I'm talking about grub v0.9x and not grub v(nearly)2 that Ubu9.10 has chosen to use, just in case anyone tries that code in grub2 - it won't work !

IG


All times are GMT -5. The time now is 02:45 AM.