Jump to content

Installing Win2000,Win2003 using HP Scripying Toolkit


p4ntb0y

Recommended Posts

Hi,

I am trying to install Windows 2000/2003 with Winpe and the HP Smartstart scripting toolkit (SSSTK32)

I can boot a Winpe Disc with all the HP Drivers intergrated fine start my start.cmd

rem @echo off
REM
REM This is the first Script called from Startnet.cmd stub in the WinPE
REM

REM Make sure that the network is fully started... Sometimes it requires a bit of time
:REPEAT1
ipconfig
ipconfig
ipconfig
ipconfig
ping 25.5.64.108
if errorlevel 1 GOTO REPEAT1
REM Map a drive to the share you are working from.
net use s: \\25.5.64.108\deploy

REM If none ignore this step and set the drive letter in
REM the following statements to appropriate drive
REM============================================================
set Tools=s:\deploy\HP\Tools
set MSTools=X:\i386\system32
set GlobalData=s:\deploy\HP\DeploymentScripts\datafiles
set MSDistribution=s:\deploy\w2kstdsp4
set HPQFlatFiles=s:\deploy\hpqflatfiles
set HPQComponents=s:\deploy\ntcsp
set SystemScripts=s:\deploy\HP\DeploymentScripts
REM============================================================

REM Call the first Script
call %SystemScripts%\ServerDetect.cmd

echo Done!

This calls ServerDetect.cmd...

rem @echo off
cd %tools%
%Tools%\System\hwdiscovery .\hwdisc.xml
pause
REM *** ----------------------------------------------------------------------------------------------------
REM *** Check Server Type Name and Call Server script
REM *** ----------------------------------------------------------------------------------------------------

%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML570 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL380 G3" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL380 G4" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML350 G3" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML310" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML310 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML310 G3" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL370 G3" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML530 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL580 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML350 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML330 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL360 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL380 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML370 G2" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML370 G3" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML370 G4" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML330e" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL320" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML350" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML330" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL580" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML570" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL360" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant DL380" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML530" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML370" && call %SystemScripts%\Typical.cmd
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml HWQ:SystemName eq "ProLiant ML350" && call %SystemScripts%\Typical.cmd

cd \
goto end

This runs the hwdisc.exe and refers to a .xml file to pick out the right script at the moment I have left them all the same "Typical.cmd"

rem @echo off 
cls
echo [ SCRIPT FOR REMOTE INSTALL OF W2K ON typical server ]

pause

echo Retrieving State Information...
%Tools%\System\statemgr /r phase

if errorlevel 3 goto State3
if errorlevel 2 goto State2
if errorlevel 1 goto State1
if errorlevel 0 goto State0

:State0

REM=================================================================================
REM *** Configure the target server hardware by reading the configuration
REM *** information in the script file

echo Running Configuration Replication Utility...
%Tools%\System\conrep -l -f%GlobalData%\HardwareSettings\hwconfig.xml -x%Tools%

\System\conrep.xml

echo Setting State Information...
%Tools%\System\statemgr /w Phase 1

:State1
REM=================================================================================
REM *** Configure the array controllers by reading the configuration information
REM *** in the script file and stamping it onto the array
REM *** controllers of the target server
REM=================================================================================

echo Configuring the Array Controllers...
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml PCI:"Smart Array 5i

Controller"
if errorlevel 1 GOTO NEXT1
%Tools%\ACU\bin\hpacubin.exe -i %GlobalData%\ArraySettings\pl-r01.ini
GOTO NEXT6

:NEXT1
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml PCI:"Smart Array 6i

Controller"
if errorlevel 1 GOTO NEXT2
%Tools%\ACU\bin\hpacubin.exe -i %GlobalData%\ArraySettings\pl-r01.ini
GOTO NEXT6

:NEXT2
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml PCI:"Smart Array 5300"
if errorlevel 1 GOTO NEXT3
%Tools%\ACU\bin\hpacubin.exe -i %GlobalData%\ArraySettings\pl-r01.ini
GOTO NEXT6

