rem @ECHO OFF SET CDCNT=1 SET ERRCODE= PATH=%TEMP%\TOOLS;%TEMP%\DOS BMPVIEW %TEMP%\BMP\WAIT.BMP REM --- CD-ROM CHECK --- SLEEP 5 >> %TEMP%\LOGR.TXT IF NOT EXIST MSCD001 GOTO NO_CDDRV MSCDEX /D:MSCD001 /L:T >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO NO_CDDRV :CHECKCD REM Check CD-ROM Drive REM 0:Ready 1:NotReady 2:NotCD-ROMdrive 3:IllegalDrive SLEEP 5 >> %TEMP%\LOGR.TXT CDCHECK T: >> %TEMP%\LOGR.TXT CDCHECK T: >> %TEMP%\LOGR.TXT IF ERRORLEVEL 2 GOTO NO_CDDRV IF ERRORLEVEL 1 GOTO SET_CDROM SET CDDRV=T: GOTO CD_EXIST :SET_CDROM REM Insert CD-ROM BMPVIEW %TEMP%\BMP\SETCDROM.BMP BMPVIEW /XC %TEMP%\BMP\DISK.BMP /X=377 /Y=250 REM insert CD-ROM DISK number '1-9' BMPVIEW /XC %TEMP%\BMP\%CDCNT%.BMP /X=420 /Y=243 PAUSE >> %TEMP%\LOGR.TXT REM Check CD-ROM Drive SLEEP 5 >> %TEMP%\LOGR.TXT CDCHECK T: >> %TEMP%\LOGR.TXT CDCHECK T: >> %TEMP%\LOGR.TXT rem IF ERRORLEVEL 2 GOTO NO_CDDRV rem IF ERRORLEVEL 1 GOTO NOCDROM SET CDDRV=T: GOTO CD_EXIST :CD_EXIST REM Check Recovery CD-ROM IF NOT EXIST %CDDRV%\PREDATA.BAT GOTO BAD_CDROM IF NOT EXIST %CDDRV%\PREINST.GHO GOTO BAD_CDROM IF NOT EXIST %CDDRV%\PREINST.CRC GOTO BAD_CDROM IF NOT EXIST %CDDRV%\GHOST.EXE GOTO BAD_CDROM IF NOT EXIST %TEMP%\TOOLS\GHOST.EXE COPY %CDDRV%\GHOST.EXE %TEMP%\TOOLS >> %TEMP%\LOGR.TXT rem --- 2HDD Special --- HDDCHK 81 >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO STD PIDCHG 2 0F 1F >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO PARTCERR rem --- 2HDD Special --- :STD CALL %CDDRV%\PREDATA.BAT BMPVIEW %TEMP%\BMP\WAIT.BMP IF (%1) == (PARTSET) GOTO PARTSET IF EXIST %CDDRV%\SPAN.BMP COPY %CDDRV%\SPAN.BMP %TEMP%\TOOLS >> %TEMP%\LOGR.TXT IF EXIST %TEMP%\TOOLS\SPAN.BMP COPY %TEMP%\TOOLS\SPAN.BMP %TEMP%\ >> %TEMP%\LOGR.TXT COPY %CDDRV%\PREINST.CRC %TEMP%\PREINST.CD >> %TEMP%\LOGR.TXT FOR %%A IN (%CDDRV%\*.*) DO CALL FILECOPY.BAT %%A %TEMP%\ rem --- Partition size get --- MBR /G1 >> %TEMP%\LOGR.TXT IF ERRORLEVEL 2 GOTO PARTOK :PARTSET CALC %DISKUSE2% + 50MB AFSIZE > CALCSET.BAT CALL CALCSET.BAT HDDSIZE > HDDSET.BAT CALL HDDSET.BAT CALC %HDDSIZE% - %AFSIZE% PARTSIZE > CALCSET.BAT CALL CALCSET.BAT GDISK 1 /MBR /WIPE /SURE >> %TEMP%\LOGR.TXT GDISK 1 /CRE /PRI /FOR /Q /SZ:%PARTSIZE% >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO FDISKERR GDISK 1 /CRE /PRI /FOR /Q /Y /V:HDDRECOVERY >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO FDISKERR MBR /S1:02 >> %TEMP%\LOGR.TXT SETBOOT %BOOTDEV% >> %TEMP%\LOGR.TXT HARDBOOT >> %TEMP%\LOGR.TXT ECHO HARDBOOT ERROR PAUSE >> %TEMP%\LOGR.TXT GOTO END :PARTOK MBR /C1 >> %TEMP%\LOGR.TXT MBR /G2 >> %TEMP%\LOGR.TXT IF NOT ERRORLEVEL 1 GOTO HDDREC MBR /G3 >> %TEMP%\LOGR.TXT SET GOPT=-QUIET IF ERRORLEVEL 1 SET GOPT= IF ERRORLEVEL 2 SET GOPT=-QUIET MBR /C0 >> %TEMP%\LOGR.TXT rem --- NORMAL RECOVERY --- SET ERRCODE=. IF (%PASSMODE%) == (YES) GOTO GHOSTPASS IF (%COMPMODE%) == (PARTITION) GHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT% IF (%COMPMODE%) == (DRIVE) GHOST -clone,mode=load,src=%CDDRV%\PREINST.GHO,dst=1,szeL -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT% IF ERRORLEVEL 1 GOTO REC_NG GOTO GDONE :GHOSTPASS SET TGHOSTPS=%FILENAME% IF (%COMPMODE%) == (PARTITION) TGHOST -clone,mode=pload,src=%CDDRV%\PREINST.GHO:1,dst=1:1 -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT% IF (%COMPMODE%) == (DRIVE) TGHOST -clone,mode=load,src=%CDDRV%\PREINST.GHO,dst=1,szeL -afile=%TEMP%\PREINST.ERR -fni -auto -sure -batch %GOPT% IF ERRORLEVEL 1 GOTO REC_NG :GDONE LBA /C >> %TEMP%\LOGR.TXT GDISK 1 /MBR >> %TEMP%\LOGR.TXT SET ERRCODE=.. IF (%COMPMODE%) == (PARTITION) GHOST -CRC32,action=pcreate,src=1:1,crcfile=%TEMP%\PREINST.HDD -afile=%DRV1%\PREINST.ERR -sure -fni %GOPT% IF (%COMPMODE%) == (DRIVE) GHOST -CRC32,action=create,src=1,crcfile=%TEMP%\PREINST.HDD -afile=%DRV1%\PREINST.ERR -sure -fni %GOPT% IF ERRORLEVEL 1 GOTO REC_NG SET ERRCODE=... COMPFILE %TEMP%\PREINST.CD %TEMP%\PREINST.HDD >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO COMPERR :NORMAL rem --- 2HDD Special --- HDDCHK 81 >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO STD2 PIDCHG 2 1F 0F >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO PARTCERR rem --- 2HDD Special --- :STD2 GDISK 1 /ACT /P:1 >> %TEMP%\LOGR.TXT IF EXIST CMOS.BAT CALL CMOS.BAT REM Recovery success SET ERRCODE= BMPVIEW %TEMP%\BMP\THEEND.BMP PAUSE >> %TEMP%\LOGR.TXT HARDBOOT >> %TEMP%\LOGR.TXT BMPVIEW %TEMP%\BMP\NOREBOOT.BMP GOTO LOOP rem -------------------- rem --- HDD RECOVERY --- rem -------------------- :HDDRECLP REM Check CD-ROM Drive REM 0:Ready 1:NotReady 2:NotCD-ROMdrive 3:IllegalDrive SLEEP 5 >> %TEMP%\LOGR.TXT CDCHECK T: >> %TEMP%\LOGR.TXT CDCHECK T: >> %TEMP%\LOGR.TXT IF ERRORLEVEL 2 GOTO NO_CDDRV IF ERRORLEVEL 1 GOTO SETCDROM SET CDDRV=T: GOTO HDDREC :SETCDROM REM Insert CD-ROM BMPVIEW %TEMP%\BMP\SETCDROM.BMP BMPVIEW /XC %TEMP%\BMP\DISK.BMP /X=377 /Y=250 REM insert CD-ROM DISK number '1-9' BMPVIEW /XC %TEMP%\BMP\%CDCNT%.BMP /X=420 /Y=243 PAUSE >> %TEMP%\LOGR.TXT GOTO HDDRECLP :HDDREC MBR /C2 >> %TEMP%\LOGR.TXT IF NOT EXIST %CDDRV%\PREDATA.BAT GOTO SETCDROM CALL %CDDRV%\PREDATA.BAT IF NOT (%CDNUM%) == (%CDCNT%) GOTO SETCDROM BMPVIEW %TEMP%\BMP\WAIT.BMP COPY %CDDRV%*.* %HDDREC% /Y >> %TEMP%\LOGR.TXT IF (%CDMAX%) == (%CDNUM%) GOTO DONE IF (%CDNUM%) == (1) SET CDCNT=2 IF (%CDNUM%) == (2) SET CDCNT=3 IF (%CDNUM%) == (3) SET CDCNT=4 IF (%CDNUM%) == (4) SET CDCNT=5 IF (%CDNUM%) == (5) SET CDCNT=6 IF (%CDNUM%) == (6) SET CDCNT=7 IF (%CDNUM%) == (7) SET CDCNT=8 IF (%CDNUM%) == (8) SET CDCNT=9 GOTO HDDRECLP :DONE %TEMP%\TOOLS\USERTOOL %HDDREC%\ >> %TEMP%\LOGR.TXT COPY %TEMP%\TOOLS\GDISK.EXE %HDDREC%\TOOLS >> %TEMP%\LOGR.TXT COPY %TEMP%\TOOLS\TOSMBR.* %HDDREC%\ >> %TEMP%\LOGR.TXT rem --- 2HDD Special --- HDDCHK 81 >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO STD3 PIDCHG 2 1F 0F >> %TEMP%\LOGR.TXT IF ERRORLEVEL 1 GOTO PARTCERR rem --- 2HDD Special --- :STD3 GDISK 1 /P:2 /ACT >> %TEMP%\LOGR.TXT TOSMBR %HDDREC%\TOOLS\TOSMBR.BIN >> %TEMP%\LOGR.TXT MBR /S1:01 >> %TEMP%\LOGR.TXT SETBOOT 1 >> %TEMP%\LOGR.TXT HARDBOOT >> %TEMP%\LOGR.TXT ECHO HARDBOOT ERROR PAUSE >> %TEMP%\LOGR.TXT GOTO END REM ================= ERROR =============================== :COMPERR rem --- FC %TEMP%\PREINST.CD %TEMP%\PREINST.HDD > %TEMP%\COMP.LOG GOTO REC_NG :BAD_CDROM REM Bad CD-ROM BMPVIEW %TEMP%\BMP\BADCDROM.BMP /X=140 /Y=160 CLK CHOICE >> %TEMP%\LOGR.TXT IF ERRORLEVEL 2 GOTO CDERREND REM Push 'Y' button BMPVIEW %TEMP%\BMP\Y1.BMP /XC /X=340 /Y=288 GOTO SET_CDROM :NOCDROM REM CD-ROM not found BMPVIEW %TEMP%\BMP\NOCDROM.BMP /X=140 /Y=160 CLK CHOICE >> %TEMP%\LOGR.TXT IF ERRORLEVEL 2 GOTO CDERREND REM Push 'Y' button BMPVIEW %TEMP%\BMP\Y1.BMP /XC /X=340 /Y=288 GOTO SET_CDROM :NO_CDDRV REM CD-ROM Drive not found BMPVIEW %TEMP%\BMP\NO_CDDRV.BMP PAUSE >> %TEMP%\LOGR.TXT GOTO END :REC_NG REM Recovery error BMPVIEW %TEMP%\BMP\RECOVERR.BMP /X=96 /Y=168 ECHO %ERRCODE% CLK PAUSE >> %TEMP%\LOGR.TXT SETBOOT %BOOTDEV% >> %TEMP%\LOGR.TXT BMPVIEW %TEMP%\BMP\WAIT.BMP GDISK 1 /CRE /PRI /Y >> %TEMP%\LOGR.TXT GDISK 1 /DEL /P:1 /Y >> %TEMP%\LOGR.TXT GDISK 1 /CRE /PRI /Y >> %TEMP%\LOGR.TXT REM reboot HARDBOOT >> %TEMP%\LOGR.TXT BMPVIEW %TEMP%\BMP\NOREBOOT.BMP GOTO LOOP :LOOP PAUSE >> %TEMP%\LOGR.TXT GOTO LOOP :PARTCERR ECHO PARTID CHANGE ERROR! PAUSE >> %TEMP%\LOGR.TXT GOTO END :FDISKERR ECHO GDISK ERROR! PAUSE >> %TEMP%\LOGR.TXT GOTO END :R_ERREND REM Push 'N' button BMPVIEW %TEMP%\BMP\N1.BMP /XC /X=464 /Y=272 GOTO END :CDERREND REM Push 'N' button BMPVIEW %TEMP%\BMP\N1.BMP /XC /X=412 /Y=288 GOTO END :END MBR /C0 >> %TEMP%\LOGR.TXT OFF BMPVIEW %TEMP%\BMP\NO_PWOFF.BMP PAUSE >> %TEMP%\LOGR.TXT GOTO END