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)

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.

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.lvm=0 SYSFONT=True KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8 rhgb quiet

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.

hdd stands for hard disk drive.

Leave a Reply

Your email address will not be published.

+ 84 = 91