Main heading

x86 compatible booting Linux, Reactos and FreeDOS from GRUB2. The process to install all three is most simply stated thus: Use SliTaz live CD to create 4 partitions, with the one at the front of the disk for FreeDOS. The last one (sda4) is Linux swap. sad1 and sda2 are FAT32, sda3 is an ext file system. I chose a msdos partition table. The live disk includes gparted, whicih makes partitioning about as easy as it can be. May be god to mark the bootable flag o the FreeDOS partition. Do not install Linux yet. Booted the FreeDOS 1.3RC3 live disk and installed FreeDOS on the first partition, sda1 -- the only one it will go on easily. It sems to write to the MBR whether you like it or not, so you install FreeDOS first and then rewrite the MBR when you install GRUB later with Linux. Installed ReactOS in the second parition (sda2) and did not install the bootloader to the MBR. Installed it to the partiion or something -- can't exactly remember,but don;t install it to the MBR. Booted the SliTaz disk again and installed it to sda3 using sda4 as swap. Then, still in Liunx, we open a root terminal and set up GRUB2: The main isue if the 40_custo file $ cat /etc/grub.d/40_custom #!/bin/sh exec tail -n +3 $0 # This file provides an easy way to add custom menu entries. Simply type the # menu entries you want to add after this comment. Be careful not to change # the 'exec tail' line above. # menuentry 'ReactOS 0.4.13' { load_video insmod gzio insmod part_msdos insmod fat set root='(hd0,msdos2)' # Below is from ReactOS wiki chainloader +1 parttool (hd0,2) boot+ multiboot /freeldr.sys } menuentry 'FreeDOS1.3RC3' { load_video insmod gzio insmod part_msdos insmod fat set root='(hd0,msdos1)' parttool (hd0,1) boot+ chainloader +1 } I don't know if all the insmod lines are needed, but this works so I am not messing with it. They istall drivers (modules) that deal with msdos partitions and fat file systems. I suspect the video and gzio lines are not needed, at least for FreeDOS. Reactos probablt needs them; it has a splash screen and all. GRUB2 finds the Linux install automatically, so that is not in here. We then update grub: (as root) # grub-mkconfig -o /boot/grub/grub.cfg and can set the default entry by reading the man page for grub-set-default