Change Startup Disks During Boot


Fark Lover
In the Public Beta, you could hold down a key (option, if memory serves) and your Mac would know you wanted to boot into Mac OS 9. It's such a pain in the @$$ to have to open the Startup Disk CP (or Pref) each time I want to change operating systems.

Is there any way to tell Mac OS which version of the OS I want to enter during boot? If not, maybe someone with more programming resources than I will consider making a small app to let you choose (like BootX for Linux).

Any help is appreciated!
The option key still does the trick in the Final version, yet I've had some problems using (i have only tried once though). on my system it pops up with the choices of which system to boot up in, but it just hangs there after i choose a system. annoying.
The option key still does the trick in the Final version, yet I've had some problems using (i have only tried once though). on my system it pops up with the choices of which system to boot up in, but it just hangs there after i choose a system. annoying.
I just tried (once again) to hold down the option key during reboot, hoping there would be even an extremely buggy method for selecting my OS versionduring boot and the feature is simply not there.

Hey, turbine. Did you update using the mysterious pre-release Mac OS X update that's been causing Apple to shut down so many iDisk accounts? In other words, are you still using Mac OS X 10 (Build 4K78), or have you "upgraded" to version 10.0.1 (Build 4L5)? I'm still using 4K78, so maybe this would explain the difference.

In a previous post on the subject, someone listed all the files changed by this update and the startup process was updated.
Well, just to allow for full disclosure, here are my Mac's stats:

Blue&White G3 350 (not overclocked)

256 MB Ram

6 GB HD:
3 GB OS X w/ clean 9.1
Currently Running Mac OS X 10 (Build 4K78)

3 GB OS 8.5.1 for Older Software

Iomega Zip650 CDRW

Advansys SCSI Card (Not sure of the model #, but it does have upgraded ROM chip to allow for boot from SCSI chain)

NEC 17" Monitor (Badly in need of replacement)

Microsoft Intellimouse 1.0

And for the sake of this discussion, I've tried the USB keyboard that came with the B/W G3 and an older ADB Apple Adjustable (Ergonomic) Keyboard. Neither worked. :/
I am running the OUT OF BOX version release of OS X, and the option key works great. I even formatted my partition of the Public Beta version before installing a fresh copy of the release version of OS X.



the option key hasn't worked with the 4k78 build or the 4L5 build. I get the choices of which drive to pick but the cursor with the clock ticking just keeps ticking away. tick...tick...tick...
Hopefully Apple's 10.0.1 update (when it's official) will deal with this issue. If not, maybe some intelligent soul will create a boot panel (ala BootX) to make it easier for those of us who switch back and forth alot.
It may be your firmware version. I beleive that the boot disk switcher is part of the firmware on the computer.
option only works on new world rom machines.

this is something that is built into the machine, and has been around before osx.
Notice he said it worked when he was running the beta. His machine supports it. its just screwwing up.
My latest guess is that the code was there for this functionality to support all compatible Macs in the PB. The final release (10.0) changed the code so it was only comptible with computers with the new world ROMs. Hopefully they will change it back or someone will compose a little BootX-like hack that will let anyone choose.
When OF loads a newworld machine, it looks for a blessed folder ("System Folder" or "/System/Library/CoreServices") with a file of type TBXI. This must be a CHRP script.

Look at the first bit of "Mac OS ROM" or "BootX"

There is a program called ybin that generates a CHRP script that lets you choose your OS at System Startup.

Unfortunately, this program only runs under Linux.

I'll re-install linux on my machine (I took it off because OS X is better), generate the script and post it here.

It will need tweaking but it's a very usefull thing to have.

I'd attempt to describe it now but it's a complex file that uses forth programming (the language of OF).

Link :)
... And after much delays (Sorry) here's that boot menu script.

It assumes one IDE disk with one partition.
To use it, put it in a text file called "menu" at the top level of your HD.
Make Mac OS 9 the default startup disk.
Boot into open firmware (Cmd+Opt+O+F)
type "setenv boot-device hd:,menu"

here's the script...

PowerPC Multiboot
: bootmacos " Booting MacOS 9..." fb8-write drop 100 ms " boot hd:,\\:tbxi" eval ;
: bootmacosx " Booting MacOSX..." fb8-write drop 100 ms " boot hd:,\System\Library\CoreServices\BootX" eval ;
: bootcd " Booting CDROM..." fb8-write drop 100 ms " boot cd:,\\:tbxi" eval ;

" Please select your OS"(0d 0a)" fb8-write drop
" "(0d 0a)" fb8-write drop
" Press m for MacOS,"(0d 0a)" fb8-write drop
" x for MacOSX,"(0d 0a)" fb8-write drop
" c for CDROM,"(0d 0a)" fb8-write drop
" "(0d 0a)" fb8-write drop
" Boot: " fb8-write drop

get-msecs d# 20 3E8 * +
key? if
key case
ascii m of " m "(0d 0a)" fb8-write drop bootmacos endof
ascii x of " x "(0d 0a)" fb8-write drop bootmacosx endof
ascii c of " c "(0d 0a)" fb8-write drop bootcd endof
dup get-msecs <
drop bootmacosx

A brief explanation...

to boot OS 9 it does <B>boot hd:,\\:tbxi</B> which is how OF normally boots and why OS 9 must be the default in startup disk.
The line <B>get-msecs d# 20 3E8 * +</B> controls how long the menu waits before defaulting to mac os x. The 20 means 20 seconds. change it to whatever you want.

For more information etc. you should probably look at the YBIN homepage
I used this program to generate this script (which I modified)

If you don't like the menu, just use startup disk to fix the OF variable.

Hope that helps...
Link :)
Ask before jumping into a ravine, right? :)

I do have two partitions on this computer, but both X and 9.1 are on the first partition. 8.5.1 is on the second to maintain access to an old version of VPC I occasionally use.

Should I change anything in your script or should it work as you claim in my setup?

Actually, I did what you typed above and it didn't work for me. During reboot, my Mac acted as if I had set the startup disk to a System Folder it couldn't locate (i.e. the disk spun for a while and then a blinking question mark icon flashed.) Then it went ahead and booted into Mac OX 9. Two questions arise:

1) How can I fix this script?

2) How do I change setenv back to the way it was?
After a little investigation talking to a friend who knows more about OF than I, I realized the answer to my second question above.

About the first: I was able to determine that my two-partition drive has X & 9 on hd6. I then altered your script to change <blockquote><b>hd:,menu</b></blockquote> to <blockquote><b>hd:6,menu</b></blockquote> Then I booted into OF and typed a similarly modified setenv command: <blockquote><b>setenv boot-device hd:6,menu</b></blockquote> Then I typed in <b>boot</b> and hit return.

This message resulted:<blockquote><b>Parsing &lt;CHRP-BOOT&gt;
DEFAULT CATCH!, code=66 at &nbsp; &nbsp;%SRR0: &nbsp; ff809f10 &nbsp; &nbsp;%SRR1: 0000b030</b></blockquote>
The help you've given so far is very much appreciated! As you can imagine, I'm at a bit of a standstill, so any further help would be... Uhm... Helpful. ;)
It's a lot easier to use "d" which selects the first volume (first partition on the primary ATA bus on my G4) and command-option-shift-delete to select the last volume.

Using this technique you can switch between three volumes without having to use that slow OF boot selector. Switching between first, last, and the OF default you selected in Ssystem Disk.

You can also write an OF script to select a specific system to boot and 'boot' that script (which loads it). I use this technique with yaboot when I used to have a LinuxPPC partition. You can write a script which checks if you're holding a specific key down or you can just edit the script before rebooting.