To avoid automounting and autoinstalling with /boot,
 just export the DONT_MOUNT_BOOT variable.

Which /boot partition? I don't have any ...

If there's a setup-command in your grub.conf, it is indeed executed.
So if that command is outdated (something you won't notice, since that
command is not used by grub in any situation i know), the ebuild will
execute that setup-command and write to some device's boot sector. How
evil, again!

Regards,
  Sven

P.S.: here's the code from grub-0.97-r5.ebuild:

        if [[ -e ${dir}/grub.conf ]] ; then
                egrep \
                        -v
'^[[:space:]]*(#|$|default|fallback|initrd|password|splashimage|timeout|title)'
\
                        "${dir}"/grub.conf | \
                /sbin/grub --batch \
                        --device-map="${dir}"/device.map \
                        > /dev/null
fi
And following the code of the functions which does the job:
found in ebuild: /usr/portage/sys-boot/grub/grub-0.97-r5.ebuild

setup_boot_dir() {
    local boot_dir=$1
    local dir=${boot_dir}

    [[ ! -e ${dir} ]] && die "${dir} does not exist!"
    [[ ! -L ${dir}/boot ]] && ln -s . "${dir}/boot"
    dir="${dir}/grub"
    if [[ ! -e ${dir} ]] ; then
        mkdir "${dir}" || die "${dir} does not exist!"
    fi

    # change menu.lst to grub.conf
    if [[ ! -e ${dir}/grub.conf ]] && [[ -e ${dir}/menu.lst ]] ; then
        mv -f "${dir}"/menu.lst "${dir}"/grub.conf
        ewarn
        ewarn "*** IMPORTANT NOTE: menu.lst has been renamed to grub.conf"
        ewarn
    fi

    if [[ -e ${dir}/stage2 ]] ; then
        mv "${dir}"/stage2{,.old}
        ewarn "*** IMPORTANT NOTE: you must run grub and install"
        ewarn "the new version's stage1 to your MBR.  Until you do,"
        ewarn "stage1 and stage2 will still be the old version, but"
        ewarn "later stages will be the new version, which could"
        ewarn "cause problems such as an unbootable system."
        ebeep
    fi

    einfo "Copying files from /lib/grub and /usr/lib/grub to ${dir}"
    for x in "${ROOT}"/lib*/grub/*/* "${ROOT}"/usr/lib*/grub/*/* ; do
        [[ -f ${x} ]] && cp -p "${x}" "${dir}"/
    done

    if [[ -e ${dir}/grub.conf ]] ; then
        egrep \
            -v
'^[[:space:]]*(#|$|default|fallback|initrd|password|splashimage|timeout|title)'
\
            "${dir}"/grub.conf | \
        /sbin/grub --batch \
            --device-map="${dir}"/device.map \
            > /dev/null
    fi

    # the grub default commands silently piss themselves if
    # the default file does not exist ahead of time
    if [[ ! -e ${dir}/default ]] ; then
        grub-set-default --root-directory="${boot_dir}" default
    fi
}


How you can see isn't the message piped to /dev/null, only
the command "/sbin/grub -batch -device-map...".

Why should i worry about the message being piped to /dev/null?

I worry about a message saying "you have to do it by hand" although some harmful "magic" is going on behind the scenes (the egrep+grub command) although we are not informed about it (command is piped to /dev/null, not message about it, etc.).

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to