diff options
Diffstat (limited to 'util/grub-image.in')
-rw-r--r-- | util/grub-image.in | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/util/grub-image.in b/util/grub-image.in deleted file mode 100644 index ea63250..0000000 --- a/util/grub-image.in +++ /dev/null @@ -1,138 +0,0 @@ -#! /bin/sh -# grub-image - Create a GRUB boot filesystem image and tarball -# Gordon Matzigkeit <gord@fig.org>, 2000-07-25 -# -# Copyright (C) 2000, 2002 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -sbindir=@sbindir@ -libdir=@libdir@ -PACKAGE=@PACKAGE@ -host_cpu=@host_cpu@ -host_os=@host_os@ -host_vendor=@host_vendor@ -context=${host_cpu}-${host_vendor} -pkglibdir=${libdir}/${PACKAGE}/${context} - -mke2fs=`which mke2fs` - -progname=`echo "$0" | sed 's%^.*/%%'` -thisdir=`echo "$0" | sed 's%/[^/]*$%%'` -test "X$thisdir" = "X$0" && thisdir=. - -# See if we were invoked from within the build directory, and if so, -# use the built files rather than the installed ones. -if test -f $thisdir/../stage2/stage2; then - grub_shell="$thisdir/../grub/grub" - stage1dir="$thisdir/../stage1" - stage2dir="$thisdir/../stage2" -else - grub_shell=${sbindir}/grub - stage1dir="$pkglibdir" - stage2dir="$pkglibdir" -fi - -# Exit on any error. -set -e - -# Get GRUB's version from the Grub shell, since we use the -# installed files. -VERSION=`$grub_shell --version | sed -e 's/^.* \([0-9.]*\).*$/\1/'` -test "X$VERSION" != X - -bootdir=${PACKAGE}-${VERSION}-${context} -image=$bootdir.ext2fs - -# Create the tarball. -if test ! -f $bootdir.tar.gz; then - echo "# Creating \`$bootdir.tar.gz'" - mkdir -p $bootdir/boot/grub - cp -p $stage1dir/stage1 $stage2dir/*_stage1_5 $stage2dir/stage2 \ - $bootdir/boot/grub - test ! -f menu.lst || cp -p menu.lst $bootdir/boot/grub - trap "rm -f $bootdir.tar.gz" 0 - GZIP=-9 tar -zcf $bootdir.tar.gz $bootdir - trap '' 0 - rm -rf $bootdir -fi - -# Create a new filesystem image of the specified size. -if test ! -f $image; then - tarsize=`zcat $bootdir.tar.gz | wc -c` - - # Add about 30% (20% overhead plus 10% breathing room), and convert - # to kilobytes. This factor was determined empirically. - SIZE=`expr $tarsize \* 130 / 100 / 1024`k - echo "# Creating $SIZE disk image \`$image'" - trap "rm -f $image" 0 - dd if=/dev/zero of=$image bs=$SIZE count=1 >/dev/null - $mke2fs -F $image - trap '' 0 -fi - - -# Attempt to mount the image. -echo "# Mounting \`$image'" -test -d $bootdir || mkdir $bootdir -case "$host_os" in -gnu*) - settrans -a $bootdir /hurd/ext2fs $image - umount="settrans -a $bootdir" - ;; - -linux*) - # This requires running as root, and using the loop device. - i=0 - while test -e /dev/loop$i; do - if /sbin/losetup /dev/loop$i $image; then - break - fi - i=`expr $i + 1` - done - - # Silly losetup doesn't report an error! - mount /dev/loop$i $bootdir - umount="umount $bootdir && /sbin/losetup -d /dev/loop$i && trap '' 0" - ;; - -*) - echo "$progname: Mounting \`$image' under \`$host_os' is not supported" 1>&2 - exit 1 - ;; -esac -trap "$umount" 0 - -# Extract our tarball into the image, then unmount it. -echo "# Copying files into \`$image':" -tar -zxvf $bootdir.tar.gz - -echo "# \`$image' usage:" -df $bootdir -eval $umount -rmdir $bootdir || : - -# Use the GRUB shell to properly set up GRUB on the image. -echo "# Installing GRUB in \`$image'" -cat <<EOF | $grub_shell --batch --device-map=/dev/null -device (fd0) $image -root (fd0) -install /boot/grub/stage1 (fd0) /boot/grub/stage2 -quit -EOF - -exit 0 |