* [PATCH] Unification of grub-mkrescue
@ 2009-11-11 21:50 Robert Millan
2009-11-11 22:00 ` Felix Zielcke
0 siblings, 1 reply; 6+ messages in thread
From: Robert Millan @ 2009-11-11 21:50 UTC (permalink / raw)
To: grub-devel
[-- Attachment #1: Type: text/plain, Size: 783 bytes --]
Attached is a unified version of grub-mkrescue. This grub-mkrescue not
just provides both i386-pc and i386-coreboot support from the same source,
but also from the same runtime.
Provided that both i386-pc and i386-coreboot ports are installed [1],
grub-mkrescue will generate a CDROM image that is bootable on both
platforms at the same time.
Please give it some review, I'll be committing this to util/grub-mkrescue.in
shortly.
[1] Currently a bit problematic due to file conflicts; this fixes one
of them (the other is grub-install).
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
[-- Attachment #2: grub-mkrescue.in --]
[-- Type: text/plain, Size: 4573 bytes --]
#! /bin/sh -e
# Make GRUB rescue image
# Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc.
#
# GRUB is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# GRUB is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GRUB. If not, see <http://www.gnu.org/licenses/>.
# Initialize some variables.
transform="@program_transform_name@"
prefix=@prefix@
exec_prefix=@exec_prefix@
bindir=@bindir@
libdir=@libdir@
PACKAGE_NAME=@PACKAGE_NAME@
PACKAGE_TARNAME=@PACKAGE_TARNAME@
PACKAGE_VERSION=@PACKAGE_VERSION@
target_cpu=@target_cpu@
coreboot_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/${target_cpu}-coreboot
pc_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/${target_cpu}-pc
grub_mkisofs="grub-mkisofs"
# Usage: usage
# Print the usage.
usage () {
cat <<EOF
Usage: $0 [OPTION] SOURCE...
Make GRUB rescue image.
-h, --help print this message and exit
-v, --version print the version information and exit
--modules=MODULES pre-load specified modules MODULES
--output=FILE save output in FILE
$0 generates a bootable rescue image with specified source files or directories.
Report bugs to <bug-grub@gnu.org>.
EOF
}
# Check the arguments.
for option in "$@"; do
case "$option" in
-h | --help)
usage
exit 0 ;;
-v | --version)
echo "$0 (GNU GRUB ${PACKAGE_VERSION})"
exit 0 ;;
--modules=*)
modules=`echo "$option" | sed 's/--modules=//'` ;;
--output=*)
output_image=`echo "$option" | sed 's/--output=//'` ;;
-*)
echo "Unrecognized option \`$option'" 1>&2
usage
exit 1
;;
*)
source="${source} ${option}" ;;
esac
done
iso9660_dir=`mktemp -d`
mkdir -p ${iso9660_dir}/boot/grub
for platform in pc coreboot ; do
input_dir=${libdir}/$(echo ${PACKAGE_TARNAME} | sed ${transform})/${target_cpu}-${platform}
if test -e ${input_dir} ; then
mkdir -p ${iso9660_dir}/boot/grub/${target_cpu}-${platform}
for file in ${input_dir}/*.mod ${input_dir}/efiemu??.o \
${input_dir}/command.lst ${input_dir}/moddep.lst ${input_dir}/fs.lst \
${input_dir}/handler.lst ${input_dir}/parttool.lst; do
if test -f "$file"; then
cp -f "$file" ${iso9660_dir}/boot/grub/${target_cpu}-${platform}/
fi
done
fi
done
# build coreboot core.img
if test -e ${coreboot_dir} ; then
memdisk_img=`mktemp`
memdisk_dir=`mktemp -d`
mkdir -p ${memdisk_dir}/boot/grub
# obtain date-based UUID
iso_uuid=$(date +%Y-%m-%d-%H-%M-%S-00)
cat << EOF >> ${memdisk_dir}/boot/grub/grub.cfg
search --fs-uuid --set ${iso_uuid}
set prefix=(\${root})/boot/grub/${target_cpu}-coreboot
source /boot/grub/grub.cfg
EOF
tar -C ${memdisk_dir} -cf ${memdisk_img} boot
rm -rf ${memdisk_dir}
grub-mkelfimage -d ${coreboot_dir}/ -m ${memdisk_img} -o ${iso9660_dir}/boot/multiboot.img \
memdisk tar search iso9660 configfile sh \
ata at_keyboard
rm -f ${memdisk_img}
grub_mkisofs="${grub_mkisofs} --modification-date=$(echo ${iso_uuid} | sed -e s/-//g)"
fi
if [ "${source}" != "" ] ; then
for d in ${source}; do
echo "Processing $d"
cp -dpRl "${d}" ${iso9660_dir}/
done
fi
# second-stage grub.cfg
for i in ${coreboot_dir} ${pc_dir} ; do
if test -e $i/partmap.lst ; then
modules="$(cat $i/partmap.lst) ${modules}"
break
fi
done
for i in ${modules} ; do
echo "insmod $i"
done > ${iso9660_dir}/boot/grub/grub.cfg
# build eltorito core.img
if test -e ${pc_dir} ; then
core_img=`mktemp`
grub-mkimage -d ${pc_dir}/ -o ${core_img} --prefix=/boot/grub/i386-pc \
memdisk tar search iso9660 configfile sh \
biosdisk
cat ${pc_dir}/cdboot.img ${core_img} > ${iso9660_dir}/boot/grub/i386-pc/eltorito.img
rm -f ${core_img}
cat > ${iso9660_dir}/boot/grub/i386-pc/grub.cfg << EOF
source /boot/grub/grub.cfg
EOF
grub_mkisofs="${grub_mkisofs} -b boot/grub/i386-pc/eltorito.img -boot-info-table"
fi
# build iso image
${grub_mkisofs} -o ${output_image} -r -J ${iso9660_dir}
rm -rf ${iso9660_dir}
exit 0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Unification of grub-mkrescue
2009-11-11 21:50 [PATCH] Unification of grub-mkrescue Robert Millan
@ 2009-11-11 22:00 ` Felix Zielcke
2009-11-12 10:42 ` Robert Millan
0 siblings, 1 reply; 6+ messages in thread
From: Felix Zielcke @ 2009-11-11 22:00 UTC (permalink / raw)
To: The development of GNU GRUB
Am Mittwoch, den 11.11.2009, 22:50 +0100 schrieb Robert Millan:
> Attached is a unified version of grub-mkrescue. This grub-mkrescue not
> just provides both i386-pc and i386-coreboot support from the same source,
> but also from the same runtime.
>
> Provided that both i386-pc and i386-coreboot ports are installed [1],
> grub-mkrescue will generate a CDROM image that is bootable on both
> platforms at the same time.
>
> Please give it some review, I'll be committing this to util/grub-mkrescue.in
> shortly.
>
> [1] Currently a bit problematic due to file conflicts; this fixes one
> of them (the other is grub-install).
Does that meant the old i386-pc script gets completely dropped?
I don't like it that it doestn't have --overlay and support for floppy
images.
--
Felix Zielcke
Proud Debian Maintainer and GNU GRUB developer
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Unification of grub-mkrescue
2009-11-11 22:00 ` Felix Zielcke
@ 2009-11-12 10:42 ` Robert Millan
2009-11-12 12:12 ` Robert Millan
0 siblings, 1 reply; 6+ messages in thread
From: Robert Millan @ 2009-11-12 10:42 UTC (permalink / raw)
To: The development of GNU GRUB
On Wed, Nov 11, 2009 at 11:00:38PM +0100, Felix Zielcke wrote:
>
> Does that meant the old i386-pc script gets completely dropped?
Yes.
> I don't like it that it doestn't have --overlay
Actually, it's just been renamed. Instead of:
grub-mkrescue --overlay=foo bar
you have:
grub-mkrescue --output=bar foo
which is more consistent with e.g. grub-mkimage.
> and support for floppy
> images.
I didn't consider this critical, but I'm fine with adding it back if
someone finds a way to do it cleanly.
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Unification of grub-mkrescue
2009-11-12 10:42 ` Robert Millan
@ 2009-11-12 12:12 ` Robert Millan
2009-11-12 14:35 ` Felix Zielcke
0 siblings, 1 reply; 6+ messages in thread
From: Robert Millan @ 2009-11-12 12:12 UTC (permalink / raw)
To: The development of GNU GRUB
On Thu, Nov 12, 2009 at 11:42:47AM +0100, Robert Millan wrote:
> > and support for floppy
> > images.
>
> I didn't consider this critical, but I'm fine with adding it back if
> someone finds a way to do it cleanly.
Sorry, I confused this with something else. It's actually trivial; I will
do this before commit.
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Unification of grub-mkrescue
2009-11-12 12:12 ` Robert Millan
@ 2009-11-12 14:35 ` Felix Zielcke
2009-11-14 18:41 ` Robert Millan
0 siblings, 1 reply; 6+ messages in thread
From: Felix Zielcke @ 2009-11-12 14:35 UTC (permalink / raw)
To: The development of GNU GRUB
Am Donnerstag, den 12.11.2009, 13:12 +0100 schrieb Robert Millan:
> On Thu, Nov 12, 2009 at 11:42:47AM +0100, Robert Millan wrote:
> > > and support for floppy
> > > images.
> >
> > I didn't consider this critical, but I'm fine with adding it back if
> > someone finds a way to do it cleanly.
>
> Sorry, I confused this with something else. It's actually trivial; I
> will
> do this before commit.
>
Thanks. Even in my opinion this isn't that critical.
Todays computers probable rarely have a floppy drive.
But if you have one and a spare floppy it's pretty useful.
Oh why do I _now_ get this idea only and not before. *sigh*
(See #grub why ;))
--
Felix Zielcke
Proud Debian Maintainer and GNU GRUB developer
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] Unification of grub-mkrescue
2009-11-12 14:35 ` Felix Zielcke
@ 2009-11-14 18:41 ` Robert Millan
0 siblings, 0 replies; 6+ messages in thread
From: Robert Millan @ 2009-11-14 18:41 UTC (permalink / raw)
To: The development of GNU GRUB
On Thu, Nov 12, 2009 at 03:35:29PM +0100, Felix Zielcke wrote:
> Am Donnerstag, den 12.11.2009, 13:12 +0100 schrieb Robert Millan:
> > On Thu, Nov 12, 2009 at 11:42:47AM +0100, Robert Millan wrote:
> > > > and support for floppy
> > > > images.
> > >
> > > I didn't consider this critical, but I'm fine with adding it back if
> > > someone finds a way to do it cleanly.
> >
> > Sorry, I confused this with something else. It's actually trivial; I
> > will
> > do this before commit.
> >
>
> Thanks. Even in my opinion this isn't that critical.
> Todays computers probable rarely have a floppy drive.
> But if you have one and a spare floppy it's pretty useful.
> Oh why do I _now_ get this idea only and not before. *sigh*
> (See #grub why ;))
I made floppy support a separate command (grub-mkfloppy). Multi-platform
support was currently impossible, and the code was too different for a
unified file to be useful.
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-11-14 18:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-11 21:50 [PATCH] Unification of grub-mkrescue Robert Millan
2009-11-11 22:00 ` Felix Zielcke
2009-11-12 10:42 ` Robert Millan
2009-11-12 12:12 ` Robert Millan
2009-11-12 14:35 ` Felix Zielcke
2009-11-14 18:41 ` Robert Millan
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.