ChrmiumOSのオリジナルgrub.cfgです。
一応UEFI32,64bitに対応している様子です。
defaultA=0
defaultB=1
gptpriority $grubdisk 2 prioA
gptpriority $grubdisk 4 prioB
if [ $prioA -lt $prioB ]; then
set default=$defaultB
else
set default=$defaultA
fi
set timeout=2
# NOTE: These magic grub variables are a Chrome OS hack. They are not portable.
menuentry "local image A" {
linux /syslinux/vmlinuz.A init=/sbin/init boot=local rootwait ro noresume
noswap loglevel=7 noinitrd console= i915.modeset=1 cros_efi cros_debug
root=PARTUUID=D77A57B1-21C6-474B-8827-7D8DDDD4BFF1
}
menuentry "local image B" {
linux /syslinux/vmlinuz.B init=/sbin/init boot=local rootwait ro noresume
noswap loglevel=7 noinitrd console= i915.modeset=1 cros_efi cros_debug
root=PARTUUID=49415BE5-9BDC-ED41-B94E-302CCED54F63
}
menuentry "verified image A" {
linux /syslinux/vmlinuz.A init=/sbin/init boot=local rootwait ro noresume
noswap loglevel=7 noinitrd console= dm_verity.error_behavior=3
dm_verity.max_bios=-1 dm_verity.dev_wait=0 i915.modeset=1 cros_efi
cros_debug root=/dev/dm-0 dm="1 vroot none ro 1,0 4096000 verity
payload=ROOT_DEV hashtree=HASH_DEV hashstart=4096000 alg=sha1
root_hexdigest=80174334800011d98e90b0858d440e7b5198c1b5
salt=c49b1f2492008de1d67d33289d14b49198e7755acf3800eb594e9c7e3037731c"
}
menuentry "verified image B" {
linux /syslinux/vmlinuz.B init=/sbin/init boot=local rootwait ro noresume
noswap loglevel=7 noinitrd console= dm_verity.error_behavior=3
dm_verity.max_bios=-1 dm_verity.dev_wait=0 i915.modeset=1 cros_efi
cros_debug root=/dev/dm-0 dm="1 vroot none ro 1,0 4096000 verity
payload=ROOT_DEV hashtree=HASH_DEV hashstart=4096000 alg=sha1
root_hexdigest=80174334800011d98e90b0858d440e7b5198c1b5
salt=c49b1f2492008de1d67d33289d14b49198e7755acf3800eb594e9c7e3037731c"
}
# FIXME: usb doesn't support verified boot for now
menuentry "Alternate USB Boot" {
linux (hd0,3)/boot/vmlinuz init=/sbin/init boot=local rootwait ro noresume
noswap loglevel=7 noinitrd console=
root=PARTUUID=D77A57B1-21C6-474B-8827-7D8DDDD4BFF1 i915.modeset=1 cros_efi
cros_debug
}