Tutorial - Dualboot WinXP/Opensuse 11 using grub4dos

In a dual-boot system, opensuse usually installs grub to the MBR, as a result, we can choose either winxp or opensuse to boot into. In case you don’t want to mess with the MBR, there’s another alternative - grub4dos.

This is just a guide to help you install grub4dos so that you can boot into opensuse using the windows boot loader ‘ntldr’ without rewriting the MBR. Please note, this is for a new opensuse 11 install, and not an upgrade. So, we assume there is enough unallocated space after your windows partitions.

An ideal partitioning scheme for dual-boot would be:

sda1-C:-winxp system-ntfs
sda2-D:-ntfs-for all your personal files
sda4-linux swap
sda5-linux boot
sda6-linux home

It is not advisable to create any FAT32 or NTFS partitions after sda6, to be on the safe side (when booting into windows).

Your linux partitions will not show up when you boot into windows, so you can’t read them natively.
For this purpose, there’s a utility called explore2fs.
You can get it from here:

Update: Just added a link for explore2fs

Grub4dos is available from:
Get grub4dos 0.4.3
SourceForge.net: Downloading …

  1. When you’re in windows, download grub4dos and you’ll find a file call ‘grldr’ in the package. Copy that file to the root of C:. Then insert your opensuse 11 live cd and shutdown the system.

  2. On switching it on, it should boot from the live cd and load the opensuse 11 desktop. If it doesn’t, try using the appropriate parameters or use the failsafe mode. (You may look that up on the opensuse website).

  3. Launch the installer on your desktop to install opensuse 11.

  4. Under the partitioning section, you will have to edit your partitions.
    Grub4dos requires that the i-node size of the linux partitions be 128, whereas the default for opensuse 11 is 256.
    So we’ll have to reformat the linux partitions. Click ‘Edit’ to edit the partitions. Select each linux partition (not swap) and change the i-node size to 128 in the ‘Options’.

  5. Once you’ve made the changes, go on to the grub boot loader section. Here you’ll have to make sure that grub is installed in the linux boot partition and not the MBR. So, select ‘Boot Partition’ and apply the changes.

  6. Go over all the settings and continue installing opensuse 11.

  7. When the installer asks you to reboot the system, just boot into winxp.

  8. Next, use explore2fs to copy the ‘menu.lst’ file from sda5 to the root of C:. You’ll find it in the ‘boot’ folder. (You can also use a SLAX live cd to copy the menu.lst file, since SLAX boots faster!). Please note, grub4dos usually searches for the menu.lst file in C:\ first, since that is where ‘grldr’ is placed. If it does not find one in C:, it will search for it in other partitions. So, take care that you do not have any other menu.lst file on other windows partitions.

  9. Rightclick your ‘My Computer’ icon, select ‘Properties’, under the ‘Advanced’ tab, select ‘Settings’ under the ‘Startup and Recovery’ section. Click the ‘Edit’ button under ‘System Startup’ to edit the boot.ini file. Add a new line at the end of the file and type the following:
    Save it and OK everything.

  10. Shutdown your system and then switch it on.

  11. You should see a new line ‘Linux’ below the usual Windows XP selection. Select Linux and press ENTER.

  12. Grub4dos should load and give you options for opensuse 11 and Windows too ! So, select opensuse 11 and press ENTER.

  13. Opensuse 11 should boot for the first time and complete the hardware auto configuration.

  14. Once you get into the desktop, navigate to your boot folder and see if the menu.lst file is identical to the one on your C:\ drive. Thankfully, you’ll be able to read/write to windows partitions from Linux natively.

  15. There’s one more important thing for the future ! Whenever there’s a kernel update, the menu.lst file is also updated.

So, you’ll have to copy the new menu.lst file every time to C:. You can also do this from windows using explore2fs.

Grub4dos also has a command line. So, you can also boot into a linux system by loading the generic kernel/initrd in the command line. For further information on how to use grub4dos effectively, look up the grub4dos website and manual.

As you can see, the MBR is untouched, and uninstalling linux is easier. (Just delete grldr and the menu.lst from C:\ and delete your linux partitions from windows).

Hope this tutorial has been useful. If you have any problems, please post it as a separate thread with ‘grub4dos’ as the prefix.

GoodDay. Glad to see another tutorial for new comers to dual booting. I do however need to point out an excellent utility from Diskinternals called Linuxreader. I use it religiously and can operate with a good deal of functionality with in an ext2 or 3 partition, which includes extracting files to my NTFS partition for use.
This is the link to the Diskinternals site.
DiskInternals Linux Reader
Thanks again. Walk throughs are excellent for users whom are not so experienced and from past experience as a noOb :p, I can say that these are very much appreciated and needed. Excellent work.


Great post… but there’s a problem. Grub4dos only works
in a fat32 partition. If you have an ntfs partition, wont work! You’ll get a dark screen and wont boot into linux.

if that’s your case, goto:
Dual-Boot Linux and Windows 2000/Windows XP with GRUB HOWTO
and it’s very easy to do.


Hi again. i’ve found another way and easier.Works in any linux distribution. (credits to Gilles Vollant Software, 2003 )

1. If you dont have linux, install it. Dont put grub on the MBR. you can set this during install. *(some people advise - create a partition for booting linux. well i created and worked great. ) *

2. If you already have it goto step 4.

3. After installed, reboot your machine and boot into windows.

4. Now goto: BootPart and download bootpart) DIRECT LINK: http://www.winimage.com/bootpa26.zip

5. Unzip it in your main partition where windows is installed.

*6. Run the command propt, goto C:*
(below is a example of readme.txt contained in bootpa26.zip)


0 : C:* type=6 (BIGDOS Fat16), size = 1044193 KB
1 : C: type=a (OS/2 Boot Manag.), size = 8032 KB
2 : C: type=5 (Extended), size = 8032 KB
3 : C: type=7 (HPFS/NTFS), size = 8001 KB
4 : D: type=6 (BIGDOS Fat16), size = 261104 KB
5 : D: type=5 (Extended), size = 769024 KB
6 : D: type=7 (HPFS/NTFS), size = 102384 KB
7 : D: type=5 (Extended), size = 369664 KB
8 : D: type=7 (HPFS/NTFS), size = 369648 KB
9 : D: type=83 (Linux native), size = 296944 KB

Note : Extended partitions (type 5) are the only partitions that can contain other partitions. It’s not useful to add extended partitions to the NT boot
menu ! The * after C: means that partition 0: is the active partition. Now, you add some partitions :


The last line ( A: ) is special, and is designed for a BIOS configured for booting from C: before reading from the floppy (A:). The next time you boot, the Windows NT menu will show Linux, OS/2 Boot Manager, and the floppy!

8. Reboot. Should be working now. Bootpart will update boot.ini automatically.

To add, this is an old one but I think will be helpful also
Grub Multiboot Made Simple - openSUSE Forums

As fenixikki mentioned, theres a mistake in my tutorial.
grub4dos will work only on the FAT32 partition, therefore WinXp has to be installed on an FAT32 partition.

As fenixikki mentioned, theres a mistake in my tutorial.
grub4dos will work only on the FAT32 partition, therefore WinXp has to be installed on an FAT32 partition.

um…sorry about that double post…my mouse isnt working properly nowadays.

…and i think all those colons have turned into smilies now…hope the moderator could correct that !

Apparently, the i-node size problem has been solved with the latest version of grub4dos.

You can get newer versions of grub4dos at this location:

Download grub4dos 0.4.4, the final version will be released soon…so they say.

Now, I suppose for Opensuse 11.0 and above we won’t need to change the i-node size to 128 back, the default of 256 can remain.