Author Login
Post 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)