:NEXT3
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml PCI:"Smart Array 641

Controller"
if errorlevel 1 GOTO NEXT4
%Tools%\ACU\bin\hpacubin.exe -i %GlobalData%\ArraySettings\pl-r01.ini
GOTO NEXT6

:NEXT4
%Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml PCI:"Smart Array P600

Controller"
if errorlevel 1 GOTO NEXT5
%Tools%\ACU\bin\hpacubin.exe -i %GlobalData%\ArraySettings\pl-r01.ini
GOTO NEXT6

:NEXT6
pause

REM=================================================================================
REM *** Configure the iLO if iLo Present
REM *** echo configuring iLO
REM=================================================================================

rem %Tools%\System\ifhw .\hwdisc.xml %Tools%\System\allboards.xml PCI:"Integrated Lights-

Out Controller"
rem if errorlevel 1 GOTO State2
rem .\iLo\hponcfg -f %GlobalData%\iLoSettings\iloconfig.xml

REM=================================================================================
echo Setting State Information... Due to Problems with diskpart not picking up new logical

volumes
REM=================================================================================
%Tools%\System\statemgr /w Phase 2
REM *** REBOOT if necessary
%Tools%\System\reboot PXE

:State2

REM=================================================================================
REM *** Create partition by reading content of the script file and
REM *** stamping the configuration onto the hard drive in the target server
REM=================================================================================

echo Creating Disk Partition...
%MsTools%\DiskPart /s %GlobalData%\diskPart0.txt
echo Formatting Disk Partition...
%MsTools%\format c: /FS:NTFS /V:System /Q /y
pause
%Tools%\System\statemgr /w Phase 3

echo Creating Driver Directory and Copying Drivers...
mkdir c:\ntcsp
rem xcopy %HPQFlatFiles%\$oem$ c:\$oem$ /s /e
xcopy %HPQComponents% c:\ntcsp /s /e
pause

REM *** Copy the customized UNATTEND.TXT file from the system
REM *** configuration area to the root directory of the target server's
REM *** hard drive
:State3
copy %GlobalData%\unattend.txt c:\

REM=================================================================================
REM *** Start installation of the operating system from the hard drive of the
REM *** target system, reading unattended installation instructions from the
REM *** C:\UNATTEND.TXT file
REM=================================================================================

%MSDistribution%\i386\winnt32 /s:%MSDistribution%\i386 /unattend:c:\unattend.txt /syspart:c
%Tools%\System\reboot c:
:State4
echo Nothing to see here... Move along!
rem @echo off

This runs conrep.exe and sets the hardware options ie boot order etc from a .xml

It then runs the ACU which sets the raid card up as a raid 0+1.

Then it configs the ILO intergrated lights out used for remote bios flashing, remote control when server is down.

We then have a reboot to pick up the drives properly for diskpart (Want to change this and use MBRfix any input would be great)

Runs diskpart with the following...

rem This file instructs Diskpart.exe to select Disk 1 as target,

rem clean the target, create a primary partition on the disk

rem and mount it to z: for the new partition. The new partition is then

rem ready for format and OS install

rescan

select disk=0

clean

create partition primary

assign letter=c

Formats drive.

Copys Drivers and $OEM$ over.

It then copies ober the unattend file to c:

I then kick off the install with

%MSDistribution%\i386\winnt32 /s:%MSDistribution%\i386 /unattend:c:\unattend.txt /syspart:c

I see it copy all the files across to c:

I do get a error trying to copy some compaq/hp drivers across to $WIN_NT$.~BT but they are all in the right folder structure.

I skip these files and reboot to c: nothing happens.

Any help would be great! and suggestions on how to simplfy the install?

Does any know what part I should use MBRfix so I dont have to reboot my "Tin"

Everything apart from startnet.cmd is run from a networkshare.

