grub4dos and Fedora with GRUB2

Dual booting belly aches 😉

grub4dos does not boot Fedora 17.
This basically goes for all linux distro’s using the grub2 boot loader.
The reason is that GRUB2 does not use the /boot/grub/menu.lst which is required for grub4dos. Instead Fedora 17 with GRUB2 uses /boot/grub2/i386/core.img to load the grub2 boot menu.

Here’s one way of fixing it.
Create a /boot/grub/menu.lst file.
If /boot/grub directory does not exist then you’ll have to create it.
And put the following in it. (between the lines)

default=0
timeout=60
title Fedora (3.6.10-2.fc17.x86_64)
        root (hd0,1)
        kernel /vmlinuz-3.6.10-2.fc17.x86_64 root=/dev/sda3 ro more-boot-options
        initrd /initramfs-3.6.10-2.fc17.x86_64.img

grub4dos will now find the /boot/grub/menu.lst file and will happily boot Fedora 17.

Note*
Kernel version number’s are subject to change. You’ll have to substitute them with your own.
root (hd0,1) means first physical hdd second partition which is referring to the /boot partition. You’ll have to substitute the 0,1 with your own hdd configuration.
root=/dev/sda3 means first physical hdd third partition which is referring to the / partition. You’ll have to substitute the sda3 with your own hdd configuration. (Some older systems use hda instead of sda.)
more-boot-options You have to substitute that with the kernel boot options grub2 would have used. You can find the kernel boot options in /boot/grub2/grub.conf.Search for the vmlinuz-3.6.10-2.fc17.x86_64 line. Replace more-boot-options with every thing behind the ro option. You will also see that it does not use the root=/dev/xxx but it uses a fancy UUID number. Which is not very human readable so I prefer the old fashioned way.
On my system it looks like this /vmlinuz-3.6.10-2.fc17.x86_64 root=/dev/sda3 ro rd.md=0 rd.lvm=0 rd.dm=0 SYSFONT=True KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8 rhgb quiet

Note**
Subsequent automated kernel updates won’t be listed in the menu.lst
You have to make the updates in the menu.lst your self after a kernel update.

Note***
hdd stands for hard disk drive.

Leave a Reply

Your email address will not be published.

84 + = 88