#! /bin/sh set -e # grub-mkconfig helper script. # Copyright (C) 2006,2007,2008,2009,2010,2011 Free Software Foundation, Inc. # # GRUB is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # GRUB is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with GRUB. If not, see . prefix="@prefix@" exec_prefix="@exec_prefix@" datarootdir="@datarootdir@" . "@datadir@/@PACKAGE@/grub-mkconfig_lib" export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR="@localedir@" CLASS="--class os" if [ x$GRUB_PLATFORM = xx86 ]; then check=--is-x86-multiboot elif [ x$GRUB_PLATFORM = xi386-xen-pae ]; then check=--is-i386-xen-pae-domu elif [ x$GRUB_PLATFORM = xx86_64-xen ]; then check=--is-x86_64-xen-domu else exit 0 fi if ! test -f "$GRUB_ROOT"/platform/i86pc/kernel || ! "${grub_file}" $check "$GRUB_ROOT"/platform/i86pc/kernel; then exit 0 fi case "${GRUB_DISTRIBUTOR}" in *) OS="Illumos" CLASS="--class illumos ${CLASS}" ;; esac echo "menuentry '$(echo "$OS" | grub_quote)' ${CLASS} \$menuentry_id_option 'illumos-$(grub_get_device_id "${GRUB_DEVICE_BOOT}")' {" save_default_entry | grub_add_tab prepare_grub_to_access_device "${GRUB_DEVICE_BOOT}" | grub_add_tab message="$(gettext_printf "Loading kernel of Illumos ...")" cat << EOF insmod gzio if cpuid -l ; then ISADIR=amd64 else ISADIR= fi zfs-bootfs $($grub_mkrelpath "$GRUB_ROOT"/) ZFS_BOOTFS echo '$(echo "$message" | grub_quote)' multiboot $($grub_mkrelpath /platform/i86pc/kernel)/\$ISADIR/unix /platform/i86pc/kernel/\$ISADIR/unix -B \$ZFS_BOOTFS,console=text module $($grub_mkrelpath /platform/i86pc)/\$ISADIR/boot_archive /platform/i86pc/\$ISADIR/boot_archive } EOF