within $oem$ is $WIN_NT$.~LS which contains system drivers for net and scsi.

Drivers folder which contain net drivers and scsi drivers.

ntcsp drivers in exe format.

Link to comment
Share on other sites


set Tools=s:\deploy\HP\Tools

set MSTools=X:\i386\system32

set GlobalData=s:\deploy\HP\DeploymentScripts\datafiles

set MSDistribution=s:\deploy\w2kstdsp4

set HPQFlatFiles=s:\deploy\hpqflatfiles

set HPQComponents=s:\deploy\ntcsp

set SystemScripts=s:\deploy\HP\DeploymentScripts

Can you describe what exactly is in these folders?

Link to comment
Share on other sites

set Tools=s:\deploy\HP\Tools

set MSTools=X:\i386\system32

set GlobalData=s:\deploy\HP\DeploymentScripts\datafiles

set MSDistribution=s:\deploy\w2kstdsp4

set HPQFlatFiles=s:\deploy\hpqflatfiles

set HPQComponents=s:\deploy\ntcsp

set SystemScripts=s:\deploy\HP\DeploymentScripts

HP\Tools have inside.......

ACU (USED FOR RAID CONFIG)

ILO (To Config the intergrated lights out board)

System has hwdiscovery.exe, ifhw.exe conrep, hwquery.exe, statemgr.exe, and the reboot files to boot to a:,pxe,c and cd.

MS Tools is located on my CD x:\i386\system32 for diskpart etc.

GlobalData holds my unattended file, raid.ini files, diskpart scripts

MSDistribution holds my copy of the Windows 2000 SP4 VLM CD.

HPQFlatfiles holds all the drivers extracted from the HP smartstart cd 7.40.

HPQComponets holds the drivers in exe format for windows 2000,2003 and 64 bit versions it also has the HP management files.

System Scripst hold most of the scripts server detect etc.

At the moment I have startdeploy running from the a: drive.

I have forgotten what version Winpe I have and what I used for the source files.

So I am going to create the following discs to test...

WINPE 2004 With Winxpsp2

WINPE 2004 With Win2003sp1

WINPE 2005 With Winxpsp2

WINPE 2005 With Win2003sp1

Many Thanks!

Link to comment
Share on other sites

As Requested...

; Base Server Unattended Install Script for Windows Server 2000
;

[Unattended]
DriverSigningPolicy=Ignore
ExtendOemPartition=1
; FileSystem=ConvertNTFS
KeyboardLayout="US"
NtUpgrade=No
; OemFilesPath=C:
OemPnPDriversPath=drivers\net;drivers\scsi
OemPreinstall=Yes
OemSkipEula=Yes
DisableVirtualOemDevices=yes
OverwriteOemFilesOnUpgrade=No
TargetPath=\WINDOWS
UnattendMode=FullUnattended
Win9xUpgrade=No

[MassStorageDrivers]
"Adaptec Ultra160 Family Manager Set"=OEM
"Compaq Smart Array Controllers"=OEM
"Smart Array 5x and 6x Controllers"=OEM
"Integrated Ultra ATA-100 IDE RAID Controller (Windows 2000)"=OEM
"LSI Logic Ultra320 1020/1030 Driver (Windows Server 2003)"=OEM
"LSI Logic C8100 PCI SCSI Host Adapter"=RETAIL
"LSI Logic C896 PCI SCSI Host Adapter"=RETAIL
"LSI Logic C8xx PCI SCSI Host Adapter"=RETAIL
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller"=RETAIL
"CSB-6 Ultra ATA-100 IDE RAID Controller (Windows Server 2003)"=OEM
"Smart Array SAS/SATA Controllers"=OEM
"Adaptec RAID Controller"=OEM

[OEMBootFiles]
ADPU160M.SYS
CPQARRY2.SYS
CPQCISSM.SYS
MegaIDE.sys
Symmpi.sys
LsiCsb6.sys
HPCISSs2.sys
AAC.sys
TXTSETUP.OEM

