Archive: How to overcome 2GB-per-file limit


How to overcome 2GB-per-file limit
I'm making a big installer this time and I have stumbled upon a ridiculous error:

Internal compiler error #12345


I did some digging and found out, that max. size of NSIS installer is about 2GB.
Well, ok, it makes sense for some veeery old OS's, but now-a-days it's a big problem. Why?

First - it's very convenient for the end-user to use a single file instead of keeping lots of smaller ones
Second - it's much easier to distribute on the web

So my question is - when will that limitation be taken off?

Additionaly I'd like to ask if there is any way to hack those limits somehow. Different compression maybe? Or different compiler? Anything?
(Multiple-files-installer is not an option!)

...it makes sense for some veeery old OS's...
not only. It makes sense on every FAT32 Partition and afaik for normal http downloads too.

Of course a single file is very comfotable but especially on those huge files you should force a crc check. And THIS takes a very long time with this filesize...

If that kind of kingsize installers whould be a practicable way don´t you think some major software labels whould do this already?

To increase compression ratio use LZMA /SOLID compression method. But you should think about multifile installers (one exe & cab´s or 7zip´s). There are NSIS Plugins for this case.

cheers

Thanks for quick reply, but it wasn't a question of "should I", but "how to".

At the very beginning: you are wrong. 2GB limits are present in FAT16. FAT32 is limited to 4GB. But still that's not good enough, I need something like 5. NTFS drives are good with files bigger than 4GBs.

If you say about "big developers", I'd like to remind, that "big developers" usualy release on DVDs, where multifile installer is not a problem at all.

One file, got it?

But going back to DVD-releases, I was thinking about a multifile installer on ISO image. Gives one file. Still it needs to be mounted, not to mention that I have no idea about AutoRun.

So solution is simple - make new version of NSIS, enabling 2GB+ installers, but to warn programmer, that exe this big might not be supported on some systems. Maybe introduce a trigger that have to be switched, like e.g. !define Over2GB or SetCompressor /2GB+ LZMA...


...
I understood your question. :)
I made this suggestions because some people think (you don´t) they have to create 2 or more exe files and the user has to execute it one after another. And that looks not professional.

But in the moment there is no way to create one-file-installers bigger then 2GB with NSIS.
And you´re right. fat32 supports files with a size one byte less then 4GB. Provide an ISO or compressed file archive is a possible solution.

cheers


http://nsis.sourceforge.net/Multi-volume_Distribution

Stu


Yeah, now working on it (on ISO, I mean). It's just there was no new version of NSIS since 6.12.2009 (more than a year, huh?), so I was just curious if we can push on NSIS Devs to extend the abilities of the compiler... But I don't see that coming, so... I'll stick to ISO. Heh.
Still a dreamer :)


One more thing. Most installers we find on DVDs are unpacking files from containers like BIN files.
Are there any NSIS libraries supporting it, or do I have to create my own functions to pack and unpack data?


Those .bins use their own proprietary format. Simply use .zip .cab .7z or other common archive - NSIS has a lot of plug-ins for working with them.


If it's an innosetup exe/bin file, you can use innounp to unpack it.