Here is the problem I’m trying to solve: I have an Intel Mac Mini that I’d like to dual boot multiple versions of OpenBSD. I need to be able to boot into another instance of OpenBSD remotely and without a serial port, I had to come up with a way to choose which OS I want to boot to.
I installed OpenBSD 4.4-current normally on wd0a (wd0b = swap, wd0d = /tmp, wd0e = /var, wd0f = /usr and wd0g = /home).
Here is how I set the machine up with OpenBSD 4.3 installed on wd0h.
While booted to OpenBSD 4.4-current (on wd0a), I created and formatted /dev/wd0h and copied OpenBSD 4.3′s bsd.rd to it. Then I rebooted. At the boot> prompt, I typed hd0h:/bsd.rd. Then, I went through the installation as I normally would. I set partition mount points up as I normally would (d = /tmp, e = none, f = none, g = none, h = none, i = /var, j = /usr). Note that I am using the same /tmp. I also want to use the same /home, but I don’t want /home formatted, so I will add it to wd0h:/etc/fstab later. Also note that I typed ‘none’ for wd0h. Then, when I’m told that “The next step *DESTROYS* all existing data on these partitions!“, I typed ![enter] to escape to a shell and ran the following commands:
sed -e 's/wd0a/wd0h/' /tmp/filesystems > /tmp/fs.mwe cp /tmp/fs.mwe /tmp/filesystems exit
This tells the OpenBSD installer that my / filesystem is wd0h instead of wd0a. At this point, I typed yes and wd0h and my other new partitions were formatted. Then, I watched the install proceed normally. The bootloader was overwritten. If that’s a problem, it’s easily fixed by booting back into -current (or whatever’s on wd0a) and running /usr/mdec/installboot -v /boot /usr/mdec/biosboot wd0.
To change which installation is going to boot, mount /dev/wd0a, if necessary, and edit wd0a:/etc/boot.conf:
set device wd0h
Whenever I want to boot back into wd0a, I remount /dev/wd0a, edit my boot.conf and reboot.
By Aaron S.
That’s an interesting way of solving the problem. I’ll probably adopt something similar instead of having two separate slices with grub messing with partition IDs to overcome some limitations.
This way I get rid of buggy grub, and don’t waste an extra slice.
Thanks for sharing