public inbox for gentoo-user@lists.gentoo.org
 help / color / mirror / Atom feed
From: Wolf Canis <wolf.canis@googlemail.com>
To: gentoo-user@lists.gentoo.org
Subject: Re: [gentoo-user]  Re: grub weirdness
Date: Wed, 07 May 2008 04:57:40 +0200	[thread overview]
Message-ID: <48211AA4.8020909@googlemail.com> (raw)
In-Reply-To: <fvr409$6hj$1@ger.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 4209 bytes --]

Sven Köhler wrote:
>> When you emerged grub-0.97-r5, this was displayed on your console:
>> WARN: postinst
>> *** IMPORTANT NOTE: you must run grub and install
>> the new version's stage1 to your MBR.  Until you do,
>> stage1 and stage2 will still be the old version, but
>> later stages will be the new version, which could
>> cause problems such as an unbootable system.
>
> Yes, the ebuild writes that to the screen.
>
> But silently, in the background (because every output is piped to
> /dev/null - how evil!), the ebuild calls grub with some commands
> inside your grub.conf.

I just updated grub to version 0.97-r5 and this was,
at the end, displayed:

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


 Your boot partition was not mounted as /boot, but portage
 was able to mount it without additional intervention.
 Files will be installed there for grub to function correctly.

 *** IMPORTANT NOTE: you must run grub and install
 the new version's stage1 to your MBR.  Until you do,
 stage1 and stage2 will still be the old version, but
 later stages will be the new version, which could
 cause problems such as an unbootable system.
 Copying files from /lib/grub and /usr/lib/grub to //boot/grub
 To install grub files to another device (like a usb stick), just run:
    emerge --config =grub-0.97-r5

>
> 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...".

Have fun,
W. Canis



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 260 bytes --]

  reply	other threads:[~2008-05-07  2:57 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-06 23:10 [gentoo-user] grub weirdness »Q«
2008-05-06 23:36 ` Peter Ruskin
2008-05-07  2:26   ` [gentoo-user] " Sven Köhler
2008-05-07  2:57     ` Wolf Canis [this message]
2008-05-07 10:13       ` Sven Köhler
2008-05-08  4:47         ` »Q«
2008-05-07  3:54   ` [gentoo-user] Re: grub weirdness [solved] »Q«
2008-05-07  0:24 ` [gentoo-user] grub weirdness Ian Hilt
2008-05-07  9:22   ` Neil Bothwick

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48211AA4.8020909@googlemail.com \
    --to=wolf.canis@googlemail.com \
    --cc=gentoo-user@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox