From 19344592966ff1eb1e618a55528ff519eb77c540 Mon Sep 17 00:00:00 2001 From: Marc Fiuczynski Date: Tue, 30 Dec 2008 22:05:34 +0000 Subject: [PATCH] Given a kernel rpm file, this script updates the bootcd with a new kernel given a kernel rpm. This probably should be integrated into build.sh. --- kupdate.sh | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100755 kupdate.sh diff --git a/kupdate.sh b/kupdate.sh new file mode 100755 index 0000000..5ca4b12 --- /dev/null +++ b/kupdate.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +kernelrpm=$1 +isofsdir=$2 + +tmpdir= +files= + +bail () +{ + rm -rf $tmpdir $files + exit -1 +} + +usage () +{ + program=$(basename $0) + echo "USAGE:" + echo " $program kernel.rpm" + echo " where kernel.rpm is the corresponding rpm files," + echo " which might live in ./RPMS/..." + exit -1 +} + +checkrpm () +{ + filename=$1 + if [ -f "$filename" ] ; then + if [ $(rpm -qip $filename | wc -l) -eq 1 ] ; then + echo "$filename not a valid rpm file" + usage + fi + fi +} + +[ -z "$kernelrpm" ] && usage +checkrpm $kernelrpm + +tmpdir=$(mktemp -d /var/tmp/bootcd.XXXXXX) +trap "bail" ERR INT +echo "Updating bootcd image with $kernelrpm" +pushd $tmpdir +mkdir bootcd +pushd bootcd +gzip -d -c $isofsdir/bootcd.img | cpio -diu +rm -rf boot/* +rm -rf lib/modules +rpm2cpio $kernelrpm | cpio -diu +version=$(cd ./boot && ls vmlinuz* | sed 's,vmlinuz-,,') +depmod -b . $version +cp boot/vmlinuz* ${tmpdir}/kernel +find . | cpio --quiet -c -o | gzip -9 > ${tmpdir}/bootcd.img +popd +popd + +# +mv ${isofsdir}/kernel ${tmpdir}/kernel.orig +mv ${isofsdir}/bootcd.img ${tmpdir}/bootcd.img.orig + +# +mv ${tmpdir}/kernel ${isofsdir}/kernel +mv ${tmpdir}/bootcd.img ${isofsdir}/bootcd.img +rm -rf $tmpdir + +echo " ... done" +trap - ERR +exit 0 -- 2.43.0