summaryrefslogtreecommitdiffstats
path: root/scripts/mk-images.ia64
diff options
context:
space:
mode:
authorChris Lumens <clumens@redhat.com>2006-01-25 20:25:57 +0000
committerChris Lumens <clumens@redhat.com>2006-01-25 20:25:57 +0000
commit4f6af91524daba48918aa8548cee64024c8853d3 (patch)
tree3448e5eb2294409dfef3fa1fdcef43a4feba273f /scripts/mk-images.ia64
parentf2fb0797e1a8e6e838d0f39ddad6701d3686b2a8 (diff)
downloadanaconda-4f6af91524daba48918aa8548cee64024c8853d3.tar.gz
anaconda-4f6af91524daba48918aa8548cee64024c8853d3.tar.xz
anaconda-4f6af91524daba48918aa8548cee64024c8853d3.zip
Create images for ia64 (#175632)
Diffstat (limited to 'scripts/mk-images.ia64')
-rw-r--r--scripts/mk-images.ia64107
1 files changed, 100 insertions, 7 deletions
diff --git a/scripts/mk-images.ia64 b/scripts/mk-images.ia64
index 5f04c1325..310368697 100644
--- a/scripts/mk-images.ia64
+++ b/scripts/mk-images.ia64
@@ -1,14 +1,97 @@
+#!/bin/bash
+
+#makebootdisk required for EFI bootloader dosfs image
+makebootdisk() {
+ EXTRAKERNELPATH=""
+ INITRDFLAGS=""
+ MBD_FILENAME=""
+ INITRDFILE=""
+ MBD_TMPIMAGE=/tmp/makebootdisk.image.$$
+ MBD_BOOTTREE=/tmp/makebootdisk.tree.$$
+ MBD_BOOTTREE_TMP=$MBD_BOOTTREE'_tmp'
+ while [ x$(echo $1 | cut -c1-2) = x"--" ]; do
+ if [ $1 = "--kernelto" ]; then
+ EXTRAKERNELPATH=$2
+ shift; shift
+ continue
+ elif [ $1 = "--initrdflags" ]; then
+ INITRDFLAGS=$2
+ shift; shift
+ continue
+ elif [ $1 = "--initrd" ]; then
+ INITRDFILE=$2
+ shift; shift
+ continue
+ elif [ $1 = "--imagename" ]; then
+ MBD_FILENAME=$IMAGEPATH/$2
+ shift; shift
+ continue
+ fi
+ echo "Unknown option passed to makebootdisk"
+ exit 1
+ done
+
+ if [ -z "$MBD_FILENAME" ]; then
+ echo "No imagename passed"
+ exit 1
+ fi
+
+ if [ -n "$INITRDFILE" ]; then
+ MBD_FSIMAGE="$INITRDFILE"
+ elif [ -n "$INITRDFLAGS" ]; then
+ eval makeinitrd --keep $INITRDFLAGS
+ fi
+
+ mkdir -p $MBD_BOOTTREE
+ mkdir -p $MBD_BOOTTREE_TMP
+ rm -rf $MBD_BOOTTREE_TMP
+ mkdir -p $MBD_TMPIMAGE
+
+ # provided by the mk-image.$ARCH file
+ prepareBootImage
+
+ left=$(df $MBD_BOOTTREE | tail -n1)
+ left=$(echo $left | awk '{print $4'})
+
+ umount $MBD_BOOTTREE
+
+ if [ -n "$EXTRAKERNELPATH" ]; then
+ mkdir -p `dirname $EXTRAKERNELPATH`
+ cp -f $KERNELROOT/$KERNELDIR/${KERNELNAME}-* $EXTRAKERNELPATH
+ fi
+
+ mkdir -p `dirname $MBD_FILENAME`
+ rm -rf $MBD_TMPIMAGE $MBD_MNTPOINT $MBD_BOOTTREE
+ if [ -z "$INITRDFILE" ]; then
+ rm -f $MBD_FSIMAGE
+ fi
+
+ echo "Wrote $MBD_FILENAME (${left}k free)"
+}
+
prepareBootImage() {
+
+ prepareBootTree
+
+ # dynamically calculate the size of the dosfs
+ BOOTDISKSIZE=$(du -kcs $MBD_BOOTTREE_TMP | tail -n1 | awk '{print $1}')
+ BOOTDISKSIZE=$(expr $BOOTDISKSIZE + 100)
+ echo "The size of the boot.img dosfs is $BOOTDISKSIZE"
dd if=/dev/zero bs=1k count=$BOOTDISKSIZE of=$MBD_FILENAME 2>/dev/null
mkdosfs -C $MBD_FILENAME $BOOTDISKSIZE >/dev/null
mount -o loop -t vfat $MBD_FILENAME $MBD_BOOTTREE
- mkdir -p $MBD_BOOTTREE/EFI/boot
- cp $MBD_FSIMAGE $MBD_BOOTTREE/EFI/boot/initrd.img
+ cp -R $MBD_BOOTTREE_TMP/* $MBD_BOOTTREE
+}
- cp -a $BOOTDISKDIR/* $MBD_BOOTTREE/EFI/boot/
- cp $KERNELROOT/boot/efi/EFI/redhat/vmlinuz-* $MBD_BOOTTREE/EFI/boot/vmlinuz
- cp $MBD_BOOTTREE/EFI/boot/elilo.efi $MBD_BOOTTREE/EFI/boot/bootia64.efi
- cat > $MBD_BOOTTREE/EFI/boot/elilo.conf << EOF
+prepareBootTree() {
+ mkdir -p $MBD_BOOTTREE_TMP/EFI/boot
+ cp $MBD_FSIMAGE $MBD_BOOTTREE_TMP/EFI/boot/initrd.img
+
+ cp -a $BOOTDISKDIR/* $MBD_BOOTTREE_TMP/EFI/boot/
+ cp $KERNELROOT/boot/efi/EFI/redhat/vmlinuz-* $MBD_BOOTTREE_TMP/EFI/boot/vmlinuz
+
+ cp $MBD_BOOTTREE_TMP/EFI/boot/elilo.efi $MBD_BOOTTREE_TMP/EFI/boot/bootia64.efi
+ cat > $MBD_BOOTTREE_TMP/EFI/boot/elilo.conf << EOF
prompt
timeout=50
relocatable
@@ -20,10 +103,20 @@ image=vmlinuz
EOF
# make a copy in the root of the image
- cp $MBD_BOOTTREE/EFI/boot/* $MBD_BOOTTREE/
+ cp $MBD_BOOTTREE_TMP/EFI/boot/* $MBD_BOOTTREE_TMP
}
makeBootImages() {
+ # Because ia64 boxes use EFI there needs to be a boot.img dosfs.
+ echo "making boot.img for EFI bootloader"
+ makebootdisk --kernelto $TOPDESTPATH/kernels/vmlinuz \
+ --imagename boot.img \
+ --initrdflags '--initrdto $TOPDESTPATH/images/ramdisk.img \
+ --initrdsize 12288 \
+ --loaderbin loader \
+ --modules "$INITRDMODS sgiioc4" '
+
+
mkdir -p $TOPDESTPATH/images/pxeboot
makeinitrd --initrdto $TOPDESTPATH/images/pxeboot/initrd.img \
--initrdsize 12288 \