Staging CD/DVD’s for Installation

Posted on August 22, 2007. Filed under: Installation |

 

There are two ways of staging the CD/DVD’s.

1. Traditional Way

In this way we invoke adautostg.pl located at </mountpoint>/Stage11i/startCD/Disk1/rapidwiz, which is part of startCD which invokes below screen wherein we input

 

a. Staging Directory

b. CD Drive Mounting Command

c. CD Drive Unmounting Command

d. Components to be staged

e. NLS Languages

 

Stage Screen 1

 

2. Single Line Command

 

The other way of staging the CD/DVD’s is to use the same script (adautostg.pl) but by providing all the information in one single line command. The options can be viewed by running the command

 

$ perl adautostg.pl -help << this command invokes below screen

 

Stage Help

 

Example Commands

 

To stage only iAS for Language English

 

perl </mountpoint>/Stage11i/startCD/Disk1/rapidwiz/adautostg.pl -stage=/<staging directory> -mount=”mount -t iso9660 /dev/cdrom /mnt/cdrom” -umount=”umount /mnt/cdrom” -component=”ias” -dvdnum=1

 

To stage only APPL_TOP for Language English

 

perl </mountpoint>/Stage11i/startCD/Disk1/rapidwiz/adautostg.pl -stage=/<staging directory> -mount=”mount -t iso9660 /dev/cdrom /mnt/cdrom” -umount=”umount /mnt/cdrom” -component=”apps” -dvdnum=1

 

Now the interesting question is where to find the dvdnum value. In every DVD there is a file called dvd.label, which consists of the dvd information.

 

eg:

 

[root@appstest oraApps]# cat dvd.label
DVD1 Disk1-Disk6
DVD2 Disk7-Disk8

The disadvantage in using the single line command is we need to enter the same command with change in the value for dvdnum for every individual component to be staged. So for staging APPL_TOP we need to execute above command again with a change in the dvdnum to stage the second DVD ie.,

 

perl </mountpoint>/Stage11i/startCD/Disk1/rapidwiz/adautostg.pl -stage=/<staging directory> -mount=”mount -t iso9660 /dev/cdrom /mnt/cdrom” -umount=”umount /mnt/cdrom” -component=”apps” -dvdnum=2

To overcome this we can assign the value as “all” for -component which behaves simillar to running the script in traditional way.

 

eg:

 

perl </mountpoint>/Stage11i/startCD/Disk1/rapidwiz/adautostg.pl -stage=/<staging directory> -mount=”mount -t iso9660 /dev/cdrom /mnt/cdrom” -umount=”umount /mnt/cdrom” -component=”all”

 

To stage only DB for Language English

 

[root@appstest oraAppDB]# pwd
/oracle/Stage11i/oraAppDB
[root@appstest oraAppDB]# ls
Disk1 Disk11 Disk13 Disk15 Disk17 Disk19 Disk20 Disk22 Disk24 Disk4 Disk6 Disk8 dvd.label
Disk10 Disk12 Disk14 Disk16 Disk18 Disk2 Disk21 Disk23 Disk3 Disk5 Disk7 Disk9
[root@appstest oraAppDB]# cat dvd.label
DVD1 Disk1-Disk7
DVD2 Disk8-Disk14
DVD3 Disk15-Disk17
DVD4 Disk18-Disk24
[root@appstest oraAppDB]#

 

As you can see there are 4 DVD’s mentioned, which means we have to execute the command 4 times with different dvdnum value.

 

perl </mountpoint>/Stage11i/startCD/Disk1/rapidwiz/adautostg.pl -stage=/<staging directory> -mount=”mount -t iso9660 /dev/cdrom /mnt/cdrom” -umount=”umount /mnt/cdrom” -component=”appdb” -dvdnum=1

 

perl </mountpoint>/Stage11i/startCD/Disk1/rapidwiz/adautostg.pl -stage=/<staging directory> -mount=”mount -t iso9660 /dev/cdrom /mnt/cdrom” -umount=”umount /mnt/cdrom” -component=”appdb” -dvdnum=2

 

perl </mountpoint>/Stage11i/startCD/Disk1/rapidwiz/adautostg.pl -stage=/<staging directory> -mount=”mount -t iso9660 /dev/cdrom /mnt/cdrom” -umount=”umount /mnt/cdrom” -component=”appdb” -dvdnum=3

 

perl </mountpoint>/Stage11i/startCD/Disk1/rapidwiz/adautostg.pl -stage=/<staging directory> -mount=”mount -t iso9660 /dev/cdrom /mnt/cdrom” -umount=”umount /mnt/cdrom” -component=”appdb” -dvdnum=4

 

Issues faced while Staging

 

Iam not sure if iam the only guy on earth faced this strange issue or you also had encountered this before. Anyways, the startCD got staged without any issues but the remaining DVD’s failed to get staged with the error message in the screenshot.

 

Staging Issue

 

 

 

 

The above error was due to the logic built inside the script.

 

