YABOOT(8) | System Manager's Manual | YABOOT(8) |
yaboot is not a Linux or MacOS executable file. Attempting to execute yaboot from a Linux shell will only result in a Segmentation Fault. yaboot is meant to be executed only by OpenFirmware.
yaboot is executed from OpenFirmware in the following manner: boot hd:2,yaboot where hd: is the OpenFirmware path for the hard disk, and the 2 is the partition number yaboot is located on. In this example, the hard disk path is actually an OpenFirmware alias which is present on all NewWorld PowerMacs. It usually points to the internal ATA hard disk. If you have a SCSI disk, then you might execute yaboot with this command: boot /pci@80000000/pci-bridge@d/ADPT,2930CU@2/@1:2,yaboot This path will vary depending on what kind of SCSI host adapter you have. For a more detailed explanation of OpenFirmware's [disgusting] paths, see man bootstrap(8). On IBM hardware yaboot is directly copied to the bootstrap(8) partition raw, without any filesystem. OpenFirmware will boot from a type 0x41 PReP Boot parition marked bootable, this must contain yaboot. On IBM hardware the config file is read directly from the root filesystem. On PowerMac hardware it must be present on the bootstrap(8) partition but ybin(8) will take care of that.
Fortunately you do not normally have to execute yaboot manually. If you have partitioned your disk with a bootstrap(8) partition and used ybin(8) to install yaboot then you will not have to execute yaboot yourself. (If this does not work you can also set the boot-device variable in OpenFirmware to have it boot automatically, see man bootstrap(8).)
Once yaboot has been executed by OpenFirmware it will display a boot: prompt where you may enter a label for a kernel image defined in yaboot.conf(5). If there is no kernel image defined in yaboot.conf(5) you can still boot an arbitrary image by specifying its absolute OpenFirmware path, similar to the above commands for executing yaboot itself. Simply omit the boot command and enter only the pathname. (See EXAMPLES below)
When booting an image (either as a predefined label or absolute path) any arguments are passed to the image. For example: boot: linux root=/dev/hda3 which would pass the argument root=/dev/hda3 to the kernel.
yaboot should preferably be installed on a dedicated bootstrap(8) partition (type Apple_Bootstrap for PowerMacs, type 0x41 PReP Boot for IBM hardware). This allows the partition to be modified in such a way that OpenFirmware will load yaboot or a boot menu automatically with a default OF configuration. If yaboot cannot be installed on a bootstrap(8) partition it can be installed on the root of a MacOS boot partition instead. yaboot however should not be installed in a subdirectory of the MacOS filesystem as this is less reliable and more difficult to execute from OpenFirmware. See the ybin(8) man page for more details on installing yaboot (ybin(8) is a utility for installing yaboot with minimal difficulty).
The yaboot.conf(5) file must be next to the yaboot executable on the bootstrap(8) partition. ybin(8) will take care of this.
OpenFirmware may be accessed by holding down the command, option, o, f keys immediately upon power-up.
OpenFirmware's settings may be reset to default values by holding down the command, option, p, r keys while cold booting.
If you have G4 hardware then your OpenFirmware may already have a graphical boot selector built in. This selector can be accessed by holding down the option key when booting the machine. You should see a screen with buttons for each bootable partition. The current version (included with ybin(8) 0.13) of ofboot includes a badge icon, the button with a penguin icon is your bootstrap(8) partition. Thanks to Nicholas Humfrey for creating the Badge icon.
The bootstrap(8) partition need not and should not be mounted anywhere on your filesystem, especially not on top of /boot. Yaboot is able to load the kernels from the ext2fs root partition so that is where they should be kept.
boot hd:2,yaboot
boot yaboot from partition 2 of a disk with SCSI ID 2 attached to a Adaptec 2930 SCSI Host adapter (this is on a rev1 blue G3, it may vary on other models):
boot /pci@80000000/pci-bridge@d/ADPT,2930CU@2/@2:2,yaboot
boot a kernel image located on partition number 3 of internal ATA disk (from yaboot's boot: prompt):
hd:3,/boot/vmlinux
boot a kernel image located on partition 3 of SCSI disk ID 2 on a Adaptec 2930 Host adapter (from yaboot's boot: prompt):
/pci@80000000/pci-bridge@d/ADPT,2930CU@2/@2:3,/vmlinux
/boot/yaboot.conf - boot loader configuration file
yaboot was written by Benjamin Herrenschmidt <benh@kernel.crashing.org>.
21 November 2001 | GNU/Linux PowerPC |