[GuiUnattended]
AdminPassword=password
AutoLogon=Yes
AutoLogonCount=1
OEMSkipRegional=1
OemSkipWelcome=1
TimeZone=20

[UserData]
ComputerName=TEST
FullName=HP
OrgName=HPQ
ProductID=b9pcv-m996m-tq473-46xrq-qrqgw

[Proxy]
Proxy_Enable=0
Use_Same_Proxy=0

[LicenseFilePrintData]
AutoMode=PerServer
AutoUsers=999

[GuiRunOnce]
"c:\ntcsp\setupex.exe /smartstart"

[RegionalSettings]
Language=00000409
LanguageGroup=1

[Components]
iis_pwmgr=Off
iis_inetmgr=Off
iis_www=Off
iis_ftp=Off
TSClients=On
TSEnable=On

[Networking]
InstallDefaultComponents=Yes

[Identification]
JoinWorkgroup=WORKGROUP

[NetOptionalComponents]
SNMP=1
WBEMSNMP=1
SimpTCP=1

[SNMP]
Community_Name=Public
Traps=Localhost
Accept_CommunityName=public
Send_Authentication=yes

[TerminalServices]
ApplicationServer=0
PermissionsSetting=0

[Display]
AutoConfirm=1
BitsPerPel=16
ConfigureAtLogon=0
VRefresh=60
Xresolution=800
Yresolution=600

[OEM_Ads]
Logo=OEM.bmp

And Thanks for your input! Note that is a make up number!

Link to comment
Share on other sites

remove the product ID

And nothing just jumps out at me that could be wrong.

I have HP's being installed through WinPE, and they all work fine. The only major difference I see, is that my RAID configs are all taken care of before I start off my processes.

Edited by Jazkal
Link to comment
Share on other sites

I'm running a similar setup on PE2005 with no problems.

First boot figures out what the hardware is and runs Conrep then ACU.

Second boot does Diskpart, Format, then kicks off WinSetup.

Here's my relevant parts;

Diskpart command;

DiskPart /s %PATH%\DiskPart.txt > NUL

Diskpart;

select disk 0
clean
create partition primary
select partition 1
Select volume 1
assign letter c
select partition 1
active
exit

Format command;

Format C: /FS:NTFS /Q /V:OS /Y > NUL

Setup command;

WINNT32.exe /s:\\%SERVER%\%SHARE%\i386 /unattend:%PATH%\Temp\UNATTEND.TXT /noreboot /syspart:c

Drivers section of unattend;

[OEMBootFiles]
HpCISSx2.inf
HpCISSs2.sys
cpqcissm.inf
cpqcissm.sys
cpqarry2.inf
cpqarry2.sys
symmpi.inf
Symmpi.sys
LsiCsb6.inf
LsiCsb6.sys
txtsetup.oem

[MassStorageDrivers]
"Server 2003 Driver for Smart Array SAS/SATA Controllers" = OEM
"Smart Array 6i, 641, 642, 6400, 6400EM Controllers" = OEM
"Smart Array 5i, 532, 5312 Controllers" = "OEM"
"Smart Array 5300 Controller" = "OEM"
"Compaq Smart Array Controllers" = "OEM"
"LSI Logic PCI SCSI/FC MPI Driver (Server 2003 32-bit)" = "OEM"
"CSB-6 Ultra ATA-100 IDE RAID Controller (Windows 2000/Server 2003)" = OEM
"IDE CD-ROM (ATAPI 1.2)/PCI IDE Controller" = "RETAIL"
"Compaq Drive Array" = "RETAIL"

I specifed the matching .inf files for each driver. You did write your own custom txtsetup.oem to include all the drivers, right?

-Jeff

Link to comment
Share on other sites

Many thanks for the reponse's!!!

After looking at all my batch files and the last post got me thinking about the txtsetup.oem

I checked the batch file to copy the drivers accross to the flatdrivers folder from the Smartstart CD and it turns out it copied all wnet drivers (Windows 2003) so that was why it was not booting up!

