In playing around with a new ASUS Chromebox, tried out the set_gbb_flags.sh utility with flags 0x489 to skip past the verification screen straight into dev mode using the legacy seabios. Worked great, except the shipped legacy bios does not recognize the USB keyboard and so grub can't see the ESC keypress and tries to boot ChromeOS from local SSD which fails. A newer bios fixes this problem.
Here is what worked to restore the box. Used a linux desktop, USB stick, SDD to SATA adapter, and SATA to USB adapter.
Download a Chromium OS build from Arnold the Bat.
Pull the SSD card from the chromebox and use the SSD to SATA adapter, plugged into the SATA to USB to write the Chromium OS on the drive:
# dd if=Camd64OS-20140810010101.img of=/dev/(your block device here) bs=4M
Put the SSD back into the chromebox and boot it up. The Grub configuration on Chromium OS is set to try and boot from USB first and does recognize the USB controller. So now prepare the USB stick with Chromium OS (same dd command as above), plug it into the chrome box and reboot. Chromium OS should come up.
That's great but Chromium OS does not appear to ship with the set_gbb_flags.sh script or the utilities it wants to call, common_minimal.sh, gbb_utility, and flashrom.
Get the Chrome OS recovery image for the ASUS Chromebox.
It will be downloade as a zip file something like:
On the linux desktop unzip it and mount up partition 3 of the file
# unzip chromeos_5712.88.0_panther_recovery_stable-channel_mp.bin.zip # kpartx chromeos_5712.88.0_panther_recovery_stable-channel_mp.bin # mkdir /tmp/cros3 # mount -o ro /dev/mapper/loop0p3 /tmp/cros3
The necessary files (set_gbb_flags.sh, common_minimal.sh, gbb_utility, flashrom) are in /tmp/cros3/usr/bin/old_bins/
Copy them to your running Chromium OS via SSH and reset the bios boot with
sudo set_gbb_flags.sh 0x0
Now get completly get back to square one via the normal Chrome OS recovery procedure using the recovery image already downloaded.