Index: head/sysutils/grub2-pcbsd/Makefile =================================================================== --- head/sysutils/grub2-pcbsd/Makefile (revision 388788) +++ head/sysutils/grub2-pcbsd/Makefile (revision 388789) @@ -1,99 +1,97 @@ # Created by: kmoore@FreeBSD.org # $FreeBSD$ PORTNAME= grub2-pcbsd -PORTVERSION= 2.02p -PORTREVISION= 26 +PORTVERSION= 2.02q CATEGORIES= sysutils -MASTER_SITES= http://www.pcbsd.org/~kris/software/ \ +MASTER_SITES= http://www.pcbsd.org/~kris/software/ \ ftp://ftp.pcbsd.org/pub/software/ -DISTNAME= grub-2.02_5 +DISTNAME= grub-2.02_7 MAINTAINER= kmoore@FreeBSD.org COMMENT= Multiboot boot loader LICENSE= GPLv3 BUILD_DEPENDS= ${LOCALBASE}/bin/flex:${PORTSDIR}/textproc/flex \ ${LOCALBASE}/bin/bash:${PORTSDIR}/shells/bash \ help2man:${PORTSDIR}/misc/help2man WRKSRC= ${WRKDIR}/grub-2.02 CONFLICTS= grub-0* grub2-2* SSP_UNSAFE= yes USE_GCC= yes -USE_AUTOTOOLS= automake aclocal autoconf ACLOCAL_ARGS= -Im4 GNU_CONFIGURE= yes -USES= bison cpe gettext gmake makeinfo python tar:xz +USES= autoreconf bison cpe gettext gmake makeinfo python tar:xz ONLY_FOR_ARCHS= i386 amd64 INFO= grub grub-dev MAKE_JOBS_UNSAFE= yes CPE_PRODUCT= grub CPE_VENDOR= gnu CONFIGURE_ARGS= --disable-werror --localedir=${PREFIX}/share/locale CONFIGURE_ENV= CPP="${CC} -E" \ LEX=${LOCALBASE}/bin/flex SUB_FILES= 00_header 10_kfreebsd 10_ktrueos 30_os-prober 50_otherbe OPTIONS_DEFINE= MKFONT FUSE OPTIONS_DEFAULT=MKFONT MKFONT_DESC= Build grub-mkfont (require freetype2) FUSE_DESC= Build grub-mount (require FUSE) .include .if ${ARCH} != "amd64" EFIEMU= "@comment " .endif PLIST_SUB+= EFIEMU=${EFIEMU} .if ${PORT_OPTIONS:MMKFONT} LIB_DEPENDS+= libfreetype.so:${PORTSDIR}/print/freetype2 BUILD_DEPENDS+= ${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf:${PORTSDIR}/x11-fonts/dejavu \ ${LOCALBASE}/share/fonts/gnu-unifont/unifont.pcf.gz:${PORTSDIR}/x11-fonts/gnu-unifont MAN1+= grub-mkfont.1 CONFIGURE_ARGS+= --enable-grub-mkfont .else CONFIGURE_ARGS+= --disable-grub-mkfont MKFONT= "@comment " .endif PLIST_SUB+= MKFONT=${MKFONT} .if ${PORT_OPTIONS:MFUSE} LIB_DEPENDS+= libfuse.so:${PORTSDIR}/sysutils/fusefs-libs CONFIGURE_ARGS+= --enable-grub-mount .else CONFIGURE_ARGS+= --disable-grub-mount FUSE= "@comment " .endif PLIST_SUB+= FUSE=${FUSE} post-patch: @${TOUCH} -t 200001010000 ${WRKSRC}/Makefile.util.def pre-configure: @${REINPLACE_CMD} -e 's|python|${PYTHON_CMD}|g' ${WRKSRC}/autogen.sh cd ${WRKSRC} && ./autogen.sh post-configure: @${LN} -sfh /usr/include/machine /usr/include/sys /usr/include/x86 ${WRKSRC}/grub-core post-install: - @${RM} -rf ${STAGEDIR}${PREFIX}/lib/charset.alias - @${INSTALL_SCRIPT} ${WRKDIR}/00_header ${STAGEDIR}${PREFIX}/etc/grub.d/ - @${INSTALL_SCRIPT} ${WRKDIR}/10_kfreebsd ${STAGEDIR}${PREFIX}/etc/grub.d/ - @${INSTALL_SCRIPT} ${WRKDIR}/10_ktrueos ${STAGEDIR}${PREFIX}/etc/grub.d/ - @${INSTALL_SCRIPT} ${WRKDIR}/30_os-prober ${STAGEDIR}${PREFIX}/etc/grub.d/ - @${INSTALL_SCRIPT} ${WRKDIR}/50_otherbe ${STAGEDIR}${PREFIX}/etc/grub.d/ - @${MV} ${STAGEDIR}${PREFIX}/etc/grub.d/40_custom ${STAGEDIR}/${PREFIX}/etc/grub.d/40_custom.dist + ${RM} -rf ${STAGEDIR}${PREFIX}/lib/charset.alias + ${INSTALL_SCRIPT} ${WRKDIR}/00_header ${STAGEDIR}${PREFIX}/etc/grub.d/ + ${INSTALL_SCRIPT} ${WRKDIR}/10_kfreebsd ${STAGEDIR}${PREFIX}/etc/grub.d/ + ${INSTALL_SCRIPT} ${WRKDIR}/10_ktrueos ${STAGEDIR}${PREFIX}/etc/grub.d/ + ${INSTALL_SCRIPT} ${WRKDIR}/30_os-prober ${STAGEDIR}${PREFIX}/etc/grub.d/ + ${INSTALL_SCRIPT} ${WRKDIR}/50_otherbe ${STAGEDIR}${PREFIX}/etc/grub.d/ + ${MV} ${STAGEDIR}${PREFIX}/etc/grub.d/40_custom ${STAGEDIR}/${PREFIX}/etc/grub.d/40_custom.dist -.include - RUN_DEPENDS:= ${RUN_DEPENDS:Ngcc*} + +.include Index: head/sysutils/grub2-pcbsd/distinfo =================================================================== --- head/sysutils/grub2-pcbsd/distinfo (revision 388788) +++ head/sysutils/grub2-pcbsd/distinfo (revision 388789) @@ -1,2 +1,2 @@ -SHA256 (grub-2.02_5.tar.xz) = ef44c89fa681c8308f847fa682c64d19e1bf296bbd7db0e282c1ecc9b0f9314a -SIZE (grub-2.02_5.tar.xz) = 4994516 +SHA256 (grub-2.02_7.tar.xz) = 044588d9754142f2982478cb4e7289ab1521fd4412b2a0804ce647c3ff73feff +SIZE (grub-2.02_7.tar.xz) = 5019120 Index: head/sysutils/grub2-pcbsd/files/10_ktrueos.in =================================================================== --- head/sysutils/grub2-pcbsd/files/10_ktrueos.in (revision 388788) +++ head/sysutils/grub2-pcbsd/files/10_ktrueos.in (revision 388789) @@ -1,385 +1,393 @@ #!/bin/sh # -# Copyright 2014 iXsystems (Kris Moore) +# Copyright 2015 iXsystems (Kris Moore) # All rights reserved # # Redistribution and use in source and binary forms, with or without # modification, are permitted providing that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # Script to detect TrueOS / PC-BSD disk installations and create grub # entries for them ROOTFS=`mount | awk '/ \/ / {print $1}'` BEDS="$( echo ${ROOTFS} | awk -F '/' '{print $2}' )" if [ "$BEDS" = "dev" ] ; then BEDS="ROOT"; fi serial=0; console=0; for x in ${GRUB_TERMINAL_OUTPUT}; do if [ xserial = "x$x" ]; then serial=1; fi if [ xgfxterm = "x$x" ]; then console=1; fi if [ xconsole = "x$x" ]; then console=1; fi done + +# Set the default output as dual console / serial +# This is so we can run properly in bhyve and other serial use cases +# If the user manually sets GRUB_TERMINAL, we will ignore this default +if [ -z "$GRUB_TERMINAL" ] ; then + out="-D -h" +fi + if [ "x$serial" = "x1" ]; then if [ "x$console" = "x1" ]; then out="-Dh" else out="-h" fi fi display_loaderopts() { # Optional ARG1, set to a ZFS dataset to mount and read values from if [ -n "$1" ] ; then fMnt="/mnt.$$" mkdir $fMnt mount -t zfs ${1} $fMnt >/dev/null if [ $? -ne 0 ] ; then echo "Failed to mount ${1}" >&2 return fi else fMnt="" fi # Create our placeholder to save _load entries to parse touch /tmp/.lRObjs.$$ touch /tmp/.lSysCtls.$$ # Loader files, in order of which to read them lFiles="${fMnt}/boot/loader.conf.local ${fMnt}/boot/loader.conf ${fMnt}/boot/loader.conf.trueos ${fMnt}/boot/loader.conf.pcbsd" for f in $lFiles do if [ ! -e "$f" ] ; then continue ; fi # Lets parse any of the _load= lines grep "_load=" ${f} | grep -v "^#" >/tmp/.lObjs.$$ while read line do loadVal="`echo $line | cut -d '=' -f 1`" # Is this value already set in a higher priority file? grep -q "^${loadVal}" /tmp/.lRObjs.$$ if [ $? -eq 0 ];then continue; fi # Save this value for later echo "$line" >> /tmp/.lRObjs.$$ haveObjs=1 done < /tmp/.lObjs.$$ rm /tmp/.lObjs.$$ # Lets look for any sysctls to set grep "." ${f} | grep "=" | grep -v "^#" | grep -v "_load" >/tmp/.sObjs.$$ while read line do loadVal="`echo $line | cut -d '=' -f 1`" # Is this value already set in a higher priority file? grep -q "^${loadVal}" /tmp/.lSysCtls.$$ if [ $? -eq 0 ];then continue; fi # Save this value for later echo "$line" >> /tmp/.lSysCtls.$$ haveSysCtls=1 done < /tmp/.sObjs.$$ rm /tmp/.sObjs.$$ done # Using GELI encryption? haveGELI="false" # Now lets echo out the modules to load if [ "$haveObjs" = "1" ] ; then while read line do echo "$line" | grep -q '"YES"' if [ $? -ne 0 ] ; then continue ; fi module="`echo $line | cut -d '=' -f 1 | sed 's|_load||g'`" # Try to locate module now if [ -e "${fMnt}/boot/kernel/${module}.ko" ] ; then mPath="kernel" elif [ -e "${fMnt}/boot/modules/${module}.ko" ] ; then mPath="modules" else # This isn't a module that we can see, lets set it as a variable #echo "No such module $line, setting as a variable" >&2 echo "$line" >> /tmp/.lSysCtls.$$ continue fi # Are we loading GELI module? if [ "$module" = "geom_eli" ] ; then haveGELI="true" ; fi echo " kfreebsd_module_elf ${loadPrefix}/@/boot/${mPath}/${module}.ko" done < /tmp/.lRObjs.$$ fi # Add our compat kenv lines echo " set kFreeBSD.bootfile=\"kernel\"" echo " set kFreeBSD.kernel=\"kernel\"" echo " set kFreeBSD.kernel_options=\"\"" echo " set kFreeBSD.kernelname=\"/boot/kernel/kernel\"" echo " set kFreeBSD.module_path=\"/boot/kernel;/boot/modules\"" # Any kenv to set? if [ "$haveSysCtls" = "1" ] ; then while read line do # Strip out the vfs.root.mountfrom, we set that elsewhere echo "$line" | grep -q "vfs.root.mountfrom" if [ $? -eq 0 ] ; then continue ; fi line="`echo $line | sed 's|"||g'`" key="`echo $line | cut -d '=' -f 1`" val="`echo $line | cut -d '=' -f 2`" if [ -z "$key" -o -z "$val" ] ; then continue ; fi echo " set kFreeBSD.${key}=\"${val}\"" done < /tmp/.lSysCtls.$$ fi rm /tmp/.lRObjs.$$ rm /tmp/.lSysCtls.$$ if [ -n "$1" ] ; then umount /mnt.$$ >/dev/null rmdir /mnt.$$ >/dev/null fi # Set the grub.platform kenv variable echo " set kFreeBSD.grub.platform=\"\$grub_platform\"" # See if we need to do GELI passphrase passthrough if [ "$haveGELI" = "true" ] ; then echo " set kFreeBSD.kern.geom.eli.passphrase=\"\$pass\"" fi } detect_beadm() { /usr/bin/which -s beadm >/dev/null 2>/dev/null if [ $? -ne 0 ] ; then return 0; fi # Check if we are running from the installer and use its beadm if [ -e "/root/beadm.install" ] ; then BEADM="/root/beadm.install" # Check if this is valid testBE=`$BEADM list` if [ -z "$testBE" ] ; then # No BE's, lets switch back to regular mode BEADM="`/usr/bin/which beadm`" fi else BEADM="`/usr/bin/which beadm`" fi ${BEADM} list >/dev/null 2>/dev/null if [ $? -ne 0 ] ; then return 0; fi if [ -e "/etc/defaults/pcbsd" ] ; then NICK="PC-BSD" else NICK="TrueOS" fi # Only list the default BE here $BEADM list -H >/tmp/.grub-beadm.$$ 2>/dev/null while read line do be=`echo $line | awk '{print $1}'` flags=`echo $line | awk '{print $2}'` # Is this BE marked as wanting to be used for next boot? Make it the first one if so if [ "$flags" = "NR" -o "$flags" = "R" ] ; then BE_LIST="$be" break fi done < /tmp/.grub-beadm.$$ rm /tmp/.grub-beadm.$$ # Get list of beadm datasets for b in $BE_LIST do # Got a beadm snapshot, lets get the complete dataset name beLine=`${BEADM} list -a | grep "/$BEDS/${b}"` cdataset=`echo $beLine | awk '{print $1}'` cdatadate=`echo $beLine | awk '{print $5}'` cdatatime=`echo $beLine | awk '{print $6}'` ztank=`echo $cdataset | cut -d '/' -f 1` shortdataset="/`echo $cdataset | cut -d '/' -f 2-5`" # Get the BE nickname if it exists beNickName=`${BEADM} list | grep "^${b} " | tr -s ' ' | cut -d ' ' -f 7-12` if [ -z "$beNickName" ] ; then beNickName="$b" fi # First part of this dataset cat > /tmp/.grubdataset.$$.1 << EOF insmod zfs search --no-floppy -s -l $ztank EOF # Second part of loader to save cat > /tmp/.grubdataset.$$.2 << EOF kfreebsd_module ${shortdataset}/@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache set kFreeBSD.vfs.root.mountfrom=zfs:$cdataset EOF # Now lets look for options in loader.conf to load loadPrefix="${shortdataset}" # If this is the current mounted dataset, we can skip mounting it mount | grep -q -e "$cdataset on / (" -e "$cdataset on /mnt (" if [ $? -eq 0 ] ; then display_loaderopts >>/tmp/.grubdataset.$$.2 else display_loaderopts $cdataset >> /tmp/.grubdataset.$$.2 fi # Lets start a submenu for each BE cat << EOF submenu "${NICK} (${beNickName}) - ${cdatadate} ${cdatatime}" { EOF # Lets do the default entry first ################################# cat << EOF menuentry "Normal Bootup" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out}" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF } EOF # Next lets do single user mode ################################# cat << EOF menuentry "Single User Mode" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out} -s" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF } EOF # Next lets do verbose mode ################################# cat << EOF menuentry "Verbose Mode" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out} -v" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF } EOF if [ -e "/etc/defaults/pcbsd" ] ; then # Next lets do display wizard ################################# cat << EOF menuentry "Run the Display Wizard" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 - echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel" + echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out}" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF set kFreeBSD.runwiz=YES } EOF # Now for vesa mode ################################# cat << EOF menuentry "Run X in vesa mode" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 - echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel" + echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out}" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF set kFreeBSD.xvesa=YES } EOF # Now for non-xorg mode ################################# cat << EOF menuentry "Boot to console (Disable X)" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 - echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel" + echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out}" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF set kFreeBSD.noxorg=YES } EOF fi # Lastly lets close the submenu section cat << EOF } EOF done # Cleanup after ourselves if [ -e "/tmp/.grubdataset.$$.1" ] ; then rm /tmp/.grubdataset.$$.1 rm /tmp/.grubdataset.$$.2 fi } # Detect our types of disk layouts detect_beadm Index: head/sysutils/grub2-pcbsd/files/50_otherbe.in =================================================================== --- head/sysutils/grub2-pcbsd/files/50_otherbe.in (revision 388788) +++ head/sysutils/grub2-pcbsd/files/50_otherbe.in (revision 388789) @@ -1,392 +1,400 @@ #!/bin/sh # -# Copyright 2014 iXsystems (Kris Moore) +# Copyright 2015 iXsystems (Kris Moore) # All rights reserved # # Redistribution and use in source and binary forms, with or without # modification, are permitted providing that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. # Script to detect TrueOS / PC-BSD disk installations and create grub # entries for them ROOTFS=`mount | awk '/ \/ / {print $1}'` BEDS="$( echo ${ROOTFS} | awk -F '/' '{print $2}' )" if [ "$BEDS" = "dev" ] ; then BEDS="ROOT"; fi serial=0; console=0; for x in ${GRUB_TERMINAL_OUTPUT}; do if [ xserial = "x$x" ]; then serial=1; fi if [ xgfxterm = "x$x" ]; then console=1; fi if [ xconsole = "x$x" ]; then console=1; fi done + +# Set the default output as dual console / serial +# This is so we can run properly in bhyve and other serial use cases +# If the user manually sets GRUB_TERMINAL, we will ignore this default +if [ -z "$GRUB_TERMINAL" ] ; then + out="-D -h" +fi + if [ "x$serial" = "x1" ]; then if [ "x$console" = "x1" ]; then out="-Dh" else out="-h" fi fi display_loaderopts() { # Optional ARG1, set to a ZFS dataset to mount and read values from if [ -n "$1" ] ; then fMnt="/mnt.$$" mkdir $fMnt mount -t zfs ${1} $fMnt >/dev/null if [ $? -ne 0 ] ; then echo "Failed to mount ${1}" >&2 return fi else fMnt="" fi # Create our placeholder to save _load entries to parse touch /tmp/.lRObjs.$$ touch /tmp/.lSysCtls.$$ # Loader files, in order of which to read them lFiles="${fMnt}/boot/loader.conf.local ${fMnt}/boot/loader.conf ${fMnt}/boot/loader.conf.trueos ${fMnt}/boot/loader.conf.pcbsd" for f in $lFiles do if [ ! -e "$f" ] ; then continue ; fi # Lets parse any of the _load= lines grep "_load=" ${f} | grep -v "^#" >/tmp/.lObjs.$$ while read line do loadVal="`echo $line | cut -d '=' -f 1`" # Is this value already set in a higher priority file? grep -q "^${loadVal}" /tmp/.lRObjs.$$ if [ $? -eq 0 ];then continue; fi # Save this value for later echo "$line" >> /tmp/.lRObjs.$$ haveObjs=1 done < /tmp/.lObjs.$$ rm /tmp/.lObjs.$$ # Lets look for any sysctls to set grep "." ${f} | grep "=" | grep -v "^#" | grep -v "_load" >/tmp/.sObjs.$$ while read line do loadVal="`echo $line | cut -d '=' -f 1`" # Is this value already set in a higher priority file? grep -q "^${loadVal}" /tmp/.lSysCtls.$$ if [ $? -eq 0 ];then continue; fi # Save this value for later echo "$line" >> /tmp/.lSysCtls.$$ haveSysCtls=1 done < /tmp/.sObjs.$$ rm /tmp/.sObjs.$$ done # Using GELI encryption? haveGELI="false" # Now lets echo out the modules to load if [ "$haveObjs" = "1" ] ; then while read line do echo "$line" | grep -q '"YES"' if [ $? -ne 0 ] ; then continue ; fi module="`echo $line | cut -d '=' -f 1 | sed 's|_load||g'`" # Try to locate module now if [ -e "${fMnt}/boot/kernel/${module}.ko" ] ; then mPath="kernel" elif [ -e "${fMnt}/boot/modules/${module}.ko" ] ; then mPath="modules" else # This isn't a module that we can see, lets set it as a variable #echo "No such module $line, setting as a variable" >&2 echo "$line" >> /tmp/.lSysCtls.$$ continue fi # Are we loading GELI module? if [ "$module" = "geom_eli" ] ; then haveGELI="true" ; fi echo " kfreebsd_module_elf ${loadPrefix}/@/boot/${mPath}/${module}.ko" done < /tmp/.lRObjs.$$ fi # Add our compat kenv lines echo " set kFreeBSD.bootfile=\"kernel\"" echo " set kFreeBSD.kernel=\"kernel\"" echo " set kFreeBSD.kernel_options=\"\"" echo " set kFreeBSD.kernelname=\"/boot/kernel/kernel\"" echo " set kFreeBSD.module_path=\"/boot/kernel;/boot/modules\"" # Any kenv to set? if [ "$haveSysCtls" = "1" ] ; then while read line do # Strip out the vfs.root.mountfrom, we set that elsewhere echo "$line" | grep -q "vfs.root.mountfrom" if [ $? -eq 0 ] ; then continue ; fi line="`echo $line | sed 's|"||g'`" key="`echo $line | cut -d '=' -f 1`" val="`echo $line | cut -d '=' -f 2`" if [ -z "$key" -o -z "$val" ] ; then continue ; fi echo " set kFreeBSD.${key}=\"${val}\"" done < /tmp/.lSysCtls.$$ fi rm /tmp/.lRObjs.$$ rm /tmp/.lSysCtls.$$ if [ -n "$1" ] ; then umount /mnt.$$ >/dev/null rmdir /mnt.$$ >/dev/null fi # Set the grub.platform kenv variable echo " set kFreeBSD.grub.platform=\"\$grub_platform\"" # See if we need to do GELI passphrase passthrough if [ "$haveGELI" = "true" ] ; then echo " set kFreeBSD.kern.geom.eli.passphrase=\"\$pass\"" fi } detect_beadm() { /usr/bin/which -s beadm >/dev/null 2>/dev/null if [ $? -ne 0 ] ; then return 0; fi # Check if we are running from the installer and use its beadm if [ -e "/root/beadm.install" ] ; then BEADM="/root/beadm.install" # Check if this is valid testBE=`$BEADM list` if [ -z "$testBE" ] ; then # No BE's, lets switch back to regular mode BEADM="`/usr/bin/which beadm`" fi else BEADM="`/usr/bin/which beadm`" fi ${BEADM} list >/dev/null 2>/dev/null if [ $? -ne 0 ] ; then return 0; fi if [ -e "/etc/defaults/pcbsd" ] ; then NICK="PC-BSD" else NICK="TrueOS" fi # Now we will list all the non-default BEs $BEADM list -H >/tmp/.grub-beadm.$$ 2>/dev/null while read line do be=`echo $line | awk '{print $1}'` flags=`echo $line | awk '{print $2}'` # Skip the active BE if [ "$flags" = "NR" -o "$flags" = "R" ] ; then continue fi BE_LIST="${be} ${BE_LIST}" done < /tmp/.grub-beadm.$$ rm /tmp/.grub-beadm.$$ if [ -z "$BE_LIST" ] ; then return; fi echo "submenu \"Boot Environment Menu\" {" # Get list of beadm datasets for b in $BE_LIST do # Got a beadm snapshot, lets get the complete dataset name beLine=`${BEADM} list -a | grep "/$BEDS/${b}"` cdataset=`echo $beLine | awk '{print $1}'` cdatadate=`echo $beLine | awk '{print $5}'` cdatatime=`echo $beLine | awk '{print $6}'` ztank=`echo $cdataset | cut -d '/' -f 1` shortdataset="/`echo $cdataset | cut -d '/' -f 2-5`" # Get the BE nickname if it exists beNickName=`${BEADM} list | grep "^${b} " | tr -s ' ' | cut -d ' ' -f 7-12` if [ -z "$beNickName" ] ; then beNickName="$b" fi # First part of this dataset cat > /tmp/.grubdataset.$$.1 << EOF insmod zfs search --no-floppy -s -l $ztank EOF # Second part of loader to save cat > /tmp/.grubdataset.$$.2 << EOF kfreebsd_module ${shortdataset}/@/boot/zfs/zpool.cache type=/boot/zfs/zpool.cache set kFreeBSD.vfs.root.mountfrom=zfs:$cdataset EOF # Now lets look for options in loader.conf to load loadPrefix="${shortdataset}" # If this is the current mounted dataset, we can skip mounting it mount | grep -q -e "$cdataset on / (" -e "$cdataset on /mnt (" if [ $? -eq 0 ] ; then display_loaderopts >>/tmp/.grubdataset.$$.2 else display_loaderopts $cdataset >> /tmp/.grubdataset.$$.2 fi # Lets start a submenu for each BE cat << EOF submenu "${NICK} (${beNickName}) - ${cdatadate} ${cdatatime}" { EOF # Lets do the default entry first ################################# cat << EOF menuentry "Normal Bootup" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out}" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF } EOF # Next lets do single user mode ################################# cat << EOF menuentry "Single User Mode" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out} -s" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF } EOF # Next lets do verbose mode ################################# cat << EOF menuentry "Verbose Mode" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out} -v" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF } EOF if [ -e "/etc/defaults/pcbsd" ] ; then # Next lets do display wizard ################################# cat << EOF menuentry "Run the Display Wizard" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 - echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel" + echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out}" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF set kFreeBSD.runwiz=YES } EOF # Now for vesa mode ################################# cat << EOF menuentry "Run X in vesa mode" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 - echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel" + echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out}" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF set kFreeBSD.xvesa=YES } EOF # Now for non-xorg mode ################################# cat << EOF menuentry "Boot to console (Disable X)" { EOF # Get the dataset guts cat /tmp/.grubdataset.$$.1 - echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel" + echo " kfreebsd ${shortdataset}/@/boot/kernel/kernel ${out}" echo " kfreebsd_loadenv ${shortdataset}@/boot/device.hints" cat /tmp/.grubdataset.$$.2 # Set any options cat << EOF set kFreeBSD.noxorg=YES } EOF fi # Lastly lets close the submenu section cat << EOF } EOF done echo "}" echo "" # Cleanup after ourselves if [ -e "/tmp/.grubdataset.$$.1" ] ; then rm /tmp/.grubdataset.$$.1 rm /tmp/.grubdataset.$$.2 fi } # Detect our types of disk layouts detect_beadm Index: head/sysutils/grub2-pcbsd/files/patch-configure.ac =================================================================== --- head/sysutils/grub2-pcbsd/files/patch-configure.ac (revision 388788) +++ head/sysutils/grub2-pcbsd/files/patch-configure.ac (revision 388789) @@ -1,20 +1,20 @@ ---- configure.ac.orig 2014-03-03 11:00:26.000000000 -0500 -+++ configure.ac 2014-06-05 13:24:29.290891223 -0400 -@@ -1389,7 +1389,7 @@ +--- configure.ac.orig 2015-06-03 14:54:01 UTC ++++ configure.ac +@@ -1459,7 +1459,7 @@ fi if test x"$starfield_excuse" = x; then for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do - for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu /usr/share/fonts/truetype; do + for dir in . /usr/src /usr/local/lib/X11/fonts/dejavu /usr/share/fonts/truetype/ttf-dejavu /usr/local/share/fonts/dejavu /usr/share/fonts/truetype; do if test -f "$dir/DejaVuSans.$ext"; then DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext" break 2 -@@ -1411,7 +1411,7 @@ +@@ -1481,7 +1481,7 @@ AC_SUBST([DJVU_FONT_SOURCE]) FONT_SOURCE= for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do - for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/unifont /usr/share/fonts/uni /usr/share/fonts/truetype/unifont /usr/share/fonts/misc; do + for dir in . /usr/src /usr/local/lib/X11/fonts/local /usr/local/share/fonts/unifont /usr/local/share/fonts/gnu-unifont /usr/share/fonts/truetype/unifont /usr/share/fonts/misc; do if test -f "$dir/unifont.$ext"; then md5="$(md5sum "$dir/unifont.$ext"|awk '{ print $1; }')" # PCF and BDF from version 6.3 isn't hanled properly by libfreetype. Index: head/sysutils/grub2-pcbsd/files/patch-grub-core_loader_i386_bsd.c =================================================================== --- head/sysutils/grub2-pcbsd/files/patch-grub-core_loader_i386_bsd.c (revision 388788) +++ head/sysutils/grub2-pcbsd/files/patch-grub-core_loader_i386_bsd.c (revision 388789) @@ -1,20 +1,18 @@ -diff --git grub-core/loader/i386/bsd.c grub-core/loader/i386/bsd.c -index 8f691e0..8c7decd 100644 ---- grub-core/loader/i386/bsd.c +--- grub-core/loader/i386/bsd.c.orig 2015-01-30 16:34:55 UTC +++ grub-core/loader/i386/bsd.c -@@ -415,11 +415,14 @@ grub_freebsd_add_meta_module (const char *filename, const char *type, +@@ -416,11 +416,14 @@ grub_freebsd_add_meta_module (const char grub_addr_t addr, grub_uint32_t size) { const char *name; - name = grub_strrchr (filename, '/'); + /* Don't strip the full path, some FreeBSD functionality, such + * as dtrace, rely on this. Instead only strip out the portion after ZFS @ sign */ + name = grub_strrchr (filename, '@'); if (name) name++; else name = filename; + if (grub_strcmp (type, "/boot/zfs/zpool.cache") == 0) name = "/boot/zfs/zpool.cache"; Index: head/sysutils/grub2-pcbsd/files/patch-grub-core_partmap_gpt.c =================================================================== --- head/sysutils/grub2-pcbsd/files/patch-grub-core_partmap_gpt.c (revision 388788) +++ head/sysutils/grub2-pcbsd/files/patch-grub-core_partmap_gpt.c (revision 388789) @@ -1,20 +1,20 @@ ---- grub-core/partmap/gpt.c.orig 2014-12-02 14:37:43.000000000 +0800 -+++ grub-core/partmap/gpt.c 2014-12-02 14:37:49.000000000 +0800 -@@ -37,6 +37,7 @@ +--- grub-core/partmap/gpt.c.orig 2014-10-20 16:16:07 UTC ++++ grub-core/partmap/gpt.c +@@ -37,6 +37,7 @@ static const grub_gpt_part_type_t grub_g #ifdef GRUB_UTIL static const grub_gpt_part_type_t grub_gpt_partition_type_bios_boot = GRUB_GPT_PARTITION_TYPE_BIOS_BOOT; +static const grub_gpt_part_type_t grub_gpt_partition_type_freebsd_boot = GRUB_GPT_PARTITION_TYPE_FREEBSD_BOOT; #endif /* 512 << 7 = 65536 byte sectors. */ -@@ -155,7 +156,8 @@ +@@ -155,7 +156,8 @@ find_usable_region (grub_disk_t disk __a disk->partition = p2; /* If there's an embed region, it is in a dedicated partition. */ - if (! grub_memcmp (&gptdata.type, &grub_gpt_partition_type_bios_boot, 16)) + if (! grub_memcmp (&gptdata.type, &grub_gpt_partition_type_bios_boot, 16) || + ! grub_memcmp (&gptdata.type, &grub_gpt_partition_type_freebsd_boot, 16)) { ctx->start = p->start; ctx->len = p->len; Index: head/sysutils/grub2-pcbsd/files/patch-util_grub-mkconfig.in =================================================================== --- head/sysutils/grub2-pcbsd/files/patch-util_grub-mkconfig.in (revision 388788) +++ head/sysutils/grub2-pcbsd/files/patch-util_grub-mkconfig.in (revision 388789) @@ -1,14 +1,14 @@ ---- util/grub-mkconfig.in.orig 2014-03-03 11:00:26.000000000 -0500 -+++ util/grub-mkconfig.in 2014-07-03 11:31:47.013881961 -0400 -@@ -278,3 +278,11 @@ +--- util/grub-mkconfig.in.orig 2015-06-03 14:54:01 UTC ++++ util/grub-mkconfig.in +@@ -281,3 +281,11 @@ fi gettext "done" >&2 echo >&2 + +# If pcbsd-utils are installed, the restamp-grub command will exist +# Use it to do the grub-install and copy grub.cfg to other BEs +which restamp-grub >/dev/null 2>/dev/null +if [ $? -eq 0 ] ; then + restamp-grub +fi + Index: head/sysutils/grub2-pcbsd/pkg-message =================================================================== --- head/sysutils/grub2-pcbsd/pkg-message (revision 388788) +++ head/sysutils/grub2-pcbsd/pkg-message (revision 388789) @@ -1,11 +1,20 @@ ############################################################# To install GRUB on the master boot record of your hard drive use 'grub-install ' command. A typical menu entry in /boot/grub/grub.cfg for FreeBSD: menuentry "FreeBSD" { set root="(hd0,msdos1,bsd1)" kfreebsd /boot/loader } Or use grub-mkconfig to create the config file. ############################################################# + +This version of grub includes support for PC-BSD style boot +environments. For it to properly detect / populate your +BE menus you must have your root zpool setup in the following +manner: + +/ROOT/ + +Where is your zpool, and is your '/' mountpoint. Index: head/sysutils/grub2-pcbsd/pkg-plist =================================================================== --- head/sysutils/grub2-pcbsd/pkg-plist (revision 388788) +++ head/sysutils/grub2-pcbsd/pkg-plist (revision 388789) @@ -1,669 +1,682 @@ %%FUSE%%bin/grub-mount %%FUSE%%man/man1/grub-mount.1.gz %%MKFONT%%bin/grub-mkfont %%MKFONT%%share/grub/themes/starfield/dejavu_10.pf2 %%MKFONT%%share/grub/themes/starfield/dejavu_12.pf2 %%MKFONT%%share/grub/themes/starfield/dejavu_bold_14.pf2 %%MKFONT%%share/grub/themes/starfield/dejavu_14.pf2 %%MKFONT%%share/grub/themes/starfield/dejavu_16.pf2 %%MKFONT%%share/grub/themes/starfield/blob_w.png %%MKFONT%%share/grub/themes/starfield/boot_menu_c.png %%MKFONT%%share/grub/themes/starfield/boot_menu_e.png %%MKFONT%%share/grub/themes/starfield/boot_menu_ne.png %%MKFONT%%share/grub/themes/starfield/boot_menu_n.png %%MKFONT%%share/grub/themes/starfield/boot_menu_nw.png %%MKFONT%%share/grub/themes/starfield/boot_menu_se.png %%MKFONT%%share/grub/themes/starfield/boot_menu_s.png %%MKFONT%%share/grub/themes/starfield/boot_menu_sw.png %%MKFONT%%share/grub/themes/starfield/boot_menu_w.png %%MKFONT%%share/grub/themes/starfield/slider_c.png %%MKFONT%%share/grub/themes/starfield/slider_n.png %%MKFONT%%share/grub/themes/starfield/slider_s.png %%MKFONT%%share/grub/themes/starfield/starfield.png %%MKFONT%%share/grub/themes/starfield/README %%MKFONT%%share/grub/themes/starfield/terminal_box_c.png %%MKFONT%%share/grub/themes/starfield/terminal_box_e.png %%MKFONT%%share/grub/themes/starfield/terminal_box_ne.png %%MKFONT%%share/grub/themes/starfield/terminal_box_n.png %%MKFONT%%share/grub/themes/starfield/terminal_box_nw.png %%MKFONT%%share/grub/themes/starfield/terminal_box_se.png %%MKFONT%%share/grub/themes/starfield/terminal_box_s.png %%MKFONT%%share/grub/themes/starfield/terminal_box_sw.png %%MKFONT%%share/grub/themes/starfield/terminal_box_w.png %%MKFONT%%share/grub/themes/starfield/theme.txt %%MKFONT%%share/grub/themes/starfield/COPYING.CC-BY-SA-3.0 %%MKFONT%%share/grub/ascii.h %%MKFONT%%share/grub/ascii.pf2 %%MKFONT%%share/grub/euro.pf2 %%MKFONT%%share/grub/unicode.pf2 -%%MKFONT%%share/grub/widthspec.h %%MKFONT%%man/man1/grub-mkfont.1.gz bin/grub-editenv +bin/grub-file bin/grub-fstest +bin/grub-glue-efi bin/grub-kbdcomp bin/grub-menulst2cfg bin/grub-mkimage -bin/grub-mknetdir bin/grub-mklayout +bin/grub-mknetdir bin/grub-mkpasswd-pbkdf2 bin/grub-mkrelpath -bin/grub-mkstandalone bin/grub-mkrescue -bin/grub-script-check -bin/grub-file -bin/grub-glue-efi +bin/grub-mkstandalone bin/grub-render-label +bin/grub-script-check bin/grub-syslinux2cfg -sbin/grub-macbless -lib/grub/i386-pc/archelp.mod -lib/grub/i386-pc/archelp.module -lib/grub/i386-pc/boot_hybrid.image -lib/grub/i386-pc/boot_hybrid.img -lib/grub/i386-pc/cbfs.mod -lib/grub/i386-pc/cbfs.module -lib/grub/i386-pc/cbls.mod -lib/grub/i386-pc/cbls.module -lib/grub/i386-pc/cbmemc.mod -lib/grub/i386-pc/cbmemc.module -lib/grub/i386-pc/cbtable.mod -lib/grub/i386-pc/cbtable.module -lib/grub/i386-pc/cbtime.mod -lib/grub/i386-pc/cbtime.module -lib/grub/i386-pc/cmdline_cat_test.mod -lib/grub/i386-pc/cmdline_cat_test.module -lib/grub/i386-pc/cmosdump.mod -lib/grub/i386-pc/cmosdump.module -lib/grub/i386-pc/disk.mod -lib/grub/i386-pc/disk.module -lib/grub/i386-pc/div_test.mod -lib/grub/i386-pc/div_test.module -lib/grub/i386-pc/eval.mod -lib/grub/i386-pc/eval.module -lib/grub/i386-pc/file.mod -lib/grub/i386-pc/file.module -lib/grub/i386-pc/gcry_dsa.mod -lib/grub/i386-pc/gcry_dsa.module -lib/grub/i386-pc/gcry_idea.mod -lib/grub/i386-pc/gcry_idea.module -lib/grub/i386-pc/gcry_rsa.mod -lib/grub/i386-pc/gcry_rsa.module -lib/grub/i386-pc/gfxterm_background.mod -lib/grub/i386-pc/gfxterm_background.module -lib/grub/i386-pc/gfxterm_menu.mod -lib/grub/i386-pc/gfxterm_menu.module -lib/grub/i386-pc/hfspluscomp.mod -lib/grub/i386-pc/hfspluscomp.module -lib/grub/i386-pc/legacy_password_test.mod -lib/grub/i386-pc/legacy_password_test.module -lib/grub/i386-pc/macbless.mod -lib/grub/i386-pc/macbless.module -lib/grub/i386-pc/macho.mod -lib/grub/i386-pc/macho.module -lib/grub/i386-pc/mda_text.mod -lib/grub/i386-pc/mda_text.module -lib/grub/i386-pc/morse.mod -lib/grub/i386-pc/morse.module -lib/grub/i386-pc/mpi.mod -lib/grub/i386-pc/mpi.module -lib/grub/i386-pc/nativedisk.mod -lib/grub/i386-pc/nativedisk.module -lib/grub/i386-pc/offsetio.mod -lib/grub/i386-pc/offsetio.module -lib/grub/i386-pc/part_dfly.mod -lib/grub/i386-pc/part_dfly.module -lib/grub/i386-pc/pbkdf2_test.mod -lib/grub/i386-pc/pbkdf2_test.module -lib/grub/i386-pc/pcidump.mod -lib/grub/i386-pc/pcidump.module -lib/grub/i386-pc/procfs.mod -lib/grub/i386-pc/procfs.module -lib/grub/i386-pc/progress.mod -lib/grub/i386-pc/progress.module -lib/grub/i386-pc/setjmp_test.mod -lib/grub/i386-pc/setjmp_test.module -lib/grub/i386-pc/signature_test.mod -lib/grub/i386-pc/signature_test.module -lib/grub/i386-pc/sleep_test.mod -lib/grub/i386-pc/sleep_test.module -lib/grub/i386-pc/spkmodem.mod -lib/grub/i386-pc/spkmodem.module -lib/grub/i386-pc/syslinuxcfg.mod -lib/grub/i386-pc/syslinuxcfg.module -lib/grub/i386-pc/testspeed.mod -lib/grub/i386-pc/testspeed.module -lib/grub/i386-pc/tr.mod -lib/grub/i386-pc/tr.module -lib/grub/i386-pc/truecrypt.mod -lib/grub/i386-pc/truecrypt.module -lib/grub/i386-pc/ufs1_be.mod -lib/grub/i386-pc/ufs1_be.module -lib/grub/i386-pc/usbserial_usbdebug.mod -lib/grub/i386-pc/usbserial_usbdebug.module -lib/grub/i386-pc/verify.mod -lib/grub/i386-pc/verify.module -lib/grub/i386-pc/video_colors.mod -lib/grub/i386-pc/video_colors.module -lib/grub/i386-pc/videotest_checksum.mod -lib/grub/i386-pc/videotest_checksum.module -lib/grub/i386-pc/xnu_uuid_test.mod -lib/grub/i386-pc/xnu_uuid_test.module -man/man1/grub-file.1.gz -man/man1/grub-glue-efi.1.gz -man/man1/grub-mknetdir.1.gz -man/man1/grub-render-label.1.gz -man/man1/grub-syslinux2cfg.1.gz -man/man8/grub-macbless.8.gz +etc/bash_completion.d/grub etc/grub.d/00_header +etc/grub.d/10_kfreebsd +etc/grub.d/10_ktrueos etc/grub.d/30_os-prober etc/grub.d/40_custom.dist etc/grub.d/41_custom etc/grub.d/50_otherbe -etc/grub.d/10_kfreebsd -etc/grub.d/10_ktrueos etc/grub.d/README -etc/bash_completion.d/grub +info/dir lib/grub/i386-pc/acpi.mod lib/grub/i386-pc/acpi.module lib/grub/i386-pc/adler32.mod lib/grub/i386-pc/adler32.module lib/grub/i386-pc/affs.mod lib/grub/i386-pc/affs.module lib/grub/i386-pc/afs.mod lib/grub/i386-pc/afs.module lib/grub/i386-pc/ahci.mod lib/grub/i386-pc/ahci.module lib/grub/i386-pc/all_video.mod lib/grub/i386-pc/all_video.module lib/grub/i386-pc/aout.mod lib/grub/i386-pc/aout.module +lib/grub/i386-pc/archelp.mod +lib/grub/i386-pc/archelp.module lib/grub/i386-pc/at_keyboard.mod lib/grub/i386-pc/at_keyboard.module lib/grub/i386-pc/ata.mod lib/grub/i386-pc/ata.module lib/grub/i386-pc/backtrace.mod lib/grub/i386-pc/backtrace.module lib/grub/i386-pc/bfs.mod lib/grub/i386-pc/bfs.module lib/grub/i386-pc/biosdisk.mod lib/grub/i386-pc/biosdisk.module lib/grub/i386-pc/bitmap.mod lib/grub/i386-pc/bitmap.module lib/grub/i386-pc/bitmap_scale.mod lib/grub/i386-pc/bitmap_scale.module lib/grub/i386-pc/blocklist.mod lib/grub/i386-pc/blocklist.module lib/grub/i386-pc/boot.image lib/grub/i386-pc/boot.img lib/grub/i386-pc/boot.mod lib/grub/i386-pc/boot.module +lib/grub/i386-pc/boot_hybrid.image +lib/grub/i386-pc/boot_hybrid.img lib/grub/i386-pc/bsd.mod lib/grub/i386-pc/bsd.module +lib/grub/i386-pc/bswap_test.mod +lib/grub/i386-pc/bswap_test.module lib/grub/i386-pc/btrfs.mod lib/grub/i386-pc/btrfs.module lib/grub/i386-pc/bufio.mod lib/grub/i386-pc/bufio.module lib/grub/i386-pc/cat.mod lib/grub/i386-pc/cat.module +lib/grub/i386-pc/cbfs.mod +lib/grub/i386-pc/cbfs.module +lib/grub/i386-pc/cbls.mod +lib/grub/i386-pc/cbls.module +lib/grub/i386-pc/cbmemc.mod +lib/grub/i386-pc/cbmemc.module +lib/grub/i386-pc/cbtable.mod +lib/grub/i386-pc/cbtable.module +lib/grub/i386-pc/cbtime.mod +lib/grub/i386-pc/cbtime.module lib/grub/i386-pc/cdboot.image lib/grub/i386-pc/cdboot.img lib/grub/i386-pc/chain.mod lib/grub/i386-pc/chain.module +lib/grub/i386-pc/cmdline_cat_test.mod +lib/grub/i386-pc/cmdline_cat_test.module +lib/grub/i386-pc/cmosdump.mod +lib/grub/i386-pc/cmosdump.module lib/grub/i386-pc/cmostest.mod lib/grub/i386-pc/cmostest.module lib/grub/i386-pc/cmp.mod lib/grub/i386-pc/cmp.module +lib/grub/i386-pc/cmp_test.mod +lib/grub/i386-pc/cmp_test.module lib/grub/i386-pc/command.lst lib/grub/i386-pc/config.h lib/grub/i386-pc/configfile.mod lib/grub/i386-pc/configfile.module lib/grub/i386-pc/cpio.mod lib/grub/i386-pc/cpio.module lib/grub/i386-pc/cpio_be.mod lib/grub/i386-pc/cpio_be.module lib/grub/i386-pc/cpuid.mod lib/grub/i386-pc/cpuid.module lib/grub/i386-pc/crc64.mod lib/grub/i386-pc/crc64.module lib/grub/i386-pc/crypto.lst lib/grub/i386-pc/crypto.mod lib/grub/i386-pc/crypto.module lib/grub/i386-pc/cryptodisk.mod lib/grub/i386-pc/cryptodisk.module lib/grub/i386-pc/cs5536.mod lib/grub/i386-pc/cs5536.module +lib/grub/i386-pc/ctz_test.mod +lib/grub/i386-pc/ctz_test.module lib/grub/i386-pc/date.mod lib/grub/i386-pc/date.module lib/grub/i386-pc/datehook.mod lib/grub/i386-pc/datehook.module lib/grub/i386-pc/datetime.mod lib/grub/i386-pc/datetime.module +lib/grub/i386-pc/disk.mod +lib/grub/i386-pc/disk.module lib/grub/i386-pc/diskboot.image lib/grub/i386-pc/diskboot.img lib/grub/i386-pc/diskfilter.mod lib/grub/i386-pc/diskfilter.module +lib/grub/i386-pc/div.mod +lib/grub/i386-pc/div.module +lib/grub/i386-pc/div_test.mod +lib/grub/i386-pc/div_test.module lib/grub/i386-pc/dm_nv.mod lib/grub/i386-pc/dm_nv.module lib/grub/i386-pc/drivemap.mod lib/grub/i386-pc/drivemap.module lib/grub/i386-pc/echo.mod lib/grub/i386-pc/echo.module lib/grub/i386-pc/efiemu.mod lib/grub/i386-pc/efiemu.module -%%EFIEMU%%lib/grub/i386-pc/efiemu32.o -%%EFIEMU%%lib/grub/i386-pc/efiemu64.o +lib/grub/i386-pc/efiemu32.o +lib/grub/i386-pc/efiemu64.o lib/grub/i386-pc/ehci.mod lib/grub/i386-pc/ehci.module lib/grub/i386-pc/elf.mod lib/grub/i386-pc/elf.module +lib/grub/i386-pc/eval.mod +lib/grub/i386-pc/eval.module lib/grub/i386-pc/exfat.mod lib/grub/i386-pc/exfat.module lib/grub/i386-pc/exfctest.mod lib/grub/i386-pc/exfctest.module lib/grub/i386-pc/ext2.mod lib/grub/i386-pc/ext2.module lib/grub/i386-pc/extcmd.mod lib/grub/i386-pc/extcmd.module lib/grub/i386-pc/fat.mod lib/grub/i386-pc/fat.module +lib/grub/i386-pc/file.mod +lib/grub/i386-pc/file.module lib/grub/i386-pc/font.mod lib/grub/i386-pc/font.module lib/grub/i386-pc/freedos.mod lib/grub/i386-pc/freedos.module lib/grub/i386-pc/fs.lst lib/grub/i386-pc/fshelp.mod lib/grub/i386-pc/fshelp.module lib/grub/i386-pc/functional_test.mod lib/grub/i386-pc/functional_test.module lib/grub/i386-pc/gcry_arcfour.mod lib/grub/i386-pc/gcry_arcfour.module lib/grub/i386-pc/gcry_blowfish.mod lib/grub/i386-pc/gcry_blowfish.module lib/grub/i386-pc/gcry_camellia.mod lib/grub/i386-pc/gcry_camellia.module lib/grub/i386-pc/gcry_cast5.mod lib/grub/i386-pc/gcry_cast5.module lib/grub/i386-pc/gcry_crc.mod lib/grub/i386-pc/gcry_crc.module lib/grub/i386-pc/gcry_des.mod lib/grub/i386-pc/gcry_des.module +lib/grub/i386-pc/gcry_dsa.mod +lib/grub/i386-pc/gcry_dsa.module +lib/grub/i386-pc/gcry_idea.mod +lib/grub/i386-pc/gcry_idea.module lib/grub/i386-pc/gcry_md4.mod lib/grub/i386-pc/gcry_md4.module lib/grub/i386-pc/gcry_md5.mod lib/grub/i386-pc/gcry_md5.module lib/grub/i386-pc/gcry_rfc2268.mod lib/grub/i386-pc/gcry_rfc2268.module lib/grub/i386-pc/gcry_rijndael.mod lib/grub/i386-pc/gcry_rijndael.module lib/grub/i386-pc/gcry_rmd160.mod lib/grub/i386-pc/gcry_rmd160.module +lib/grub/i386-pc/gcry_rsa.mod +lib/grub/i386-pc/gcry_rsa.module lib/grub/i386-pc/gcry_seed.mod lib/grub/i386-pc/gcry_seed.module lib/grub/i386-pc/gcry_serpent.mod lib/grub/i386-pc/gcry_serpent.module lib/grub/i386-pc/gcry_sha1.mod lib/grub/i386-pc/gcry_sha1.module lib/grub/i386-pc/gcry_sha256.mod lib/grub/i386-pc/gcry_sha256.module lib/grub/i386-pc/gcry_sha512.mod lib/grub/i386-pc/gcry_sha512.module lib/grub/i386-pc/gcry_tiger.mod lib/grub/i386-pc/gcry_tiger.module lib/grub/i386-pc/gcry_twofish.mod lib/grub/i386-pc/gcry_twofish.module lib/grub/i386-pc/gcry_whirlpool.mod lib/grub/i386-pc/gcry_whirlpool.module lib/grub/i386-pc/gdb.mod lib/grub/i386-pc/gdb.module lib/grub/i386-pc/gdb_grub lib/grub/i386-pc/geli.mod lib/grub/i386-pc/geli.module lib/grub/i386-pc/gettext.mod lib/grub/i386-pc/gettext.module lib/grub/i386-pc/gfxmenu.mod lib/grub/i386-pc/gfxmenu.module lib/grub/i386-pc/gfxterm.mod lib/grub/i386-pc/gfxterm.module +lib/grub/i386-pc/gfxterm_background.mod +lib/grub/i386-pc/gfxterm_background.module +lib/grub/i386-pc/gfxterm_menu.mod +lib/grub/i386-pc/gfxterm_menu.module lib/grub/i386-pc/gmodule.pl lib/grub/i386-pc/gptsync.mod lib/grub/i386-pc/gptsync.module lib/grub/i386-pc/gzio.mod lib/grub/i386-pc/gzio.module lib/grub/i386-pc/halt.mod lib/grub/i386-pc/halt.module lib/grub/i386-pc/hashsum.mod lib/grub/i386-pc/hashsum.module lib/grub/i386-pc/hdparm.mod lib/grub/i386-pc/hdparm.module lib/grub/i386-pc/hello.mod lib/grub/i386-pc/hello.module lib/grub/i386-pc/help.mod lib/grub/i386-pc/help.module lib/grub/i386-pc/hexdump.mod lib/grub/i386-pc/hexdump.module lib/grub/i386-pc/hfs.mod lib/grub/i386-pc/hfs.module lib/grub/i386-pc/hfsplus.mod lib/grub/i386-pc/hfsplus.module +lib/grub/i386-pc/hfspluscomp.mod +lib/grub/i386-pc/hfspluscomp.module lib/grub/i386-pc/http.mod lib/grub/i386-pc/http.module lib/grub/i386-pc/iorw.mod lib/grub/i386-pc/iorw.module lib/grub/i386-pc/iso9660.mod lib/grub/i386-pc/iso9660.module lib/grub/i386-pc/jfs.mod lib/grub/i386-pc/jfs.module lib/grub/i386-pc/jpeg.mod lib/grub/i386-pc/jpeg.module lib/grub/i386-pc/kernel.exec lib/grub/i386-pc/kernel.img lib/grub/i386-pc/keylayouts.mod lib/grub/i386-pc/keylayouts.module lib/grub/i386-pc/keystatus.mod lib/grub/i386-pc/keystatus.module lib/grub/i386-pc/ldm.mod lib/grub/i386-pc/ldm.module +lib/grub/i386-pc/legacy_password_test.mod +lib/grub/i386-pc/legacy_password_test.module lib/grub/i386-pc/legacycfg.mod lib/grub/i386-pc/legacycfg.module lib/grub/i386-pc/linux.mod lib/grub/i386-pc/linux.module lib/grub/i386-pc/linux16.mod lib/grub/i386-pc/linux16.module lib/grub/i386-pc/lnxboot.image lib/grub/i386-pc/lnxboot.img lib/grub/i386-pc/loadenv.mod lib/grub/i386-pc/loadenv.module lib/grub/i386-pc/loopback.mod lib/grub/i386-pc/loopback.module lib/grub/i386-pc/ls.mod lib/grub/i386-pc/ls.module lib/grub/i386-pc/lsacpi.mod lib/grub/i386-pc/lsacpi.module lib/grub/i386-pc/lsapm.mod lib/grub/i386-pc/lsapm.module lib/grub/i386-pc/lsmmap.mod lib/grub/i386-pc/lsmmap.module lib/grub/i386-pc/lspci.mod lib/grub/i386-pc/lspci.module lib/grub/i386-pc/luks.mod lib/grub/i386-pc/luks.module lib/grub/i386-pc/lvm.mod lib/grub/i386-pc/lvm.module lib/grub/i386-pc/lzma_decompress.image lib/grub/i386-pc/lzma_decompress.img lib/grub/i386-pc/lzopio.mod lib/grub/i386-pc/lzopio.module +lib/grub/i386-pc/macbless.mod +lib/grub/i386-pc/macbless.module +lib/grub/i386-pc/macho.mod +lib/grub/i386-pc/macho.module +lib/grub/i386-pc/mda_text.mod +lib/grub/i386-pc/mda_text.module lib/grub/i386-pc/mdraid09.mod lib/grub/i386-pc/mdraid09.module lib/grub/i386-pc/mdraid09_be.mod lib/grub/i386-pc/mdraid09_be.module lib/grub/i386-pc/mdraid1x.mod lib/grub/i386-pc/mdraid1x.module lib/grub/i386-pc/memdisk.mod lib/grub/i386-pc/memdisk.module lib/grub/i386-pc/memrw.mod lib/grub/i386-pc/memrw.module lib/grub/i386-pc/minicmd.mod lib/grub/i386-pc/minicmd.module lib/grub/i386-pc/minix.mod lib/grub/i386-pc/minix.module lib/grub/i386-pc/minix2.mod lib/grub/i386-pc/minix2.module lib/grub/i386-pc/minix2_be.mod lib/grub/i386-pc/minix2_be.module lib/grub/i386-pc/minix3.mod lib/grub/i386-pc/minix3.module lib/grub/i386-pc/minix3_be.mod lib/grub/i386-pc/minix3_be.module lib/grub/i386-pc/minix_be.mod lib/grub/i386-pc/minix_be.module lib/grub/i386-pc/mmap.mod lib/grub/i386-pc/mmap.module lib/grub/i386-pc/moddep.lst lib/grub/i386-pc/modinfo.sh +lib/grub/i386-pc/morse.mod +lib/grub/i386-pc/morse.module +lib/grub/i386-pc/mpi.mod +lib/grub/i386-pc/mpi.module lib/grub/i386-pc/msdospart.mod lib/grub/i386-pc/msdospart.module +lib/grub/i386-pc/mul_test.mod +lib/grub/i386-pc/mul_test.module lib/grub/i386-pc/multiboot.mod lib/grub/i386-pc/multiboot.module lib/grub/i386-pc/multiboot2.mod lib/grub/i386-pc/multiboot2.module +lib/grub/i386-pc/nativedisk.mod +lib/grub/i386-pc/nativedisk.module lib/grub/i386-pc/net.mod lib/grub/i386-pc/net.module lib/grub/i386-pc/newc.mod lib/grub/i386-pc/newc.module lib/grub/i386-pc/nilfs2.mod lib/grub/i386-pc/nilfs2.module lib/grub/i386-pc/normal.mod lib/grub/i386-pc/normal.module lib/grub/i386-pc/ntfs.mod lib/grub/i386-pc/ntfs.module lib/grub/i386-pc/ntfscomp.mod lib/grub/i386-pc/ntfscomp.module lib/grub/i386-pc/ntldr.mod lib/grub/i386-pc/ntldr.module lib/grub/i386-pc/odc.mod lib/grub/i386-pc/odc.module +lib/grub/i386-pc/offsetio.mod +lib/grub/i386-pc/offsetio.module lib/grub/i386-pc/ohci.mod lib/grub/i386-pc/ohci.module lib/grub/i386-pc/part_acorn.mod lib/grub/i386-pc/part_acorn.module lib/grub/i386-pc/part_amiga.mod lib/grub/i386-pc/part_amiga.module lib/grub/i386-pc/part_apple.mod lib/grub/i386-pc/part_apple.module lib/grub/i386-pc/part_bsd.mod lib/grub/i386-pc/part_bsd.module +lib/grub/i386-pc/part_dfly.mod +lib/grub/i386-pc/part_dfly.module lib/grub/i386-pc/part_dvh.mod lib/grub/i386-pc/part_dvh.module lib/grub/i386-pc/part_gpt.mod lib/grub/i386-pc/part_gpt.module lib/grub/i386-pc/part_msdos.mod lib/grub/i386-pc/part_msdos.module lib/grub/i386-pc/part_plan.mod lib/grub/i386-pc/part_plan.module lib/grub/i386-pc/part_sun.mod lib/grub/i386-pc/part_sun.module lib/grub/i386-pc/part_sunpc.mod lib/grub/i386-pc/part_sunpc.module lib/grub/i386-pc/partmap.lst lib/grub/i386-pc/parttool.lst lib/grub/i386-pc/parttool.mod lib/grub/i386-pc/parttool.module lib/grub/i386-pc/password.mod lib/grub/i386-pc/password.module lib/grub/i386-pc/password_pbkdf2.mod lib/grub/i386-pc/password_pbkdf2.module lib/grub/i386-pc/pata.mod lib/grub/i386-pc/pata.module lib/grub/i386-pc/pbkdf2.mod lib/grub/i386-pc/pbkdf2.module +lib/grub/i386-pc/pbkdf2_test.mod +lib/grub/i386-pc/pbkdf2_test.module lib/grub/i386-pc/pci.mod lib/grub/i386-pc/pci.module +lib/grub/i386-pc/pcidump.mod +lib/grub/i386-pc/pcidump.module lib/grub/i386-pc/plan9.mod lib/grub/i386-pc/plan9.module lib/grub/i386-pc/play.mod lib/grub/i386-pc/play.module lib/grub/i386-pc/png.mod lib/grub/i386-pc/png.module lib/grub/i386-pc/priority_queue.mod lib/grub/i386-pc/priority_queue.module lib/grub/i386-pc/probe.mod lib/grub/i386-pc/probe.module +lib/grub/i386-pc/procfs.mod +lib/grub/i386-pc/procfs.module +lib/grub/i386-pc/progress.mod +lib/grub/i386-pc/progress.module lib/grub/i386-pc/pxe.mod lib/grub/i386-pc/pxe.module lib/grub/i386-pc/pxeboot.image lib/grub/i386-pc/pxeboot.img lib/grub/i386-pc/pxechain.mod lib/grub/i386-pc/pxechain.module lib/grub/i386-pc/raid5rec.mod lib/grub/i386-pc/raid5rec.module lib/grub/i386-pc/raid6rec.mod lib/grub/i386-pc/raid6rec.module lib/grub/i386-pc/read.mod lib/grub/i386-pc/read.module lib/grub/i386-pc/reboot.mod lib/grub/i386-pc/reboot.module lib/grub/i386-pc/regexp.mod lib/grub/i386-pc/regexp.module lib/grub/i386-pc/reiserfs.mod lib/grub/i386-pc/reiserfs.module lib/grub/i386-pc/relocator.mod lib/grub/i386-pc/relocator.module lib/grub/i386-pc/romfs.mod lib/grub/i386-pc/romfs.module lib/grub/i386-pc/scsi.mod lib/grub/i386-pc/scsi.module lib/grub/i386-pc/search.mod lib/grub/i386-pc/search.module lib/grub/i386-pc/search_fs_file.mod lib/grub/i386-pc/search_fs_file.module lib/grub/i386-pc/search_fs_uuid.mod lib/grub/i386-pc/search_fs_uuid.module lib/grub/i386-pc/search_label.mod lib/grub/i386-pc/search_label.module lib/grub/i386-pc/sendkey.mod lib/grub/i386-pc/sendkey.module lib/grub/i386-pc/serial.mod lib/grub/i386-pc/serial.module lib/grub/i386-pc/setjmp.mod lib/grub/i386-pc/setjmp.module +lib/grub/i386-pc/setjmp_test.mod +lib/grub/i386-pc/setjmp_test.module lib/grub/i386-pc/setpci.mod lib/grub/i386-pc/setpci.module lib/grub/i386-pc/sfs.mod lib/grub/i386-pc/sfs.module +lib/grub/i386-pc/shift_test.mod +lib/grub/i386-pc/shift_test.module +lib/grub/i386-pc/signature_test.mod +lib/grub/i386-pc/signature_test.module lib/grub/i386-pc/sleep.mod lib/grub/i386-pc/sleep.module +lib/grub/i386-pc/sleep_test.mod +lib/grub/i386-pc/sleep_test.module +lib/grub/i386-pc/spkmodem.mod +lib/grub/i386-pc/spkmodem.module lib/grub/i386-pc/squash4.mod lib/grub/i386-pc/squash4.module +lib/grub/i386-pc/syslinuxcfg.mod +lib/grub/i386-pc/syslinuxcfg.module lib/grub/i386-pc/tar.mod lib/grub/i386-pc/tar.module lib/grub/i386-pc/terminal.lst lib/grub/i386-pc/terminal.mod lib/grub/i386-pc/terminal.module lib/grub/i386-pc/terminfo.mod lib/grub/i386-pc/terminfo.module lib/grub/i386-pc/test.mod lib/grub/i386-pc/test.module lib/grub/i386-pc/test_blockarg.mod lib/grub/i386-pc/test_blockarg.module lib/grub/i386-pc/testload.mod lib/grub/i386-pc/testload.module +lib/grub/i386-pc/testspeed.mod +lib/grub/i386-pc/testspeed.module lib/grub/i386-pc/tftp.mod lib/grub/i386-pc/tftp.module lib/grub/i386-pc/tga.mod lib/grub/i386-pc/tga.module lib/grub/i386-pc/time.mod lib/grub/i386-pc/time.module +lib/grub/i386-pc/tr.mod +lib/grub/i386-pc/tr.module lib/grub/i386-pc/trig.mod lib/grub/i386-pc/trig.module lib/grub/i386-pc/true.mod lib/grub/i386-pc/true.module +lib/grub/i386-pc/truecrypt.mod +lib/grub/i386-pc/truecrypt.module lib/grub/i386-pc/udf.mod lib/grub/i386-pc/udf.module lib/grub/i386-pc/ufs1.mod lib/grub/i386-pc/ufs1.module +lib/grub/i386-pc/ufs1_be.mod +lib/grub/i386-pc/ufs1_be.module lib/grub/i386-pc/ufs2.mod lib/grub/i386-pc/ufs2.module lib/grub/i386-pc/uhci.mod lib/grub/i386-pc/uhci.module lib/grub/i386-pc/usb.mod lib/grub/i386-pc/usb.module lib/grub/i386-pc/usb_keyboard.mod lib/grub/i386-pc/usb_keyboard.module lib/grub/i386-pc/usbms.mod lib/grub/i386-pc/usbms.module lib/grub/i386-pc/usbserial_common.mod lib/grub/i386-pc/usbserial_common.module lib/grub/i386-pc/usbserial_ftdi.mod lib/grub/i386-pc/usbserial_ftdi.module lib/grub/i386-pc/usbserial_pl2303.mod lib/grub/i386-pc/usbserial_pl2303.module +lib/grub/i386-pc/usbserial_usbdebug.mod +lib/grub/i386-pc/usbserial_usbdebug.module lib/grub/i386-pc/usbtest.mod lib/grub/i386-pc/usbtest.module lib/grub/i386-pc/vbe.mod lib/grub/i386-pc/vbe.module +lib/grub/i386-pc/verify.mod +lib/grub/i386-pc/verify.module lib/grub/i386-pc/vga.mod lib/grub/i386-pc/vga.module lib/grub/i386-pc/vga_text.mod lib/grub/i386-pc/vga_text.module lib/grub/i386-pc/video.lst lib/grub/i386-pc/video.mod lib/grub/i386-pc/video.module lib/grub/i386-pc/video_bochs.mod lib/grub/i386-pc/video_bochs.module lib/grub/i386-pc/video_cirrus.mod lib/grub/i386-pc/video_cirrus.module +lib/grub/i386-pc/video_colors.mod +lib/grub/i386-pc/video_colors.module lib/grub/i386-pc/video_fb.mod lib/grub/i386-pc/video_fb.module lib/grub/i386-pc/videoinfo.mod lib/grub/i386-pc/videoinfo.module lib/grub/i386-pc/videotest.mod lib/grub/i386-pc/videotest.module +lib/grub/i386-pc/videotest_checksum.mod +lib/grub/i386-pc/videotest_checksum.module lib/grub/i386-pc/xfs.mod lib/grub/i386-pc/xfs.module lib/grub/i386-pc/xnu.mod lib/grub/i386-pc/xnu.module lib/grub/i386-pc/xnu_uuid.mod lib/grub/i386-pc/xnu_uuid.module +lib/grub/i386-pc/xnu_uuid_test.mod +lib/grub/i386-pc/xnu_uuid_test.module lib/grub/i386-pc/xzio.mod lib/grub/i386-pc/xzio.module lib/grub/i386-pc/zfs.mod lib/grub/i386-pc/zfs.module lib/grub/i386-pc/zfscrypt.mod lib/grub/i386-pc/zfscrypt.module lib/grub/i386-pc/zfsinfo.mod lib/grub/i386-pc/zfsinfo.module +man/man1/grub-editenv.1.gz +man/man1/grub-file.1.gz +man/man1/grub-fstest.1.gz +man/man1/grub-glue-efi.1.gz +man/man1/grub-kbdcomp.1.gz +man/man1/grub-menulst2cfg.1.gz +man/man1/grub-mkimage.1.gz +man/man1/grub-mklayout.1.gz +man/man1/grub-mknetdir.1.gz +man/man1/grub-mkpasswd-pbkdf2.1.gz +man/man1/grub-mkrelpath.1.gz +man/man1/grub-mkrescue.1.gz +man/man1/grub-mkstandalone.1.gz +man/man1/grub-render-label.1.gz +man/man1/grub-script-check.1.gz +man/man1/grub-syslinux2cfg.1.gz +man/man8/grub-bios-setup.8.gz +man/man8/grub-install.8.gz +man/man8/grub-macbless.8.gz +man/man8/grub-mkconfig.8.gz +man/man8/grub-ofpathname.8.gz +man/man8/grub-probe.8.gz +man/man8/grub-reboot.8.gz +man/man8/grub-set-default.8.gz +man/man8/grub-sparc64-setup.8.gz sbin/grub-bios-setup -sbin/grub-probe sbin/grub-install +sbin/grub-macbless sbin/grub-mkconfig sbin/grub-ofpathname +sbin/grub-probe +sbin/grub-reboot sbin/grub-set-default sbin/grub-sparc64-setup -sbin/grub-reboot share/grub/grub-mkconfig_lib +share/grub/widthspec.h share/locale/ast/LC_MESSAGES/grub.mo share/locale/ca/LC_MESSAGES/grub.mo share/locale/da/LC_MESSAGES/grub.mo share/locale/de/LC_MESSAGES/grub.mo share/locale/eo/LC_MESSAGES/grub.mo share/locale/es/LC_MESSAGES/grub.mo share/locale/fi/LC_MESSAGES/grub.mo share/locale/fr/LC_MESSAGES/grub.mo share/locale/gl/LC_MESSAGES/grub.mo share/locale/hu/LC_MESSAGES/grub.mo share/locale/id/LC_MESSAGES/grub.mo share/locale/it/LC_MESSAGES/grub.mo share/locale/ja/LC_MESSAGES/grub.mo share/locale/lt/LC_MESSAGES/grub.mo share/locale/nb/LC_MESSAGES/grub.mo share/locale/nl/LC_MESSAGES/grub.mo share/locale/pa/LC_MESSAGES/grub.mo share/locale/pl/LC_MESSAGES/grub.mo share/locale/pt_BR/LC_MESSAGES/grub.mo share/locale/ru/LC_MESSAGES/grub.mo share/locale/sl/LC_MESSAGES/grub.mo share/locale/sv/LC_MESSAGES/grub.mo share/locale/tr/LC_MESSAGES/grub.mo share/locale/uk/LC_MESSAGES/grub.mo share/locale/vi/LC_MESSAGES/grub.mo share/locale/zh_CN/LC_MESSAGES/grub.mo share/locale/zh_TW/LC_MESSAGES/grub.mo -man/man1/grub-editenv.1.gz -man/man1/grub-fstest.1.gz -man/man1/grub-kbdcomp.1.gz -man/man1/grub-menulst2cfg.1.gz -man/man1/grub-mkimage.1.gz -man/man1/grub-mklayout.1.gz -man/man1/grub-mkpasswd-pbkdf2.1.gz -man/man1/grub-mkrelpath.1.gz -man/man1/grub-mkrescue.1.gz -man/man1/grub-mkstandalone.1.gz -man/man1/grub-script-check.1.gz -man/man8/grub-bios-setup.8.gz -man/man8/grub-install.8.gz -man/man8/grub-mkconfig.8.gz -man/man8/grub-ofpathname.8.gz -man/man8/grub-probe.8.gz -man/man8/grub-reboot.8.gz -man/man8/grub-set-default.8.gz -man/man8/grub-sparc64-setup.8.gz