tomasz86

HFSVCPACK and HDD based installation - bug & fix

9 posts in this topic

As you know, it's possible to slipstream REG files from the HFSVCPACK folder. The problem is that this only works if the system is installed from a CD / other removable device.

HFSLIP creates a file called "HFSLIP.CMD" and this file is executed from SVCPACK.

This is the problematic part:

FOR %%i IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%i:\I386\SVCPACK (
SET HFSLIP=%%i:\I386\
SET HFSLIPSVC=%%i:\I386\SVCPACK\
)

and the part responsible for adding REG files (example):

START/WAIT %SYSTEMROOT%\REGEDIT.EXE /S "%HFSLIPSVC%IE6.0sp1-KB834158-x86-ENU.reg"
START/WAIT %SYSTEMROOT%\REGEDIT.EXE /S "%HFSLIPSVC%IE6.0sp1-KB893627-Windows-2000-XP-x86-ENU.reg"

The script checks for presence of I386\SVCPACK in the root of all drives and when it finds it then the two variables are set, ex. if the CD-ROM is "D:" then HFSLIPSVC will be set to "D:\i386\SVCPACK\". The problem is that when you install the system from HDD the path is different. It's not just "I386" but rather "$WIN_NT$.~LS\I386".

I've modified the script like this:

FOR %%i IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
IF EXIST %%i:\I386\SVCPACK (
SET HFSLIP=%%i:\I386\
SET HFSLIPSVC=%%i:\I386\SVCPACK\
) ELSE (
IF EXIST %%i:\$WIN_NT$.~LS\I386\SVCPACK (
SET HFSLIP=%%i:\$WIN_NT$.~LS\I386\
SET HFSLIPSVC=%%i:\$WIN_NT$.~LS\I386\SVCPACK\
)
)
)

Now it still checks for the presence of I386\SVCPACK but if it doesn't exist then it also checks for $WIN_NT$.~LS\I386\SVCPACK.

That was HFSLIP.CMD and below is the HFSLIP script itself.

Original:

REM ======================UPDATE_INIT=====================================================
:UPDATE_INIT
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD @ECHO OFF
IF DEFINED CMDHIDE ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD %CMDHIDE%
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD Title HFSLIP
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD FOR %%%%i IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO IF EXIST %%%%i:\%MBOOTPATH%I386\SVCPACK (
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIP=%%%%i:\%MBOOTPATH%I386\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIPSVC=%%%%i:\%MBOOTPATH%I386\SVCPACK\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD )
GOTO :EOF
REM ======================================================================================

Fixed:

REM ======================UPDATE_INIT=====================================================
:UPDATE_INIT
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD @ECHO OFF
IF DEFINED CMDHIDE ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD %CMDHIDE%
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD Title HFSLIP
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD FOR %%%%i IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO (
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD IF EXIST %%%%i:\%MBOOTPATH%I386\SVCPACK (
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIP=%%%%i:\%MBOOTPATH%I386\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIPSVC=%%%%i:\%MBOOTPATH%I386\SVCPACK\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD ) ELSE (
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD IF EXIST %%%%i:\$WIN_NT$.~LS\I386\SVCPACK (
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIP=%%%%i:\$WIN_NT$.~LS\I386\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIPSVC=%%%%i:\$WIN_NT$.~LS\I386\SVCPACK\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD )
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD )
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD )
GOTO :EOF
REM ======================================================================================

Edited by tomasz86
0

Share this post


Link to post
Share on other sites

I replaced the code with the following:

:UPDATE_INIT
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD @ECHO OFF
IF DEFINED CMDHIDE ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD %CMDHIDE%
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD Title HFSLIP
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIP=%%~dp0..\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIPSVC=%%~dp0
GOTO :EOF

This works just as good.

0

Share this post


Link to post
Share on other sites

I replaced the code with the following:

:UPDATE_INIT
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD @ECHO OFF
IF DEFINED CMDHIDE ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD %CMDHIDE%
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD Title HFSLIP
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIP=%%~dp0..\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIPSVC=%%~dp0
GOTO :EOF

This works just as good.

What if the source folder is located on a different partition? :unsure:

0

Share this post


Link to post
Share on other sites

The lines you modified are added to the HFSLIP.CMD batch file. When this batch file is executed you can get the location of the SVCPACK folder using the %~dp0 variable.

0

Share this post


Link to post
Share on other sites

I replaced the code with the following:

:UPDATE_INIT
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD @ECHO OFF
IF DEFINED CMDHIDE ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD %CMDHIDE%
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD Title HFSLIP
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIP=%%~dp0..\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIPSVC=%%~dp0
GOTO :EOF

This works just as good.

That could/should have been implemented into HFSLIP about 3½ years ago, but dont blame tommyp for not doing so..

0

Share this post


Link to post
Share on other sites

I replaced the code with the following:

:UPDATE_INIT
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD @ECHO OFF
IF DEFINED CMDHIDE ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD %CMDHIDE%
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD Title HFSLIP
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIP=%%~dp0..\
ECHO>>SOURCESS\I386\SVCPACK\HFSLIP.CMD SET HFSLIPSVC=%%~dp0
GOTO :EOF

This works just as good.

That could/should have been implemented into HFSLIP about 3½ years ago, but dont blame tommyp for not doing so..

I don't see why this method wouldn't work when installing from a network. Anyway there are lots of other improvements that never made it into an official HFSLIP release.

0

Share this post


Link to post
Share on other sites

The lines you modified are added to the HFSLIP.CMD batch file. When this batch file is executed you can get the location of the SVCPACK folder using the %~dp0 variable.

I've tested your method and it works perfectly indeed. This fix SHOULD really be added to HFSLIP.

0

Share this post


Link to post
Share on other sites

I've tested your method and it works perfectly indeed. This fix SHOULD really be added to HFSLIP.

Sorry guys for the late reaction...

It seems to work very well what Acheron has figured out already years ago. I would upload this today...

Feb 07, 2013 - Added support for HDD- and network-based installations. Thx to Acheron, Beta J v11

0

Share this post


Link to post
Share on other sites

Thanks Mim0 :)

0

Share this post


Link to post
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.