From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1HwNvA-00069D-9O for mharc-grub-devel@gnu.org; Thu, 07 Jun 2007 15:45:24 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HwNv8-00067O-Oe for grub-devel@gnu.org; Thu, 07 Jun 2007 15:45:22 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HwNv7-00066K-PU for grub-devel@gnu.org; Thu, 07 Jun 2007 15:45:22 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HwNv7-000665-JN for grub-devel@gnu.org; Thu, 07 Jun 2007 15:45:21 -0400 Received: from aybabtu.com ([69.60.117.155]) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1HwNv6-0005qe-Un for grub-devel@gnu.org; Thu, 07 Jun 2007 15:45:21 -0400 Received: from [192.168.10.6] (helo=aragorn) by aybabtu.com with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.63) (envelope-from ) id 1HwNv2-0000WC-Kj for grub-devel@gnu.org; Thu, 07 Jun 2007 21:45:17 +0200 Received: from rmh by aragorn with local (Exim 4.63) (envelope-from ) id 1HwNvX-0005si-Fa for grub-devel@gnu.org; Thu, 07 Jun 2007 21:45:47 +0200 Date: Thu, 7 Jun 2007 21:45:47 +0200 From: Robert Millan To: grub-devel@gnu.org Message-ID: <20070607194547.GA22541@aragorn> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="CE+1k2dSO48ffgeK" Content-Disposition: inline Organization: free as in freedom X-Message-Flag: Microsoft discourages use of Outlook. X-Debbugs-No-Ack: true User-Agent: Mutt/1.5.13 (2006-08-11) X-detected-kernel: Genre and OS details not recognized. Subject: grub-mkrescue: Make GRUB rescue image X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jun 2007 19:45:23 -0000 --CE+1k2dSO48ffgeK Content-Type: text/plain; charset=us-ascii Content-Disposition: inline I'm attaching a small utility to generate a floppy or cdrom (based on floppy emulation) rescue image, that takes all the hassle of generating the image and doesn't need root permissions. If nobody objects, I'd like to put this in CVS. -- Robert Millan My spam trap is honeypot@aybabtu.com. Note: this address is only intended for spam harvesters. Writing to it will get you added to my black list. --CE+1k2dSO48ffgeK Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="mkrescue.diff" Binary files grub2-1.95+20070604.old/- and grub2-1.95+20070604/- differ diff -x i386-pc.mk -Nur grub2-1.95+20070604.old/conf/i386-pc.rmk grub2-1.95+20070604/conf/i386-pc.rmk --- grub2-1.95+20070604.old/conf/i386-pc.rmk 2007-06-04 21:48:53.000000000 +0200 +++ grub2-1.95+20070604/conf/i386-pc.rmk 2007-06-07 21:34:46.000000000 +0200 @@ -114,10 +114,19 @@ # Scripts. sbin_SCRIPTS = grub-install +bin_SCRIPTS = grub-mkrescue # For grub-install. grub_install_SOURCES = util/i386/pc/grub-install.in +# For grub-mkrescue. +grub_mkrescue_SOURCES = util/i386/pc/grub-mkrescue.in +CLEANFILES += grub-mkrescue + +grub-mkrescue: util/i386/pc/grub-mkrescue.in config.status + ./config.status --file=grub-mkrescue:util/i386/pc/grub-mkrescue.in + chmod +x $@ + # Modules. pkgdata_MODULES = _chain.mod _linux.mod linux.mod normal.mod \ _multiboot.mod chain.mod multiboot.mod reboot.mod halt.mod \ diff -x i386-pc.mk -Nur grub2-1.95+20070604.old/Makefile.in grub2-1.95+20070604/Makefile.in --- grub2-1.95+20070604.old/Makefile.in 2007-05-20 11:10:06.000000000 +0200 +++ grub2-1.95+20070604/Makefile.in 2007-06-07 21:36:42.000000000 +0200 @@ -88,7 +88,7 @@ DATA = $(pkgdata_IMAGES) $(pkgdata_MODULES) $(pkgdata_PROGRAMS) \ $(pkgdata_DATA) $(lib_DATA) PROGRAMS = $(bin_UTILITIES) $(sbin_UTILITIES) -SCRIPTS = $(sbin_SCRIPTS) $(update-grub_SCRIPTS) +SCRIPTS = $(bin_SCRIPTS) $(sbin_SCRIPTS) $(update-grub_SCRIPTS) CLEANFILES = MOSTLYCLEANFILES = @@ -149,6 +149,11 @@ dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \ $(INSTALL_PROGRAM) $$dir$$file $(DESTDIR)$(sbindir)/$$dest; \ done + @list='$(bin_SCRIPTS)'; for file in $$list; do \ + if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ + dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \ + $(INSTALL_SCRIPT) $$dir$$file $(DESTDIR)$(bindir)/$$dest; \ + done @list='$(sbin_SCRIPTS)'; for file in $$list; do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \ @@ -182,7 +187,7 @@ dest="`echo $$file | sed 's,.*/,,'`"; \ rm -f $(DESTDIR)$(pkglibdir)/$$dest; \ done - @list='$(bin_UTILITIES)'; for file in $$list; do \ + @list='$(bin_UTILITIES) $(bin_SCRIPTS)'; for file in $$list; do \ dest="`echo $$file | sed 's,.*/,,' | sed '$(transform)'`"; \ rm -f $(DESTDIR)$(bindir)/$$dest; \ done Binary files grub2-1.95+20070604.old/tmp/floppy and grub2-1.95+20070604/tmp/floppy differ diff -x i386-pc.mk -Nur grub2-1.95+20070604.old/util/i386/pc/grub-mkrescue.in grub2-1.95+20070604/util/i386/pc/grub-mkrescue.in --- grub2-1.95+20070604.old/util/i386/pc/grub-mkrescue.in 1970-01-01 01:00:00.000000000 +0100 +++ grub2-1.95+20070604/util/i386/pc/grub-mkrescue.in 2007-06-07 21:41:22.000000000 +0200 @@ -0,0 +1,119 @@ +#! /bin/sh + +# Make GRUB rescue image +# Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2006,2007 Free Software Foundation, Inc. +# +# This file 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 2 of the License, or +# (at your option) any later version. +# +# This program 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 this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St - Suite 330, Boston, MA 02110, USA. + +# 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@ +platform=@platform@ +pkglibdir=${libdir}/`echo ${PACKAGE_TARNAME}/${target_cpu}-${platform} | sed ${transform}` + +grub_mkimage=${bindir}/`echo grub-mkimage | sed ${transform}` + +# Usage: usage +# Print the usage. +usage () { + cat <. +EOF +} + +image_type=cdrom + +# Check the arguments. +for option in "$@"; do + case "$option" in + -h | --help) + usage + exit 0 ;; + -v | --version) + echo "grub-install (GNU GRUB ${PACKAGE_VERSION})" + exit 0 ;; + --modules=*) + modules=`echo "$option" | sed 's/--modules=//'` ;; + --grub-mkimage=*) + grub_mkimage=`echo "$option" | sed 's/--grub-mkimage=//'` ;; + --image-type=*) + image_type=`echo "$option" | sed 's/--image-type=//'` + case "$image_type" in + floppy|cdrom) ;; + *) + echo "Unknown image type \`$image_type'" 1>&2 + exit 1 ;; + esac ;; + -*) + echo "Unrecognized option \`$option'" 1>&2 + usage + exit 1 + ;; + *) + if test "x$output_image" != x; then + echo "Unrecognized option \`$option'" 1>&2 + usage + exit 1 + fi + output_image="${option}" ;; + esac +done + +if [ "x${modules}" = "x" ] ; then + modules=`cd ${pkglibdir}/ && ls *.mod` +fi + +if [ "x${image_type}" = "xfloppy" ] ; then + floppy_image=${output_image} +else + floppy_image=`mktemp` +fi + +cp ${pkglibdir}/boot.img $floppy_image +core_img=`mktemp` +grub-mkimage -d ${pkglibdir}/ -o ${core_img} ${modules} +cat ${core_img} >> $floppy_image +rm -f ${core_img} + +if [ "x${image_type}" = "xfloppy" ] ; then + exit 0 +fi + +iso_dir=`mktemp -d` +cat ${floppy_image} /dev/zero | dd bs=1024 count=1440 > ${iso_dir}/floppy.img +genisoimage -b floppy.img -o ${output_image} -r ${iso_dir} +rm -rf ${iso_dir} + +rm -f ${floppy_image} + +exit 0 --CE+1k2dSO48ffgeK--