This Blog is for my ARM and linux work

Sunday, February 8, 2009

Ahhaaa !!! At last I got RH9 in DVD...

This was not an easy job, There was series of Hits and Trails..
And at last I was able to combine all three CDs of RedHat 9, and make its DVD version..
My this Tute about this problem, is not copy and paste, it is just hybrid of the earlier tutorials and
my fix to it, As in my earlier post you got a complete fix, two method on is complete manual ans another is complete automatic by script.
But both has their own limitation, the automatic need some extra package install on your system, which is usually not there in your system.
And in the manual, obvious higher level of knowledge...

My way in the the mid way of both. It does not ask you to install some package, means No dependency
I use some certain part of script to get copied as one single folder somewhere in the file system.
But before using the following script, you need make some arrangement as following
  • Have ISO image for all the CDs you need to include in Distro
  • Have 3x Space free on the current Filesystem.
  • Keep the script and all ISO images in the same directory
  • Size of Distro+500 MB space free, where your Home Directory resides, as it creates the single folder Named mkrhdvd in the Home Directry.
here is the script copy and save as .sh, give executable permission then run.

#############################################################
#!/bin/bash

# Originally by Chris Kloiber
# Modified by Alok Choudhary
#
# A quick hack that will create a bootable DVD iso of a Red Hat Linux
# Distribution. Feed it either a directory containing the downloaded
# iso files of a distribution, or point it at a directory containing
# the "RedHat", "isolinux", and "images" directories.

# This version only works with "isolinux" based Red Hat Linux versions.

# Lots of disk space required to work, 3X the distribution size at least.

# GPL version 2 applies. No warranties, yadda, yadda. Have fun.


if [ $# -lt 2 ]; then
echo "Usage: `basename $0` source /destination/DVD.iso"
echo ""
echo " The 'source' can be either a directory containing a single"
echo " set of isos, or an exploded tree like an ftp site."
exit 1
fi

cleanup() {
[ ${LOOP:=/tmp/loop} = "/" ] && echo "LOOP mount point = \/, dying!" && exit
[ -d $LOOP ] && rm -rf $LOOP
[ ${DVD:=~/mkrhdvd} = "/" ] && echo "DVD data location is \/, dying!" && exit
[ -d $DVD ] && rm -rf $DVD
}

cleanup
mkdir -p $LOOP
mkdir -p $DVD

if [ !`ls $1/*.iso 2>&1>/dev/null ; echo $?` ]; then
echo "Found ISO CD images..."
CDS=`expr 0`
DISKS="1"

for f in `ls $1/*.iso`; do
mount -o loop $f $LOOP
cp -av $LOOP/* $DVD
if [ -f $LOOP/.discinfo ]; then
cp -av $LOOP/.discinfo $DVD
CDS=`expr $CDS + 1`
if [ $CDS != 1 ] ; then
DISKS=`echo ${DISKS},${CDS}`
fi
fi
umount $LOOP
done
if [ -e $DVD/.discinfo ]; then
awk '{ if ( NR == 4 ) { print disks } else { print ; } }' disks="$DISKS" $DVD/.discinfo > $DVD/.discinfo.new
mv $DVD/.discinfo.new $DVD/.discinfo
fi
else
echo "Found FTP-like tree..."
cp -av $1/* $DVD
[ -e $1/.discinfo ] && cp -av $1/.discinfo $DVD
fi

rm -rf $DVD/isolinux/boot.cat
find $DVD -name TRANS.TBL | xargs rm -f

cd $DVD
mkisofs -J -R -v -T -o $2 -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
/usr/lib/anaconda-runtime/implantisomd5 --force $2

cleanup
echo ""
echo "Process Complete!"
echo ""
########################SCRIPTS ENDS HERE######################

No comments: