Re: Bug#461442: please add support for os-prober to detect other OSes in update-grub
Robert Millan schrieb: You could try with qemu. Update: I tried with Knoppix on a computer that has Debian sid and Windows XP installed. The attached script did it's job well - of course except for the part when it has to convert Linux device names to GRUB drives (see #462218). Support for HURD is still outstanding, though. Cheers, Fabian -- Dipl.-Phys. Fabian Greffrath Ruhr-Universität Bochum Lehrstuhl für Energieanlagen und Energieprozesstechnik (LEAT) Universitätsstr. 150, IB 3/134 D-44780 Bochum Telefon: +49 (0)234 / 32-26334 Fax: +49 (0)234 / 32-14227 E-Mail: [EMAIL PROTECTED] #! /bin/sh -e # update-grub helper script. # convert_device_to_grub_drive () { # you know what's missing here... echo $1 } if [ -x "`which os-prober 2>/dev/null`" ] ; then OSPROBED="`os-prober | tr ' ' '|' | paste -s -d ' '`" fi if [ -n "${OSPROBED}" ] ; then for OS in ${OSPROBED} ; do DEVICE="`echo ${OS} | cut -d ':' -f 1`" LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '|' ' '`" LABEL="`echo ${OS} | cut -d ':' -f 3 | tr '|' ' '`" BOOT="`echo ${OS} | cut -d ':' -f 4`" if [ -z "${LONGNAME}" ] ; then LONGNAME="${LABEL}" fi echo "Found ${LONGNAME} on ${DEVICE}" >&2 case "${BOOT}" in chain) CHAINROOT="`convert_device_to_grub_drive ${DEVICE}`" cat << EOF menuentry "${LONGNAME} (on ${DEVICE})" { set root=${CHAINROOT} chainloader +1 } EOF ;; linux) if [ -x "`which linux-boot-prober 2>/dev/null`" ] ; then LINUXPROBED="`linux-boot-prober ${DEVICE} | tr ' ' '|' | paste -s -d ' '`" fi if [ -n "${LINUXPROBED}" ] ; then for LINUX in ${LINUXPROBED} ; do LROOT="`echo ${LINUX} | cut -d ':' -f 1`" LBOOT="`echo ${LINUX} | cut -d ':' -f 2`" LLABEL="`echo ${LINUX} | cut -d ':' -f 3 | tr '|' ' '`" LKERNEL="`echo ${LINUX} | cut -d ':' -f 4`" LINITRD="`echo ${LINUX} | cut -d ':' -f 5`" LPARAMS="`echo ${LINUX} | cut -d ':' -f 6 | tr '|' ' '`" LINUXROOT="`convert_device_to_grub_drive ${LBOOT}`" if [ -z "${LLABEL}" ] ; then LLABEL="${LONGNAME}" fi cat << EOF menuentry "${LLABEL} (on ${DEVICE})" { set root=${LINUXROOT} linux ${LKERNEL} ${LPARAMS} EOF if [ -n "${LINITRD}" ] ; then cat << EOF initrd ${LINITRD} EOF fi cat << EOF } EOF done fi ;; hurd) # not yet... ;; *) ;; esac done fi ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel
Re: Bug#461442: please add support for os-prober to detect other OSes in update-grub
On Fri, Jan 25, 2008 at 10:39:14AM +0100, Fabian Greffrath wrote: > Otavio Salvador schrieb: > >os-prober is developed inside Debian Installer team. > > > >I think it's two different but reports and then it would be nice to > >report a specific bug (maybe with a proposed patch) for os-prober to > >provide what you'd need and then we can push it. > > I believe the issue is even easier to solve. I simply need to run > 'linux-boot-prober' (in the same package as os-prober, it seems I am > blinded) on the partition for which the 'linux' boot keyword is reported > and interpret it's output. Expect more work on this next week. I am > sorry I cannot test my script drafts, because I have no other *nix > besides Debian on my machine (the first of The Ten Commandments). ;) You could try with qemu. -- Robert Millan I know my rights; I want my phone call! What use is a phone call… if you are unable to speak? (as seen on /.) ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel
Re: Bug#461442: please add support for os-prober to detect other OSes in update-grub
Otavio Salvador schrieb: os-prober is developed inside Debian Installer team. I think it's two different but reports and then it would be nice to report a specific bug (maybe with a proposed patch) for os-prober to provide what you'd need and then we can push it. I believe the issue is even easier to solve. I simply need to run 'linux-boot-prober' (in the same package as os-prober, it seems I am blinded) on the partition for which the 'linux' boot keyword is reported and interpret it's output. Expect more work on this next week. I am sorry I cannot test my script drafts, because I have no other *nix besides Debian on my machine (the first of The Ten Commandments). ;) Cheers, -- Dipl.-Phys. Fabian Greffrath Ruhr-Universität Bochum Lehrstuhl für Energieanlagen und Energieprozesstechnik (LEAT) Universitätsstr. 150, IB 3/134 D-44780 Bochum Telefon: +49 (0)234 / 32-26334 Fax: +49 (0)234 / 32-14227 E-Mail: [EMAIL PROTECTED] ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel
Re: Bug#461442: please add support for os-prober to detect other OSes in update-grub
Fabian Greffrath <[EMAIL PROTECTED]> writes: > At the moment there is still one problem left: os-prober returns the > partition on which it finds the OS as a system device name, > e.g. /dev/hda2. At the moment, GRUB does not provide an (easy) way to > translate these into GRUB drives, e.g. (hd0,1). This is why I allready > requested such a feature on this list [2]. > Another problem (or: missing feature) is, that at the moment my script > can only add chainloaded OSes to grub.cfg. To add kernels like Linux > or HURD it is necessary to mount these partitions again to find out > exactly where the kernel and initrd images reside. This is something I > want to avoid, because the partitions have allready been mounted by > os-prober and I don't want to duplicate it's code for this > purpose. Maybe os-prober could be modified to be more verbose in such > cases and report the entire path to the images. os-prober is developed inside Debian Installer team. I think it's two different but reports and then it would be nice to report a specific bug (maybe with a proposed patch) for os-prober to provide what you'd need and then we can push it. -- O T A V I OS A L V A D O R - E-mail: [EMAIL PROTECTED] UIN: 5906116 GNU/Linux User: 239058 GPG ID: 49A5F855 Home Page: http://otavio.ossystems.com.br - "Microsoft sells you Windows ... Linux gives you the whole house." ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel