Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account


Photo

Scriptable ISO creator with optmisiation

- - - - -

  • Please log in to reply
9 replies to this topic

#1
deadbug

deadbug

    Member

  • Member
  • PipPip
  • 102 posts
  • Joined 30-June 05
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?


How to remove advertisement from MSFN

#2
CoffeeFiend

CoffeeFiend

    Coffee Aficionado

  • Super Moderator
  • 5,399 posts
  • Joined 14-July 04
  • OS:Windows 7 x64
  • Country: Country Flag
Your best bet IMO is scripting something according to your needs using mkiofs.exe
Coffee: \ˈkȯ-fē, ˈkä-\. noun. Heaven in a cup. Life's only treasure. The meaning of life. Kaffee ist wunderbar. C8H10N4O2 FTW.

#3
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

grown to 4GiB.

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.

So are there any scriptable optimising ISO creators out there?

ImgBurn support command line, multiple folders and optimising ISO.

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.

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.paraglide...links/links.htm

#4
deadbug

deadbug

    Member

  • Member
  • PipPip
  • 102 posts
  • Joined 30-June 05

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.paraglide...links/links.htm

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

#5
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,419 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

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.

JFYI:
Basic .IBB for "plain XP SPx iso's" is here:
http://www.howtohave...setupdisk.shtml
http://www.howtohave...ce-pack-3.shtml

jaclaz

#6
deadbug

deadbug

    Member

  • Member
  • PipPip
  • 102 posts
  • Joined 30-June 05

JFYI:
Basic .IBB for "plain XP SPx iso's" is here:
http://www.howtohave...setupdisk.shtml
http://www.howtohave...ce-pack-3.shtml


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.

#7
cdob

cdob

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,000 posts
  • Joined 29-September 05

I can write an IBB file that constructs an AIO-DVD

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

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

#8
deadbug

deadbug

    Member

  • Member
  • PipPip
  • 102 posts
  • Joined 30-June 05

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 ...)

#9
deadbug

deadbug

    Member

  • Member
  • PipPip
  • 102 posts
  • Joined 30-June 05
(Wow - the formatting really worked well at the end there ... I did put in a closing-code, honest :yes: )

#10
deadbug

deadbug

    Member

  • Member
  • PipPip
  • 102 posts
  • Joined 30-June 05
Attached is a working .ibb file.

It does not seem to be possible to control optimisation via the IBB file; I'm looking into that now.

Attached Files






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users



How to remove advertisement from MSFN