sub stageSingleDVD
{
……..
……..
……..

if (-f “$MOUNTPOINT/”.$dirsep.”dvd.label”)
{
getStartDiskNum();
$CD_DVD = “DVD”;
}
else
{
print “\nERROR: Invalid DVD is inserted\n”;
print “Please insert the DVD labeled $CD_MAIN_LABEL”.” – “.”$CDLabel{$components[0]} Disk $opt_dvdnum \n”;
&unmount();
next;
}
……..
……..
……..
}

stageSingleDVD gets invoked if -dvdnum parameter is used. You must be thinking why on earth i used the command line option instead of going the normal (traditional way), let me tell you, i faced the same problem when i used the traditional way too 😦 .

 

Before jumping into the problem, a little background on the variables mentioned in the function.

 

$MOUNTPIONT => stores the mount point value entered by user – (both traditional way or using -mount option)

$CD_DVD => Variable used to determine if CD/DVD is used.

$dirsep => stores the directory separator value ie., /

 

CD Mounting Command: mount -t iso9660 /dev/cdrom /mnt/cdrom

 

Hency, my mountpoint value => /mnt/cdrom

 

Ok coming to the problem, as you can see from the function, it is looking for the file “dvd.label” under $MOUNTPOINT directory which translates to “/mnt/cdrom/dvd.label”.  But every DVD has a base directory viz.,

 

oraapps01, oraapps02 for APPL_TOP(oraapps)

oraias for iAS

oradb01,oradb02,oradb03,oradb04 for appdb

orardb for DB

 

So in reality the file dvd.label is available under /mnt/cdrom/oraapps01/dvd.label (for APPL_TOP) but the script is looking for /mnt/cdrom/dvd.label which resulted in error message “ERROR: Invalid DVD is inserted”.

 

Solution:

 

Since the script adautostg.pl is part of startCD (which was successfully staged) i edited the script under /<mount point>/Stage11i/startCD/Disk1/rapidwiz as below:

 

1. Changed occurrences of $MOUNTPOINT variable with $MOUNTPOINT/<base directory> under various functions – 7 changes to be precise.

Note: Variable $MOUNTPOINT is used throughout the script and not all references are changed.

 

eg: From $MOUNTPOINT to $MOUNTPOINT/oraapps01

 

No For Error Inside Function Original Changed To
1 Invalid DVD is inserted. stageSingleDVD if (-f “$MOUNTPOINT/”.$dirsep.”dvd.label”) if (-f “$MOUNTPOINT/<base_directory>/”.$dirsep.”dvd.label”)
2 Could not open the dvd.label. No such file or directory getStartDiskNum open ( FH, “$MOUNTPOINT/”.$dirsep.”dvd.label” ) open ( FH, “$MOUNTPOINT/<base_directory>/”.$dirsep.”dvd.label” )
3 disk.label not found under /mnt/cdrom/Disk1 validateDiskLabel if(-f “$MOUNTPOINT/”.$dirsep.”Disk$diskNum”.$dirsep.”disk.label”)
{
open(FH,”$MOUNTPOINT/”.$dirsep.”Disk$diskNum”.$dirsep.”disk.label”) || die “Could not open disk.label: $!”;
}
if(-f “$MOUNTPOINT/<base_directory>/”.$dirsep.”Disk$diskNum”.$dirsep.”disk.label”)
{
open(FH,”$MOUNTPOINT/<base_directory>/”.$dirsep.”Disk$diskNum”.$dirsep.”disk.label”) || die “Could not open disk.label: $!”;
}
4 Staging /mnt/cdrom/Disk1 … Failed to Copy Disk1, No such file or directory stageSingleDVD #copy the dvd.label
$fc->copy(“$MOUNTPOINT/dvd.label”, $STAGEDIR.”/Stage11i/”.$CDArea{$components[0]} );
 for ($i=$startCDNum; $i <= $endCDNum; $i++)
{
print2logStdio( “Staging $MOUNTPOINT/”.$dirsep.”Disk$i …”);
$fc->copy(“$MOUNTPOINT/Disk$i”, $STAGEDIR.”/Stage11i/”.$CDArea{$components[0]} ) || die “Failed to copy Disk$i, $!\n”;
#copy the dvd.label
$fc->copy(“$MOUNTPOINT/<base_directory>/dvd.label”, $STAGEDIR.”/Stage11i/”.$CDArea{$components[0]} );
 for ($i=$startCDNum; $i <= $endCDNum; $i++)
{
print2logStdio( “Staging $MOUNTPOINT/<base_directory>/”.$dirsep.”Disk$i …”);
$fc->copy(“$MOUNTPOINT/<base_directory>/Disk$i”, $STAGEDIR.”/Stage11i/”.$CDArea{$components[0]} ) || die “Failed to copy Disk$i, $!\n”;

 

The above table can be inferred as For Error in Column 2, Column 4 was changed to Column 5 in Column 3 function.

 

Guess What, after making above changes Staging the DVD’s was peace of cake. 🙂

 

cheers,

OraclePitStop

Advertisements

Make a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

One Response to “Staging CD/DVD’s for Installation”

RSS Feed for OraclePitStop – Lets share some knowledge Comments RSS Feed

This is quite old post. However, now i am installing Rel12 and got into same issue.
Excellent post and solution.
Thanks
Sri


Where's The Comment Form?

Liked it here?
Why not try sites on the blogroll...

%d bloggers like this: