Jump to content

Andreas T

Member
  • Posts

    14
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    New Zealand

About Andreas T

Andreas T's Achievements

0

Reputation

  1. First of all, does any of your feedback address the "but inefficient" comment? Either way, efficiency is not an issue as I tend to start a build and "go out and get laid." About your comments regarding robocopy and mplay32.exe. My aim was to use as little extra tools as possible. That automatically rules out robocopy which is non-standard under Windows XP. However, mplay32.exe on the other hand, is standard. (Yes, I know, I have a few non-standard tools under HFTOOLS, but I've tried to keep them to a minimum.) Additionally, using rd or rmdir makes no difference, they are in fact identical. (Just run "rd /?" and "rmdir /?" to see that they both mention "each other" in the usage.) In fact, good coding practices state that functions etc., should be descriptive which makes rmdir a better alternative over rd.
  2. I just thought it might be a good idea to share my build script, centered around a slightly modified HFSLIP version 1.7.8 script, that I use to generate my ISO image for Windows XP Professional 32-bit up-to-date as of 2008-09-27 (excludes Windows Search 4.0 (what were they (Microsoft) thinking?) and Microsoft Silverlight 1.0 plus KB938127 which was slipstreamed but did not stick) with DriverPacks 8.05 and many common run-times and components. The aim of the generated ISO is for it to be a universal Windows XP Professional DVD (sorry it's too big for a CD) that installs to the destination drive and never needs to refer back to the source disc once it has been installed. (Optical media is just too slow and fiddly for my liking.) The ISO builds unattended but Windows itself does not install unattended (but there's no reason why it could not be customized so that it does). NOTE: Initial login will be slow and may appear to have hung as some run-times and components are being silently installed. Once logged in, reboot to finalize installation. All files unless otherwise specified live in the HFSLIP folder and have been built and tested under Windows XP Professional using Microsoft Virtual PC 2007 (in fact, the generated ISO has built-in support for this virtual machine by installing its Virtual Machine Additions if it is installed under VPC 2007). It has also been tested on one of my physical machines. Enough of the introduction. I'll let the code do the talking instead... OK, not code as such, but here's the first file "___README___.txt"... Please note that "DriverPacks", as used by the unattended scripts (and consequently the build scripts), uses a fixed path to HFSLIP's SOURCESS folder. This path is defined by the "location" variable in DriverPacks' ini-file. This path must be correct before running any of the scripts. Please also note that the HFSLIP folder-path should not contain spaces or any exotic characters. There are two ways to build, both which are completely unattended. The first is by using "__BUILD.cmd"... call HFSLIP_Unattended.cmd The second way to build is by using "__BUILD_AND_NOTIFY.cmd"... call HFSLIP_Unattended.cmd :loop call Beep.cmd goto :loop Please note that "__BUILD_AND_NOTIFY.cmd" must be terminated manually or you'll go bananas listening to the beep, which, by the way, is generated by "Beep.cmd"... @echo off mplay32.exe /play /close C:\Windows\Media\ringin.wav Here's the file common to both build scripts, i.e., "HFSLIP_Unattended.cmd"... rem @echo off set HFSLIP_UnattendedLog=HFSLIP_Unattended.log del /f %HFSLIP_UnattendedLog% > nul 2>&1 echo HFSLIP_Unattended_Before.cmd started at %date% %time% >> %HFSLIP_UnattendedLog% 2>&1 call HFSLIP_Unattended_Before.cmd >> %HFSLIP_UnattendedLog% 2>&1 echo HFSLIP_Unattended_Before.cmd completed at %date% %time% >> %HFSLIP_UnattendedLog% 2>&1 set NOPAUSE=1 set MAKENOISO=1 set AHTEST=I HAVE READ THE INSTRUCTIONS echo HFSLIP.cmd started at %date% %time% >> %HFSLIP_UnattendedLog% 2>&1 cmd /c HFSLIP.cmd 1 >> %HFSLIP_UnattendedLog% 2>&1 echo HFSLIP.cmd completed at %date% %time% >> %HFSLIP_UnattendedLog% 2>&1 echo HFSLIP_Unattended_After.cmd started at %date% %time% >> %HFSLIP_UnattendedLog% 2>&1 call HFSLIP_Unattended_After.cmd >> %HFSLIP_UnattendedLog% 2>&1 echo HFSLIP_Unattended_After.cmd completed at %date% %time% >> %HFSLIP_UnattendedLog% 2>&1 set MAKENOISO= set AHTEST=MAKEISO echo HFSLIP.cmd started at %date% %time% >> %HFSLIP_UnattendedLog% 2>&1 cmd /c HFSLIP.cmd 1 >> %HFSLIP_UnattendedLog% 2>&1 echo HFSLIP.cmd completed at %date% %time% >> %HFSLIP_UnattendedLog% 2>&1 set AHTEST= set MAKENOISO= set NOPAUSE= This executes "HFSLIP_Unattended_Before.cmd"... rem @echo off rmdir /s /q SOURCE mkdir SOURCE xcopy /e /v /q /h /k "SOURCE.base" SOURCE Followed by "HFSLIP.cmd"... @echo off call hfslip-1.7.8.cmd And finally "HFSLIP_Unattended_After.cmd"... rem @echo off call DriverPacks_Unattended.cmd mkdir $OEM$ mkdir $OEM$\$$ mkdir $OEM$\$$\Source xcopy /e /v /q /h /k SOURCESS $OEM$\$$\Source move $OEM$ SOURCESS The main guts of it all takes place in the all famous "hfslip-1.7.8.cmd", except that mine is slightly modified to handle my unattended requirements (please let me know if there's a better way). Don’t worry, I'm not going to post the whole code here, just the differences (using the standard diff format) between the original and mine (please note that the first difference is minor and optional, but I think it to be useful for debugging)... Left file: hfslip-1.7.8.orig.cmd Right file: hfslip-1.7.8.cmd 1c1 < @ECHO OFF --- > rem @ECHO OFF 42c42 < PAUSE --- > CALL :PAUSE 71c71 < PAUSE --- > CALL :PAUSE 97c97 < PAUSE --- > CALL :PAUSE 123c123 < PAUSE --- > CALL :PAUSE 178a179 > IF /I "%NOPAUSE%"=="1" GOTO :BINCOMPSLICE 214a216 > IF /I "%NOPAUSE%"=="1" GOTO :DELCATS 550c552 < CALL :TIMECALC&PAUSE&EXIT --- > CALL :TIMECALC&CALL :PAUSE&EXIT 2927c2929 < ECHO you use one that hasn't been patched before.&ECHO.&PAUSE --- > ECHO you use one that hasn't been patched before.&ECHO.&CALL :PAUSE 3203c3205 < IF /I "%AHTEST%"=="MAKEISO" IF EXIST SOURCESS CALL :MAKEISO&PAUSE&EXIT --- > IF /I "%AHTEST%"=="MAKEISO" IF EXIST SOURCESS CALL :MAKEISO&CALL :PAUSE&EXIT 4268a4271,4275 > :PAUSE > IF /I "%NOPAUSE%"=="1" GOTO :EOF > PAUSE > GOTO :EOF The same as above but expressed in Beyond Compare 2 XML format (because, XML is, apparently, more "readable")... <bcreport created="28/09/2008 12:57:25 p.m."> <ltpath></ltpath> <rtpath></rtpath> <filecomparison created="28/09/2008 12:57:25 p.m."> <filename1>hfslip-1.7.8.orig.cmd</filename1> <filename2>hfslip-1.7.8.cmd</filename2> <linecomp status="different"> <text ltid="1">@ECHO OFF</text> <text rtid="1">rem @ECHO OFF</text> </linecomp> <linecomp status="different"> <text ltid="42">PAUSE</text> <text rtid="42">CALL :PAUSE</text> </linecomp> <linecomp status="different"> <text ltid="71">PAUSE</text> <text rtid="71">CALL :PAUSE</text> </linecomp> <linecomp status="different"> <text ltid="97">PAUSE</text> <text rtid="97">CALL :PAUSE</text> </linecomp> <linecomp status="different"> <text ltid="123">PAUSE</text> <text rtid="123">CALL :PAUSE</text> </linecomp> <linecomp status="rtonly"> <text rtid="179">IF /I "%NOPAUSE%"=="1" GOTO :BINCOMPSLICE</text> </linecomp> <linecomp status="rtonly"> <text rtid="216">IF /I "%NOPAUSE%"=="1" GOTO :DELCATS</text> </linecomp> <linecomp status="different"> <text ltid="550">CALL :TIMECALC&PAUSE&EXIT</text> <text rtid="552">CALL :TIMECALC&CALL :PAUSE&EXIT</text> </linecomp> <linecomp status="different"> <text ltid="2927"> ECHO you use one that hasn't been patched before.&ECHO.&PAUSE</text> <text rtid="2929"> ECHO you use one that hasn't been patched before.&ECHO.&CALL :PAUSE</text> </linecomp> <linecomp status="different"> <text ltid="3203">IF /I "%AHTEST%"=="MAKEISO" IF EXIST SOURCESS CALL :MAKEISO&PAUSE&EXIT</text> <text rtid="3205">IF /I "%AHTEST%"=="MAKEISO" IF EXIST SOURCESS CALL :MAKEISO&CALL :PAUSE&EXIT</text> </linecomp> <linecomp status="rtonly"> <text rtid="4271">:PAUSE</text> </linecomp> <linecomp status="rtonly"> <text rtid="4272">IF /I "%NOPAUSE%"=="1" GOTO :EOF</text> </linecomp> <linecomp status="rtonly"> <text rtid="4273">PAUSE</text> </linecomp> <linecomp status="rtonly"> <text rtid="4274">GOTO :EOF</text> </linecomp> </filecomparison> </bcreport> That leaves us with one file left, i.e., "DriverPacks_Unattended.cmd"... rem @echo off set DriverPacks_Dir=DriverPacks\DPs_BASE_805 set DriverPacks_INI=DPs_BASE.ini set DriverPacks_UnattendedINI=DPs_BASE_NOGUI.ini del /f %DriverPacks_Dir%\%DriverPacks_UnattendedINI% > nul 2>&1 call :CreateUnattendedINI %DriverPacks_Dir%\DPs_BASE.exe /settings:%DriverPacks_UnattendedINI% del /f %DriverPacks_Dir%\%DriverPacks_UnattendedINI% > nul 2>&1 set DriverPacks_Dir= set DriverPacks_INI= set DriverPacks_UnattendedINI= goto :end :CreateUnattendedINI for /f "delims=" %%a in (%DriverPacks_Dir%\%DriverPacks_INI%) do ( call :ProcessLine "%%a" ) goto :eof :ProcessLine set LINE=%~1 if /i "%LINE%"=="GUI = "yes"" set LINE=GUI = "no" echo %LINE%>>%DriverPacks_Dir%\%DriverPacks_UnattendedINI% goto :eof :end Of course, it goes without saying that the "DriverPacks"\DPs_BASE_805" folder contains the files installed by "DPs_BASE_805.exe" plus **all** official DriverPacks. Then there is the all-important "HFANSWER.INI" (which resides under "HFTOOLS")... DRIVERCOMP= SBOOTPATH= MBOOTPATH= DELCATS= BACKUPSOURCE= NOLOGCOPY= ISONAME= ISOTITLE=HFSLIP FORCECDIMAGE=1 ;CDIMGSW=-h -j1 -m CDIMGSW=-h -j1 -x -ocis -w3 -m MKISSW=-relaxed-filenames -d -D -N -J -no-emul-boot -no-iso-translate -boot-load-size 4 -duplicates-once ;MAKENOISO= OVERWRITEISO= IE7BACKUP= IE7GUILOGON= IE7SVCPACK= INCWMPCSKIN= INCALLSKINS= XPIZESW= FORCEXPIZESLIP= INSTALLRC=1 And we can't forget about "DPs_BASE.ini" (which resides under "DriverPacks\DPs_BASE_805")... [General] ; preferred language prefLang = "English" ; yes/no, enable or disable the wizard-style buttons, if not specified: yes wizardButtons = "yes" ; yes/no, enable or disable the GUI, if not specified: yes GUI = "yes" [Settings] ; disc/bartpe/multibootDisc instPlatform = "disc" ; trailing backslash is allowed, but not necessary location = "E:\HFSLIP\SOURCESS" ; none/all/select, if select, specify them below, if not specified: all DriverPacks = "select" ; 1/2, method to install the DriverPacks, if not specified: 2 DPsMethod = "2" ; GUIRunOnce/RunOnceEx/custom, if not specified: GUIRunOnce finisherMethod = "GUIRunOnce" ; this section is optional! [OptionalSettings] ; none/all/select/paths/patterns, enable or disable Keep The Drivers (KTD) , if not specified: none KTD = "all" ; <path>, to specify a custom KTD cache location, if not specified: default (%SystemRoot%\DriverPacks) KTDlocation = "%SystemRoot%\DriverPacks" ; yes/no, enable or disable QuickStream Cache (QSC), if not specified: yes QSC = "yes" ; you should only add this section if you've set [Settings]\DriverPacks to "select" [SelectDriverPacks] DP_Chipset = "yes" DP_CPU = "yes" DP_Graphics_A = "yes" DP_Graphics_B = "yes" DP_Graphics_C = "yes" DP_LAN = "yes" DP_MassStorage = "yes" DP_Sound_A = "yes" DP_Sound_B = "yes" DP_WLAN = "yes" DP_MassStorage_textmode = "yes" ; this section is optional! [OptionalSettingsOther] ; CCC/CCP, use ATI Catalyst Control Center or ATI Catalyst Control Panel (only relevant when slipstreaming DriverPack Graphics A) ATI_cpl = "CCC" There's also a very important, but simple script called "SetupEx.cmd" which sits under "HFSVCPACK"... @echo off SET KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion rem Set installation source path REG ADD "%KEY%\Setup" /F /T REG_SZ /V SourcePath /D "%WINDIR%\Source" Of course, there's more to it than these scripts. For starters, the "SOURCE.base" folder contains a dump of all the files from the original Windows XP Professional SP2 CD. This is done because HFSLIP appears to apply SP3 to "SOURCE" instead of leaving it untouched (but I could be wrong). This is the log generated by HFLSIP which lists all the remaining files and their locations... This file is automatically generated by HFSLIP HFSLIP is for personal use only Copyright© TommyP 2005-2008 ============================HOW TO REPORT A PROBLEM============================ If running into problems, refer to [url="http://hfslip.org/support.html"]http://hfslip.org/support.html[/url] HFSLIP support forum: [url="http://msfn.org/board/index.php?showforum=129"]http://msfn.org/board/index.php?showforum=129[/url] =============================================================================== Host OS - Windows XP HFSLIP Version - 1.7.8, build 80614 HFSLIP Path - E:\HFSLIP\ OS in SOURCESS - Windows XP Professional SP3 English [Service Pack Slipstreamed By HFSLIP] MSIE Version - MSIE7 Drivers - DRIVER.CAB Updated CD Install Path - Default CDTAG - WIN51 =============================================================================== Files in your HF folder: directx_jun2008_redist.exe IE7-WindowsXP-KB953838-x86-ENU.exe IE7-WindowsXP-x86-ENU.exe WindowsMedia11-KB929399-v2-x86-ENU.exe WindowsMedia11-KB936782-x86-ENU.exe WindowsMedia11-KB939683-x86-ENU.exe WindowsMedia11-KB954154-x86-ENU.exe WindowsUpdateAgent30-x86.exe WindowsXP-KB898461-x86-ENU.exe WindowsXP-KB905474-ENU-x86-Standalone.exe WindowsXP-KB923789-x86-ENU.exe WindowsXP-KB936929-SP3-x86-ENU.exe WindowsXP-KB938127-v2-x86-ENU.exe WindowsXP-KB938464-x86-ENU.exe WindowsXP-KB941569-x86-ENU.exe WindowsXP-KB942288-v3-x86.exe WindowsXP-KB946648-x86-ENU.exe WindowsXP-KB950762-x86-ENU.exe WindowsXP-KB950974-x86-ENU.exe WindowsXP-KB951066-x86-ENU.exe WindowsXP-KB951072-v2-x86-ENU.exe WindowsXP-KB951376-v2-x86-ENU.exe WindowsXP-KB951698-x86-ENU.exe WindowsXP-KB951748-x86-ENU.exe WindowsXP-KB951978-x86-ENU.exe WindowsXP-KB952287-x86-ENU.exe WindowsXP-KB952954-x86-ENU.exe WindowsXP-KB953839-x86-ENU.exe WMP11-WindowsXP-x86-ENU.exe X86-all-rootsupd.exe Files in your HFCABS folder: ieawsdc.cab MUAuth.cab MuCatalogWebControl.cab muweb_site.cab OGAControl.cab opuc4.cab wbemoc.cab Files in your HFGUIRUNONCE folder: 010_RogueSpearsRuntimesPart2_1_5_0.exe Files in your HFSVCPACK folder: 0_RogueSpearsRuntimes_2_8_8.exe 5_RogueSpears_OtherRuntimes_2_5_0.exe SetupEx.cmd VirtualMachineAdditions_13_820_silent.exe Files in your HFSVCPACK_SW1 folder: WindowsXP-KB951618-v2-x86-ENU.exe Files in your HFSVCPACK_SW2 folder: Files in your HFTOOLS folder: bbie.exe BOOT.BIN CDIMAGE.EXE CDIMAGE.txt cmdow.exe CreateurSFX.exe EXTRACT.EXE HFANSWER.INI HFSLIP_POST_getnewfiles_v3.cmd mkisofs.exe mkisofs.txt modifyPE.exe Files in your REPLACE folder: =============================================================================== HFSLIP run time: 11m01s Please note that I used "CreateurSFX.exe" (the "other one" would simply not work) to build "VirtualMachineAdditions_13_820_silent.exe" using the switches "/qn /norestart". I have also renamed Rogue Spear's executables by replacing all in-name dots (".") with underscores ("_") as it makes them more ISO-compliant. Please also note that I do not include "LegitCheckControl.cab" under "HFCABS" because the latest version of "KB905474" is a replacement for this (and is always up-to-date). Enjoy, -Andreas
  3. I have just come across the Install XP from USB forum here on MSFN. It is well worth considering as an option to this topic.
  4. Thanks, this is starting to look interesting but I'm not following some things such as... a) Why do you need to create a multiboot CD when it sounds like you boot from some other sort of boot CD in the first place? b) What is this boot CD of yours running, some sort of DOS-derivative or what?
  5. Sorry, I don't know enough about textmode to answer this, but I agree, it would save some time, especially since one would not have to scan for duplicates.
  6. I just had a thought about pointing the ServicePackSourcePath key at the source. It doesn't seem right to me. Can anyone justify this please?
  7. I have only tried p388l3s's suggestion because I like the way it integrates with the already built-in copy progress that is part of the textmode phase. If this was done any other way then one would need to write something similar to the progress bar provided by DriverPack's KTD option (if I'm not mistaken), but this still looks out of place with the standard installation process. Optionally one could do it silently, but then the installation will appear to have hung while the files are being copied across (something that already is an issue with the many silent installers that I have). To answer your question about the source path. No, my source is the installation disc, i.e., the CD (or DVD in this case) and yes, it is slow, but at least the textmode option gives you the extra advantage of seeing something happening at a stage when you expect to see files being copied across. You ought to try p388l3s's suggestion and let me know if you think it improves the user experience of the copy process... <edit> CLARIFICATION: The textmode copy process does not provide a progress bar. What it does provide, in terms of feedback, is a simple please-wait-while-copying-files message with the status bar showing the current action taking place. </edit> By the way, I use 7yler's "add reg" code instead of p388l3s's code because I like the way he uses environment variables instead of static text, i.e., I use the following code. REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" /F /T REG_SZ /V SourcePath /D "%WINDIR%\Source" REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup" /F /T REG_SZ /V ServicePackSourcePath /D "%WINDIR%\Source" What I would like to use though is REG_EXPAND_SZ instead of REG_SZ because then these strings would remain dynamic (currently they become static as soon as they are written to the registry). I just don't know if the two types are interchangeable in this case. P.S. Is it normal to have the forum's post-editor detach itself from its location when it is double-clicked or is it simply one of my Firefox extensions that is playing up?
  8. I have been thinking about how one could go about my original idea of creating an installation disc that would copy the files across and then continue the installation from the drive. My latest incarnation of this idea is that it would probably require a wrapper-installer, probably based on Linux, which would boot to provide the required disk management (i.e., partitioning and formatting of drive(s)) prior to copying across the Windows files from disc to the destination drive and then kickstart the installation from the drive. How one would go about actually doing this is still beyond me. If anyone has any ideas, please let me know. -A
  9. Yes, I realized this so I have been checking the size of the ISO files instead. However, they have all doubled in size as part of doing the $OEM$ trick and it was only 5 minutes ago that I realized why this was happening. You see, I have written an HFLISP wrapper that does a bit of trickery but there was a typo in my code which I have just fixed. Now I just have to test my changes and keep you posted on how it went. For those using mkisofs instead of CDImage. Please note that mkisofs also has support for the duplicate-files feature; however, mkisofs's support is not as comprehensive as CDImage's many options. For anyone interested, I'm currently using the following options for CDImage and mkisofs respectively in my HFANSWER.ini file (which one will be used depends on command-availability as well as the value of FORCECDIMAGE). CDIMGSW=-h -j1 -x -ocis -w3 -m MKISSW=-relaxed-filenames -d -D -N -J -no-emul-boot -no-iso-translate -boot-load-size 4 -duplicates-once I'm not sure about the -x and -w3 options for CDIMGSW but they seemed good at the time. If anyone knows why I shouldn't use either of these then please let me know. -A UPDATE: I am using the above switches with CDImage and achieving 52% compression and the generated ISO works perfectly! (I'm not sure why I'm getting more than 50% but perhaps the source itself has duplicates?)
  10. I'm not sure I understand but then my understanding of $OEM$ is limited. Basically I though that whatever one places in $OEM$ will be copied, as you say, to the destination during textmode, but wouldn't that mean one has to duplicate the i386 folder within $OEM$ or perhaps the trick is in using CDImage (does it create hardlinks for duplicate files (are hardlinks even supported by the ISO format)))? -- Update ==== I've now researched this and I've found that CDImage and mkisofs both support a feature whereby they can optimize an ISO so that TOC entries for duplicate files point to a single instance of that file.
  11. Thanks for this. I will try this when I have some time later in the week.
  12. As part of the installation process I want the source disc to be copied to the destination drive and then change whatever has to be changed in the registry so that Windows will never ask for the installation disc after it has been installed but know to use the copy stored on the drive instead. My original idea was that this would happen close to the end of the installation process, but then I started to wonder if it would be possible to copy the disc at a much earlier stage, perhaps soon after the formatting has taken place, and, if possible, get the installer to use the files from the drive instead (which should be much quicker to access from a hard-drive rather than from a CD/DVD (ignoring the additional overhead of the actual copy process)). (Perhaps even ejecting the source disc to signal that it was no longer needed.) I don't think the initial concept would be too complex to achieve, but I would be happy for any suggestions as to how people would go about doing this. About my other idea, please let me know if I'm dreaming or if it is really possible, and, if it is, how one would go about achieving this.
  13. How does one hide the HFSLIP entries from the available "Windows components" and the "currently installed programs" (as found under the "Add or Remove Programs" dialog)? P.S. Why do these entries exist and what would happen if one would actually removed the HFSLIP component and/or uninstalled the HFSLIP "program"?
  14. It would be very useful if the UL format was such that it contained all updates in one file, i.e., not just the latest ones. This way users would only need to download the latest file and not have to worry about locating older versions when such may be needed. Also, it would be nice if WUD could be made to show only updates following a given date and/or following the release of a user-selected update (for example, all updates following the release of SP3). P.S. So where do I source all ULs since SP3?
×
×
  • Create New...