Buried deep in the repository is an entry named ‘boot-config.’ This control how your system reboots when you type ‘reboot.’ Sounds simple right? Good.
The svcs(1) reports the service as follows:
jason@heimdall:/home/jason/smf% svcs boot-config
STATE STIME FMRI
online Mar_23 svc:/system/boot-config:default
The rub for me was that my Intel SR2625 (S5520UR) based servers will not reboot properly with the default setting — of course it is set for “fast reboot.” Fast reboot basically allows Solaris to restart in place without resetting the motherboard and starting from scratch. This is both fast and efficient, if it works. The problem for me is, it just didn’t work. The systems would start to boot OI but then spit out some messages about 32bit address space and that’s where the joy stopped.
The work around for me was to tell OpenIndiana how to reboot to avoid this problem. It simply involves flipping a boolean object to true. Below is the diff.
jason@heimdall:/home/jason/smf% gdiff boot-config.dist.smf boot-config.smf
< <propval name='fastreboot_default' type='boolean' value='true'/>
This is a one line change. Simply feed that back into the repo and your system will completely restart by resetting the bios and come all the way. If this makes sense to you, feel free to stop reading. The balance of the article goes into the mechanics of how to update the repo.
First, dump the boot-config entry to a file.
root@heimdall:/home/jason/smf# svccfg export boot-config > /tmp/boot-config.smf
Now edit the forementioned line. Then push the update back into the repo as follows:
% svccfg verify /tmp/boot-config.smf
% svccfg import /tmp/boot-config.smf
Voila! You are now set for fast reboot.