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