So I tested this setup with the Windows 2003 CD instead of Windows 2000 and all went well.....

Booted to PE

Ran CONREP, ILO, ACU, DISKPART, MBRfix and formated the drive and started to install fine

This was all done without a Reboot.

thanks foir the replys guys let me know if you require gmail accounts sorry thats all i got unless you want some old dell poweredge servers 4400 lol weights a ton!

This is working like a treat now for 2003 anyway. I will test it with 2000 and then get a TFTP server and PXE going maybe add ADO support assign the MAC of the NIC when its ordered on our system to a sql database someone then can assign a name and build type in the database.

One question tho how can I do a auto config for the raid depending on how many drives I have, ie the ML370 has normally 2x System drives on RAID-0+1 and then three drives as a RAID-5 however this can sometimes be four?

I was thinking maybe something like a WMI script of some kind or maybe somehow get the ACU program to find out how many drives there are and output this direct into the raid.ini config file?

This would mean total zero touch for me.

Next to do on the list make a USB Boot option for install

intergrate support for Dell Servers

Add NTBACKUP to WINPE so I can use it to restore a system state from a bare metal server.

trim the winpe image down.

Intergrate this into the Bussiness Desktop deployment Solutions Accerator (MS Are pushing this)

Anything more to add?

I do have a Poor LAN and WAN connetions some 10mb hubs has anyone done anything like chained installations for XP? what I have in mind is all my desktops have a hidden partion containing all the files required to do a rebuild from scratch, if one machine breaks then it will load winpe prob from the server and then connect to its nearest share and rebuild the whole disk including the hidden partition.

Just wondering what other people do ie image based or nw build or both?

Edited by p4ntb0y
Link to comment
Share on other sites

I have managed to get all my Images down to 2. one for Windows 2003 Standard and one for Windows 2003 Enterprise. It does take a bit of fancy scripting but I found by creating sub routines in my scripts and using "Generic" idetifiers... I can simply specify up front if I will be doing Unattend or Sysprep build. This cuts down on the redundant code and cause less toroubleshooting headach.

ex....

If lcase(BuildMode) = "image" then

Genfile = TempDrive & "\SYSprep.inf"

else

Genfile = TempDrive & "\Unattend.txt"

end if

This way all my code simply says "GENFILE"

Then create a sub routine for IMAGE and one for Unattend.

Call the proper sub for the type of build you are doing. Everyting else is common.

If you are looking for MBR maniplulation tools... Get MBRWiz by Roger Layton. http://www.geocities.com/mbrwizard/

Roger is a good friend and his tool kicks! It's avaliable in 32 and 64 Bit.

Personally... I stay away from WMI. Especially under PE. I have found in the past that some hardware returns totally different values, incorrect values or no value at all. I support over 45 server models right now across 4 different manufactureres. It tends to get hairy.

Take a look at Acronis Tru Image V9 (just released). They have the concept of a "secure Zone" which is a hidden partition. Similar to what you want to do. You can actually boot from it and load your OS while it restores your real partition in the background.

Chris

Link to comment
Share on other sites

  • 2 weeks later...

Ahhhhh!!!!!!

Its not working!

it now gets to copying all files required then reboots and hangs on booting to C: Drive.

I have checked Diskpart and checked the boot files being copied accross to the C: Drive

I have done a debug.log file and all seems ok,

I take it that it should reboot to the booksect.dat...

I see someone mentioned the txtsetup.oem I take it that these should refer to the files required to boot my disks?

Link to comment
Share on other sites

right ran diskpart checked that its fine.

Ran mbrfix listed partitions yep again fine even tells me its a bootable part.

looked at the debug4.log yeah everything copys over and that tells me its a bootable.

So I am now looking into the txtsetup.sif this is on the root of my C:\Drive

Not knowing really how this should look???

it has entries for %cdname% but I have not set that anywhere?

so close but so far!

Edited by p4ntb0y
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...