Search This Blog

Monday, August 07, 2006

Create DVD Install media from RedHat 4 CD's

This article explains how to create the Redhat Installable DVD from the CD's.

1. Create a directory say

/tmp/RHAS4

cd /tmp/RHAS4

2. Insert the RHAS CD1 first

dd if=/dev/cdrom of=rhas2.iso

3. Insert CD2 , 3 and 4 etc

dd if=/dev/cdrom of=rhas2.iso
dd if=/dev/cdrom of=rhas2.iso
dd if=/dev/cdrom of=rhas2.iso

4. Copy the script below , with the name as "mkdvdiso.sh".

or get the script from the location
http://www.stams.strath.ac.uk/~sergei/files/mkdvdiso.sh

-------------------------Cut From Here ---------------------------------------------------------
#/bin/bash

# by Chris Kloiber <ckloiber@redhat.com>
# Slight adaptation for Mandrake by Sergei Zuyev <sergei@stams.strath.ac.uk>
# Requires package mediacheck

# A quick hack that will create a bootable DVD iso of a Mandrake Linux
# Distribution. Feed it either a directory containing the downloaded
# iso files of a distribution, or point it at a directory containing
# the "Mandrake", "isolinux", and "images" directories.

# Usage:
# mkdvdiso.sh /path/to/the/cd/isos /destination/dvd.iso
# Burning on oka:
# /usr/bin/growisofs -Z /dev/hdc=/destination/dvd.iso -use-the-force-luke=notray -use-the-force-luke=tty -speed=2

# 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:=`pwd`/mkmdkdvd} = "/" ] && 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

DIR=`pwd`
cd $DVD
#mkisofs -J -R -v -T -o $2 -b isolinux/isolinux.bin -c Boot/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
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/bin/implantisomd5 $2
cd DIR

# cleanup
echo ""
echo "Process Complete!"
echo ""

-------------------------End of the File---------------------------------------------------------

5. Run the command as ,

mkdvdiso.sh /tmp/RHAS4 /tmp/RHAS4/rhas4dvd.iso

6. The above command should create the DVD ISO image

7. Transfer the DVD ISO Image to windows machine and create the DVD

1 comment:

ArunBavera said...

Getting following error for RedHat4.
Is Redhat based on isolinux to support this method of making DVD?

mkisofs 2.01a32 (i686-pc-linux-gnu)
Scanning .
Scanning ./images
Scanning ./images/pxeboot
Scanning ./isolinux
Scanning ./RedHat
Scanning ./RedHat/RPMS
Scanning ./RedHat/base
Scanning ./SRPMS
mkisofs: Uh oh, I cant find the boot catalog directory 'Boot'!
./mkdvdiso.sh: line 78: cd: DIR: No such file or directory

Process Complete!