I actually had the kernel arg=val repeated twice originally, but the
xen-devel guys said to use dummy=dummy.
I thought the repeated kernel was less likely to break things.


-Bruce


On Thu, May 20, 2010 at 4:59 PM, Seth Goldberg <seth.goldb...@oracle.com>wrote:

>
>  But isn't the argument after "multiboot" the multiboot kernel file?
>  Wouldn't GRUB try to load the file called "dummy=dummy"?
>
>
>  --S
>
> Quoting Bruce Edge, who wrote the following on Thu, 20 May 2010:
>
>  There's a bug in certain hypervisor versions where it drops the first
>> parameter. This is the accepted workaround, pass a dummy param as the
>> first
>> entry.
>>
>> -Bruce
>>
>>
>> On Thu, May 20, 2010 at 4:45 PM, Seth Goldberg <seth.goldb...@oracle.com
>> >wrote:
>>
>>
>>>  What is this 'dummy=dummy' on the multiboot line?
>>>
>>>  --S
>>>
>>>
>>> Quoting Bruce Edge, who wrote the following on Thu, 20 May 2010:
>>>
>>>  Hi
>>>
>>>> Apologies in advance if this is already in the works.
>>>>
>>>> I wanted to provide an etc/grub.d rule for generating boot stanzas for
>>>> Xen
>>>> based systems such that it would end up in the upstream grub release.
>>>> If this conforms to the appropriate conventions, could someone possibly
>>>> add
>>>> it ?
>>>>
>>>> It's basically a copy of etc/grub.d/10_linux and adds checks for dom0
>>>> capable kernels. I picked "09_" as I assumed that one would want to
>>>> default
>>>> to the Xen boot entry, but that may be a matter of some debate.
>>>>
>>>> Thanks
>>>>
>>>> -Bruce
>>>>
>>>>
>>>> #!/bin/bash -e
>>>>
>>>>
>>>> #===============================================================================
>>>> #
>>>> #          FILE:  09_xen
>>>> #
>>>> #         USAGE:  update-grub ... with this in /etc/grub.d
>>>> #
>>>> #   DESCRIPTION: Generate grub2 boot stanza for Xen systems
>>>> #                               Xen boot entries are automatically added
>>>> to
>>>> grub.cfg
>>>> #                               The 09-... name prefix puts the Xen boot
>>>> entries before
>>>> #                               the linux kernel entries
>>>> #
>>>> #       OPTIONS:  ---
>>>> #  REQUIREMENTS:  --- grub2, Xen hypervisor
>>>> #          BUGS:  --- probably
>>>> #         NOTES:  --- Copied from 10_linux with a few hacks to make ir
>>>> work
>>>> for Xen.
>>>> #                                       Incorporated suggestions to only
>>>> do
>>>> this for valid dom0 kernels
>>>> #        AUTHOR:  Bruce Edge (BRE), bruce.e...@lsi.com
>>>> #       COMPANY:  LSI
>>>> #       VERSION:  1.0
>>>> #       CREATED:  05/19/2010 02:32:34 PM PDT
>>>> #      REVISION:  ---
>>>>
>>>>
>>>> #===============================================================================
>>>>
>>>> prefix=/usr
>>>> exec_prefix=${prefix}
>>>> libdir=${exec_prefix}/lib
>>>> . ${libdir}/grub/update-grub_lib
>>>>
>>>> if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then
>>>>  OS=GNU/Linux
>>>> else
>>>>  OS="${GRUB_DISTRIBUTOR}"
>>>> fi
>>>>
>>>> # Source grub defaults
>>>> . /etc/default/grub
>>>>
>>>> # loop-AES arranges things so that /dev/loop/X can be our root device,
>>>> but
>>>> # the initrds that Linux uses don't like that.
>>>> case ${GRUB_DEVICE} in
>>>>  /dev/loop/*|/dev/loop[0-9])
>>>>  GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e
>>>> "s/^[^(]*(\([^)]\+\)).*/\1/"`
>>>>  ;;
>>>> esac
>>>>
>>>> if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" =
>>>> "xtrue" ] \
>>>>  || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" ; then
>>>>  LINUX_ROOT_DEVICE=${GRUB_DEVICE}
>>>> else
>>>>  LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID}
>>>> fi
>>>>
>>>> test_gt ()
>>>> {
>>>>  local a=`echo $1 | sed -e
>>>> "s,.*/vmlinu[zx]-,,g;s/[._-]\(pre\|rc\|test\|git\|old\)/~\1/g"`
>>>>  local b=`echo $2 | sed -e
>>>> "s,.*/vmlinu[zx]-,,g;s/[._-]\(pre\|rc\|test\|git\|old\)/~\1/g"`
>>>>  if [ "x$b" = "x" ] ; then
>>>>  return 0
>>>>  fi
>>>>  dpkg --compare-versions "$a" gt "$b"
>>>>  return $?
>>>> }
>>>>
>>>> find_latest ()
>>>> {
>>>>  local a=""
>>>>  for i in $@ ; do
>>>>  if test_gt "$i" "$a" ; then
>>>>    a="$i"
>>>>  fi
>>>>  done
>>>>  echo "$a"
>>>> }
>>>>
>>>> list=`for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* ; do
>>>>      if grub_file_is_not_garbage "$i" && grep -q 'DOM0=y'
>>>> ${i/vmlinu[xz]/config} ; then echo -n "$i " ; fi
>>>>    done`
>>>>
>>>> while [ "x$list" != "x" ] ; do
>>>>  linux=`find_latest $list`
>>>>  echo "Found linux image: $linux" >&2
>>>>  basename=`basename $linux`
>>>>  dirname=`dirname $linux`
>>>>  rel_dirname=`make_system_path_relative_to_its_root $dirname`
>>>>  version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
>>>>  alt_version=`echo $version | sed -e "s,\.old$,,g"`
>>>>  linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
>>>>
>>>>  initrd=
>>>>  for i in "initrd.img-${version}" "initrd-${version}.img" \
>>>>         "initrd.img-${alt_version}" "initrd-${alt_version}.img"; do
>>>>  if test -e "${dirname}/${i}" ; then
>>>>    initrd="$i"
>>>>    break
>>>>  fi
>>>>  done
>>>>  if test -n "${initrd}" ; then
>>>>  echo "Found initrd image: ${dirname}/${initrd}" >&2
>>>>  else
>>>>  # "UUID=" magic is parsed by initrds.  Since there's no initrd, it
>>>> can't
>>>> work here.
>>>>  linux_root_device_thisversion=${GRUB_DEVICE}
>>>>  fi
>>>>
>>>>  cat << EOF
>>>>  insmod lvm
>>>>  set root=(system-dom0_0)
>>>> menuentry "Xen ${OS}, linux ${version}" {
>>>>      multiboot dummy=dummy /boot/xen.gz $GRUB_CMDLINE_XEN_DEFAULT
>>>>      module ${rel_dirname}/${basename}
>>>> root=${linux_root_device_thisversion} $GRUB_CMDLINE_LINUX_DEFAULT
>>>> EOF
>>>>  if test -n "${initrd}" ; then
>>>>  cat << EOF
>>>>      module ${rel_dirname}/${initrd} ${rel_dirname}/${initrd}
>>>> EOF
>>>>  fi
>>>>  cat << EOF
>>>> }
>>>> EOF
>>>>
>>>>  list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '`
>>>> done
>>>>
>>>>
>>>>  _______________________________________________
>>> Grub-devel mailing list
>>> Grub-devel@gnu.org
>>> http://lists.gnu.org/mailman/listinfo/grub-devel
>>>
>>>
>>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to