Disclaimer

The standard disclaimer applies. The document is provided on an "as is" basis. The author provides no warranty whatsoever, either express or implied, regarding the work, including warranties with respect to its merchantability or fitness for any particular purpose. You can easily ruin your hard disk when trying to do something similar to what I am reporting here.

This is a kind of a field report about my (Bernhard Treutwein) experiences with Grub and other boot managers. Although it worked for me, there is some chance that it might ruin your system with only some keystrokes. Do not blame me, if it does not work for you, feel happy, if it works. If it does not work, drop me a note, maybe I find some time to answer questions or give you a hint where to proceed. I only report what I have done successfully.

Using GRUB legacy as boot loader

Basic Configuration

If you have access to a running Linux/Unix system on the net: Get the current bazaar version of GRUB legacy (I don't have any experience with bazaar, so this link might be wrong). Do the usual ./configure ; make. Otherwise fetch it from here and unpack it.

Copy stage1/stage1 stage2/stage2 and stage2/*stage1_5 to a GRUB accessible partition (e.g. ext2 or VFAT) in the directory /boot/grub.

I created a file /boot/grub/menu.lst with the following contents which can serve as an example for a boot menu with three entries two for booting Native Oberon and one for booting DOS:

timeout = 15
default = saved

title = Native Oberon with Cyrrus-Logic GD5434 (HP-Vectra built in)
save default
chainloader = (hd0,0)+1

title = Native Oberon with Creative 3D-Blaster (NVidia Vanta Vesa 3.0)
savedefault
chainloader = (hd0,1)+1

title = DOS
savedefault
chainloader = (hd0,2)+1

The entries "savedefault" and "default saved" allow for unattended rebooting of the current operating system, an option, which I like very much.

Note the numbering scheme of hard disks and partitions: The first hard disk/partition is zero and the numbers are increasing. That is my first installation with the built in graphics card is on the first hard disk in the first partition. GRUB is able to boot from any  hard disk / partition combination as long as the BIOS and the OS is supporting this. Since the chain loader of Native Oberon is limited by the 8GB BIOS limit, NO cannot be booted from a partition beyond 8GB.

Now to the funny stuff: GRUB has a command line interface and can install itself from that. That is for installation of GRUB on any system it suffices to have a bootable diskette with any version of GRUB on it. If you copy new stage1 and stage2 (maybe also *stage1_5 are necessary, I don't know) to /boot/grub and boot it, you can install the new versions on the GRUB command line with the following commands:

grub> root (fd0)
grub> setup (fd0)

This will install the new versions on the floppy. If you have created the directory tree /boot/grub on the third partition of the first hard disk (it must be GRUB accessible, mine is a VFAT) and if you have copied the stage1 and stage2 there, you need the following commands (after having booted the GRUB commandline from a floppy)

grub> root (hd0,2)
grub> setup (hd0)

Advanced Stuff

Oberon on the second HD

After a successfull installation of Oberon on the second HD, and the following entry in the menu.lst:

title = Native Oberon on the second primary partition on the second ide hard disk
savedefault
chainloader = (hd1,1)+1

GRUB chainloads the Oberon bootloader, but hangs after printing OBE. There is a hint about this problem and a solution by "patching" the boot sector of the Oberon partition in the FAQ on ETH Oberon - alpha/beta releases. Here is my way of correcting the problem:

Boot from a Knoppix CD (a completely CD based Linux distribution based on Debian. Console mode should be enough, but normally X11 won't hurt, but if you have an older PC with not enough memory, you should dig a little bit into the boot options. Switch to a root console (if X11 is running: Hit Ctrl-Alt-F2). Do a

dd if=/dev/hdb of=/tmp/bootsect count=1
cd /tmp
mc

The last line calls for the MidnightCommander (a Norton Commander clone), which allows for hex editing. You should see now a split screen display with the directory listing of /tmp on the left. Scroll down until the file bootsect is highlighted. Hit F3 to enter the View mode. You should now see the contents of the boot-sector. It should (as noted in the FAQ) have the string OBERON starting at offset 3. You can now switch to a combined hex/ascii mode by hitting F4, and start hex-editing by hitting F2. F2 from now on toggles between editing in the hex and ascii window. Switch to the hex mode, walk to third line and change the 80 to 81 (see Figure). Now leave the Midnight Commander by hitting ESC (evtl. twice) and confirming the save question. Now you have to restore the bootsector with

dd of=/dev/hdb if=/tmp/bootsect count=1

If you dare to use Linux, you can also grep the boot sector from witin Oberon (e.g. the installation diskette with Oberon-0) with

Partitions.PartitionsToFile IDE1#2 bootsec 0 1~

Now, either transfer it somehow to a Win32 system and then use the Win32 version of the GNU MidnightCommander, which can be found here, or follow the instructions given in Topic 6. of the BlueBottle FAQ. These instructions are not limited to BlueBottle, they work nicely under a normal Native Oberon installation, although I fear that the Oberon-0 diskette is insufficient. There is also a System 3 tool viewer called Hex.Tool, which you should open with Desktops.OpenDoc.