Java Mailing List Archive

http://www.redhatconfig.com/

Home » Gentoo Linux »

[gentoo-user] Re: grub weirdness

Sven Köhler

2008-05-07

Replies:

Author LoginPost Reply
> 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 (zipped)
©2008 redhatconfig.com - Jax Systems, LLC, U.S.A.