Jump to content

deadbug

Member
  • Posts

    102
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    United Kingdom

Posts posted by deadbug

  1. Can you post a working IBB example: different folders with optimisation?

    I'll attach a full working IBB when I test a new one tomorrow.

    Here's a header that worked for me:

    IBB

    [START_BACKUP_OPTIONS]
    BuildInputMode=2
    BuildOutputMode=2
    Destination=D:\AIO\aio-dvd.iso
    DataType=0
    Verify=1
    FileSystem=3
    UDFRevision=0
    PreserveFullPathnames=0
    RecurseSubdirectories=1
    IncludeHiddenFiles=1
    IncludeSystemFiles=1
    IncludeArchiveFilesOnly=0
    AddToWriteQueueWhenDone=0
    ClearArchiveAttribute=0
    VolumeLabel_ISO9660=AIO-TEST
    VolumeLabel_Joliet=AIO-TEST
    VolumeLabel_UDF=AIO-TEST
    Identifier_System=
    Identifier_VolumeSet=
    Identifier_Publisher=deadbug
    Identifier_Preparer=
    Identifier_Application=deadbugs script
    Dates_FolderFileType=0
    Restrictions_ISO9660_InterchangeLevel=2
    Restrictions_ISO9660_CharacterSet=1
    Restrictions_ISO9660_AllowMoreThan8DirectoryLevels=1
    Restrictions_ISO9660_AllowMoreThan255CharactersInPath=1
    Restrictions_ISO9660_AllowFilesWithoutExtensions=1
    Restrictions_ISO9660_AllowFilesExceedingSizeLimit=1
    Restrictions_ISO9660_DontAddVersionNumberToFiles=1
    Restrictions_Joliet_InterchangeLevel=1
    Restrictions_Joliet_AllowFilesWithoutExtensions=1
    Restrictions_Joliet_AddVersionNumberToFiles=1
    Restrictions_UDF_DisableUnicodeSupport=0
    Restrictions_UDF_DVDVideoDontDisableUnicodeSupport=0
    Restrictions_UDF_DVDVideoDontDisableUnicodeSupport_SF=0
    Restrictions_UDF_HDDVDVideoDontDisableUnicodeSupport=0
    Restrictions_UDF_HDDVDVideoDontDisableUnicodeSupport_SF=0
    Restrictions_UDF_BDVideoDontDisableUnicodeSupport=0
    Restrictions_UDF_BDVideoDontDisableUnicodeSupport_SF=0
    Restrictions_UDF_DVDVideoAllowUnicodeVolumeLabel=0
    Restrictions_UDF_HDDVDVideoAllowUnicodeVolumeLabel=0
    Restrictions_UDF_BDVideoAllowUnicodeVolumeLabel=0
    Restrictions_UDF_AllowNonCompliantFileCreationDates=0
    BootableDisc_MakeImageBootable=1
    BootableDisc_MediaEmulationType=0
    BootableDisc_BootImageFile=D:\AIO\AIO-DVD\boot\isolinux\isolinux.bin
    BootableDisc_DeveloperIdentifier=isolinux
    BootableDisc_LoadSegment=07C0
    BootableDisc_LoadSectorCount=4
    [END_BACKUP_OPTIONS]

    Obviously you get to pick your own destination and bootfile (my AIO-DVD is obviously based on ISOLINUX).

    Then there are lots of lines like this:

    [START_BACKUP_LIST]
    F|README.DOC|\|D:\AIO\AIO-DVD\README.DOC
    F|README.HTM|\|D:\AIO\AIO-DVD\README.HTM
    F|spnotes.htm|\|D:\AIO\AIO-DVD\spnotes.htm
    F|vmlinuz|\|D:\AIO\AIO-DVD\vmlinuz
    F|WIN51|\|D:\AIO\AIO-DVD\WIN51
    F|WIN51IC|\|D:\AIO\AIO-DVD\WIN51IC
    ...
    F|ptreplicator-setup.exe|\DVD-Apps|D:\AIO\AIO-DVD\DVD-Apps\ptreplicator-setup.exe
    F|IE8-WindowsXP-x86-ENU.exe|\DVD-Apps|D:\AIO\AIO-DVD\DVD-Apps\IE8-WindowsXP-x86-ENU.exe
    F|RegExplorerListView.reg|\DVD-Apps|D:\AIO\AIO-DVD\DVD-Apps\RegExplorerListView.reg
    F|avg_free_stf_en_85_409a1634.exe|\DVD-Apps|D:\AIO\AIO-DVD\DVD-Apps\avg_free_stf_en_85_409a1634.exe
    F|ashampoo_firewall_sm.exe|\DVD-Apps|D:\AIO\AIO-DVD\DVD-Apps\ashampoo_firewall_sm.exe
    F|PostInstallRegistryUpdate.reg|\DVD-Apps|D:\AIO\AIO-DVD\DVD-Apps\PostInstallRegistryUpdate.reg
    [END_BACKUP_LIST]

    At the moment I'm working on generating the IBB so I've not fiddled with handling ImgBurn itself automatically.

    Once I've built the IBB I fire up ImgBurn, click the icon to create from files/folders, load the project (IBB) and burn.

    The only way I've found to affect optimisation is to click the option, but I expect that I can drive it from a .INI file.

    So once I've got the IBB generation striaghtened out I'll move on to automating the burning.

    Right now, having verified that optimisation works, I've turned it off: it takes too long for generating a test ISO and it's of no help in that case (I'm burning one XP variant plus some apps plus WPI). Once I've got everything else straight I can worry about the one-plus tweaks :rolleyes:

    Do you have to adjust file or folder at hard disk in addition?

    Not sure what you mean here. I can certainly ask for C:\A\B\C\x.txt on my hard drive to appear at \ALPHA\BETA\gamma.txt on my DVD, I can even have it also appear at \DELTA\theta.txt just by writing two "F" lines like so:


    F|gamma.txt|\A\B\C|C:\A\B\C\x.txt
    F|theta.txt|\ALPHA\BETA\|C:\A\B\C\x.txt

    although I don't actually do that (yet). Whether that takes one or two lots of space on the actual DVD presumably depends on whether optimisation is on or off.

    Interestingly I don't seem to need to track directories and write "D" lines for each of them. (I say "seem" because I've managed to write a DVD that installs WXP so I guess I really mean that I've not yet found a problem ...)

  2. A little bit of scribbling later and it seems I can write an IBB file that constructs an AIO-DVD that can boot and install WXP SP3.

    A fruitful Sunday evening I think.

    Thanks for the pointers - that sped things up quite a bit.

    I still have a fair bit of reorganising to go but the proof-of-concept seems to have worked.

  3. Which size do you get? greater 4GiB?

    At textmode boot there maybe a 4GiB limit. E.g. setupldr.bin read up to 4GiB and won't find files at end of media.

    Be careful about file layout. File sorting is important greater 4GiB.

    4,304,9943,104 bytes right now, so close to the real 4GiB limit. But to get it down that far I've trimmed it by removing older service packs (WXP Pro SP1 etc).

    ImgBurn support command line, multiple folders and optimising ISO.

    Thanks - that looks good.

    It's certainly scriptable and it does have an option buried in there to optimise away duplicates.

    The .IBB format seems simple enough if undocumented. I guess I can feed it an existing DVD to analyse and let it generate a template IBB from that.

    I'll do some testing.

    There is a unofificial branch too. DFL author reanimatolog integrated DFL to mkisofs. Source files are preserved.

    mkisofs -duplicates-once

    http://www.nu2.nu/pebuilder/

    http://www.paraglidernc.com/links/links.htm

    Thanks for those too. I'll look at them if ImgBurn doesn't work out.

  4. I've been building an AIO DVD for some time now and the ISO has slowly grown to 4GiB.

    I've also been looking for ways to update it with less effort.

    I've decided that with a little scripting I can probably make it much more customisable (e.g. pick and choose which OS variants I want today, which apps or app groups I want today etc.).

    I can do all of that if I'm prepared to copy around OS trees (Windows XP Pro SP3, Windows XP Pro SP3, Windows XP SP3+latest updates etc. etc.) and build a tree with the required customisations each time.

    But that's expensive on disk space and will take a lot of time.

    So I've looked around for a program that will create an ISO using a text file to tell it where to find each source file and where to place it in the DVD tree.

    CDBurnerXP *almost* fits the bill.

    It looks like its DXP "compilation format" will do exactly what I want. So my script can build a list of files for the DVD I want to build today and CDBurnerXP will create a customised ISO.

    Unfortunately it doesn't optimise identical files. (This means that for such files the data is written once and all the relevant TOC entries point to that same data). For that I still need CDIMAGEGUI.

    Now I could let CDBurnerXP run, have it build a 12GiB ISO, mount that with Daemon Tools and then have CDIMAGEGUI use that as a source and build the real ISO.

    That seems incredibly wasteful.

    So are there any scriptable optimising ISO creators out there?

    I've just asked in the CDBurnerXP forum if the optimising feature already exists or if it might be considered for the future. Looking at other questions in there, it seems fairly hit and miss whether I'll get an answer.

    UltraISO has the optimisation feature, but doesn't seem to be scriptable.

    Nero seems to have neither feature.

    CDIMAGE does the optimisation but burns a directory tree as-is.

    mkfsiso looks like it might be able to do some of this (along with duplicate file linker) but it achieves this by fiddling with the source tree.

    So is there anything out there which can do this?

  5. getOSver() and getSPver() are not possibly since WMI is not on 95/98/ME. There may be some other way, but it would be a hack to check them.

    Well if push comes to shove I can just hardcode getOSver() as "2K" and getSPver() as 4, but that's a bit smelly really :o

    The code does something like:

    try {
    wmiStuff
    } catch (ex) {
    WshShell.RegRead(a-key)
    }

    Will that even run on W95 or does something horrible happen that cannot be caught when it tries the wmi call? (I've found my W95 key ... if I find my install CD I'll give it a go!)

  6. Actually this isn't a back-port. It's an update to the last version of WPI that worked on win 98se. Thats why there are SOOOO many missing features.

    My goals and wishes for this is to keep it as small and lean as possible.

    Lean and mean is an admirable goal. But I'd still like to make a plea for DELDIR ... it's a single line and it rounds out the existing file access functions quite nicely. I added all the others to my generate.js just because they were easy to copy across - I don't use them so I've not tested them at all.

    I can see how REBOOT and SLEEP might be generally useful to others. EXTRACT and TASKKILL I do use but I think I can probably get my script to rewrite those easily enough. (I'll check out my old AIO-DVDs and see how I used to do TASKKILL before that command came along).

    ALOT of these will not work on the older os's (I spent a full night just trying to get a task killer to work in 98 :( )

    One thing I do think I'll need is getOSver() and getSPver() for conditionals. Again, others will have their own "necessary" functions. I remember that before JSCRIPT came along I hacked a TimedWaitForFile() (or similar) into one of the .js files and then asked for a way to execute it. So I wonder if it would be possible to have a userfunctions.js (or similar) into which people can drop their own extensions. Then they'd be magically available for cond[] statements (I think) and if you added basic support for "JSCRIPT=" then everybody could have their cake and eat it.

    (Yes, I did have a quick go, but it didn't quite work :unsure: )

    Anyway, thanks for all the effort that's going into WPIC and WPI.

  7. Deadbug just made the perfect example for me:

    Glad to have been of service :yes:

    In the Classic thread he asked to have JSCRIPT features added. Where does it stop?!

    Probably when I can convert my WPI config.js and have it work under WPIC. I do realise that other people's configs would probably require different extensions. But the basic commands ( {FILECOPY} etc.) look to be simple substitutions. Admittedly {EXTRACT} needs some external 7z support and {JSCRIPT} support looks easy but then you need the relevant JavaScript functions in place.

    Still. That's all for Kel to worry about.

    Why not just use it the way it is?

    I have this burning need to get my W2K install working again from my AIO-DVD (mostly, I suspect, because an AIO-DVD that only has XP on it is pretty dull ...). I tried WPI and it wsn't a happy bunny. I don't remember the last version of WPI that did run on W2K ... I just kept upgrading WPI and testing my XP installs and then one day I just noticed.

    (I realise that you're talking about WPI Lite and I'm talking about WPIC. I still think the OP can make life easy for himself by editing config.js directly, thereby avoiding the eye candy he doesn't want in the configurator whilst still getting the eye candy he does want during the actual install).

  8. I can help you with most of this. There was a autoscript called taskkills.exe that worked like task kill I will see if I still have it. (yes i do)

    I forget what I used to do before I found {TASKKILL}, but I thought it was some tool that came with WPI. Anyhow, this would be good. Thanks

    Extract will not work.

    It's not there now, but it looks simple enough to add - it depends on 7z in Tools ... is there a reason not to add that? I'm sure it would work on W2K ... no idea about W98 though.

    The JScript functions will not work.

    A quick peek at WPI suggests that all it does is strip off an inital JSCRIPT and then hope that the function exists. If that's right, then that's probably good enough to get me started. I do only use two JavaScript functions anyway and I'm sure I can dig up the sources for those from somewhere :whistle: . That said, the registry writing I can almost as easily substitute back in the nircmd.exe incantation that I used to use. TimedWaitForFile is dirt simple JS that I'm sure I can plonk in there somewhere.

    Limited to 6 commandlines per entry.

    Yes. But that's not a problem. The one place where I did have more than six (my Start Menu creation stuff) I'd split into multiple entries anyway. But even that I've now hived off into an AutoIt script (for other reasons) so even that's down to just one cmd[]. I'll probably just generate excess cmds and have the ruby spit out a warning at the end. That way I can edit the WPI config.js if things ever do break.

    I also noticed that DELDIR seems to be missing, as well as RUNBG (what's that do?), SLEEP, REBOOT, [uN]REGDLL, INSTINF, REGEDIT.

    I don't use any of those except DELDIR ... is that just a later addition that never got back-ported or is there some reason it's not there? I think I might try out a little hackery tomorrow ... but stop me now if I'm barking up the wrong tree!

  9. Another update!

    Is there any documentation for config.js? I've got a noddy script that converts the config.js that I use with WPI 7.7.0 and I'd like to fix up as much as possible automatically. (I have an AIO-DVD with both XP and W2K on it).

    From the example it looks like {MAKEDIR} becomes MAKEDIR etc.

    I expect that I can replace {EXTRACT} with the equivalent CMD stuff to which it expands anyway.

    But it would be really cool if EXTRACT and TASKKILL could work too: I'd just fiddle in generate.js but I'd prefer to stick to standard features. (I'd be happy to fiddle and pass on the fiddling if there was a reasonable chance of it making a future release ...)

    The only JSCRIPT invocations I use right now are TimedWaitForFile and WriteRegKey. I can certainly rewrite the latter to whatever it used to be before I upgraded it, not sure about the former. How hard would it be to add support for JSCRIPT (or will it simply not work on the target OSes?)

    Cheers,

    deadbug

  10. It'd be nice if there was a version of WPI that didn't cater so much to the configuration end of things.

    I can configure WPI just fine and dandy without a fancy interface. I'm comfortable with editing config.js manually.

    If I read this correctly then you think it's easier to fiddle with config.js manually rather than use WPI to do it but you like WPI once it runs and installs things silently for you. I don't think you need WPI-Lite, I think you need Notepad++ :hello: . That's certainly how I configure new entries, and I even fiddle with the 'yes'/'no' bits in various places so I can easily test an install of just the new stuff by changing one line. All strictly unsupported, but no-one's complained too loudly yet!

    The disadvantage of a putative "WPI Lite" would be that either you need to keep in step with WPI or you miss out on new functionality (I'm thinking mostly new JSCRIPT functions and {FUNCTIONS} and so on).

  11. Ummmmmm.....................you may want to wait on making a script to convert down.

    And no, it will not be easy to down grade and you will lose a ton of functions/commands; all {JSCRIPT} for example. I don't support WPIC, I just do small stuff for Kel once in a while for it.

    I don't know ho wbad losing functions would be - I don't use that many different ones and converting the ones I do use might not be so bad. Anyway, how hard would it be for WPI Classic to support at least some of the {JSCRIPT} stuff :rolleyes:

    The config.js file will be getting a make over for next version. I am going to start using JSON. Someone had asked way back if the cmds could be listed on seperate lines for easier reading/editing, they will be in JSON.

    Now that is interesting. I've never used JSON, but if I understand it correctly the reading and writing just happens. So if someone went and added some additional fields (say to track which start menu folder stuff should be moved to, which quick launch shortcuts to wipe etc.) then you'd never know and it would automatically appear in each object and be preserved? That would be quite useful as I've got information in too many places right now (config.js for WPI, an INI file to feed into my menu massaging AutoIt script and so on) so consolidating it all somewhere would be cool.

  12. I see no documentation on where you use global variables and higher functions in wpi.

    At the moment I think that you just need to poke around this forum to find examples.

    Here's one:

    prog[pn]=['Windows Defender 1.0'];
    uid[pn]=['WINDOWSDEFENDER'];
    desc[pn]=['Windows Defender is a security technology.'];
    ordr[pn]=[503];
    dflt[pn]=['yes'];
    forc[pn]=['no'];
    bit64[pn]=['no'];
    cat[pn]=['System Protection'];
    cmds[pn]=['%CDROM%\\DVD-Tools\\nircmd.exe execmd start/wait %CDROM%\\DVD-Apps\\KB893803v2.exe /Q /N /Z','%CDROM%\\DVD-Tools\\nircmd.exe execmd start/wait %CDROM%\\DVD-Apps\\WindowsUpdateAgent20-x86.exe /wuforce /quiet /norestart','%CDROM%\\DVD-Tools\\nircmd.exe execmd start/wait %CDROM%\\DVD-Apps\\WindowsDefender.msi /passive /norestart','{JSCRIPT}=TimedWaitForFile("%ALLUSERSPROFILE%\\Start Menu\\Programs\\Windows Defender.lnk"%comma%60)','%CDROM%\\DVD-Tools\\nircmd.exe win close title "Windows Defender (Beta 2)"'];
    cond[pn]=['getOSver() == "XP" && getSPver() >= 2'];
    pn++;

    It uses a couple of the documented functions to only install Windows Defender on Windows XP Service pack 2 and later.

    That said, is there any function/variable that would indicate whether you are running in a VM?

    No, otherwise it wouldn't be very good virtualisation. However, you can probably work out that you are running under VirtaulBox (or Virtual PC or Bohs or VMWare) by looking at some of the hardware. The manual does have examples of finding the PCI id of various things.

    If you just want to avoid installing VirtualBox Guest Additions when you install on real hardware, don't worry about it. It doesn't seem to have done this system I'm using right now any harm ...

    Lastly, the hta seems abominably slow. I'm running on a 2ghz dual core 2gb machine ad when I switch pages I get a completely white screen for up to 15-30seconds at every switch.

    I thought it was just me with my 200+ apps, but maybe not then ...

  13. I use WPI 7.7 for my XP AIO-DVD but I also have W2K on there. I'd like to use WPI Classic but how do I convert the WPI 7.7 config.js into one that WPI Classic will be happy with? I'm guessing that a quick Ruby script could cope with the changed cmds[] vs cmd[n], rip out bit64[], configs[] and texti[]. Is there anything else?

    I know that I'll probably have issues with JSCRIPT and perhaps some of the built-in commands.

    Hopefully someone's way ahead of me and solved this problem :hello:

    Ideally I'd like to regenerate the WPIC config.js automatically from the WPI config.js (rather than having to maintain two files forever) but failing that a one-off initial conversion seems to be the least painful way to go.

    Thanks

  14. I posted this in the 7.8.0 feature request thread, but really it's a bug report so I guess it should be a separate topic.

    I cannot get {EXTRACT} to work if the target has a space in the path:

    '{EXTRACT} %CDROM%\\DVD-Apps\\FlexRena80.rar "%ProgramFiles%\\Flexible Renamer\\"'

    The above helpfully extracts to C:\Program ...

    Maybe I've goofed somewhere, but if not, fixing that would allow be to package up some installers as .7z archives and drop them into the right place in one fell swoop.

  15. If you have ANY ideas/requests/complaints, now is the time to post them. v8.0.0 is going to be a MAJOR release. So big I am jumping 2 versions.

    Well, since you asked :whistle: ...

    I cannot get {EXTRACT} to work if the target has a space in the path:

    '{EXTRACT} %CDROM%\\DVD-Apps\\FlexRena80.rar "%ProgramFiles%\\Flexible Renamer\\"'

    The above helpfully extracts to C:\Program ...

    Maybe I've goofed somewhere, but if not, fixing that would allow be to package up some installers as .7z archives and drop them into the right place in one fell swoop.

    There's a {FILECOPY} and a {FILEMOVE} but only a {DIRCOPY} ... {DIRMOVE} would save a subsequent {DELDIR}.

    I also fiddle about in the menus a bit and NirCmd makes this easy with shorthand like this:

    '%CDROM%\\DVD-Tools\\nircmd.exe execmd mkdir "~$folder.common_programs$\\Utilities"'

    I could (I guess) define some environment variables with setEnv at start of day, but it would be nice to have (say) %MENU_COMMON_PROGRAMS% and %MENU_PROGRAMS% (etc.) available for the duration without having to create them myself via some contrived entry. Failing that somewhere to place "user created definitions" would be good. (I thought there used to be somewhere, but I cannot find it right now!).

    Cheers

  16. I presume I must be missing something obvious but I can't see it.

    I want to install eMule Plus 1.2e silently.

    I have this in config.js:


    cmds[pn]=['"%CDROM%\\DVD-Apps\\eMulePlus-1.2e.Installer.exe /VERYSILENT /SP- /S"'];

    It fails to install silently and leaves this in the log:

       Program: E-Mule Plus 1.2e
    Unique ID: EMULEPLUS
    Order: 003050
    Category: P2P
    12 September 2009 17:03:21 - cmd1 *** Fail *** (returned code undefined): "\DVD-Apps\eMulePlus-1.2e.Installer.exe /VERYSILENT /SP- /S"
    12 September 2009 17:03:21 - Finished installation.

    So I try firing up WPI manually after the silent installation, select nothing and tick just emule plus. Again it fails:

       Program: E-Mule Plus 1.2e
    Unique ID: EMULEPLUS
    Order: 003050
    Category: P2P
    12 September 2009 17:50:56 - cmd1 *** Fail *** (returned code undefined): "\DVD-Apps\eMulePlus-1.2e.Installer.exe /VERYSILENT /SP- /S"
    12 September 2009 17:50:56 - Finished installation.

    But if I fire up a DOS box and type:

    D:\DVD-Apps\eMulePlus-1.2e.Installer.exe /VERYSILENT /SP- /S

    the install proceeds perfectly.

    Is there anything "odd" about the WPI environment (v7.2.2 BTW) that could cause this? I've happily installed eMule Plus 1.2d via WPI (using AutoIt) with no problems.

  17. I may have found the solution to this problem, but:

    Im not sure if you can run the MUI from the FIN localed winXP sp3. been trying to google it, but no results. So ill ask if you used the MUI on french locale to begin with?

    I used the english (ENU) retail Windows XP Pro as my starting point and then just threw in the three languages.

    I think that I've read that you can only do MUI on top of the english distribution anyway ...

  18. the error is so show only $time and $date

    Sorry - I forgot to mark this topic so that I'd get email, so I didn't realise that you'd supplied more information.

    I still have my old CDshell based menu driven DVD around somewhere so I'll go look at it and refresh my memory about how it should work.

    In the meantime, try changing the line to just do something like:

    print c "<$time $date>"

    and see if that works.

    Obviously you build an ISO image and test in a VM and don't waste time burning a real CD.

    If I still had my CDshell system handy I'd do this now.

    -- deadbug

  19. I'm in the process of fiddling with my AIO build process anyway, so I though I might have a go with hard links.

    XP won't allow a hard link of a directory (it does have junctions, but I'm not considering those at this stage), which I guess is why you hard link each file individually.

    So my initial plan was that I would have a stable source tree with things like \AIO-SRC\SETUP\XP\Pro\SP3.

    Then if I decide that I want SP3 on my DVD but with (for example) boopggy's WMP11, then I would hard link all files in that first tree to my final DVD tree under \AIO-DVD\SETUP\XP\Pro\SPX and apply boooggy's slipstreamer to it.

    But if I do that, then surely any files that are patched by that slipstreamer become altered in my supposedly stable source tree?

    Is there some part of the method I'm missing or is this a feature? Is there any way to create a "copy-on-write" style of hard link?

    -- deadbug

×
×
  • Create New...