Modify the final ISO image

From ReactOS Wiki
Jump to: navigation, search
This page is probably outdated

The information on this page might not be valid for the current state of ReactOS.
A Wiki Administrator should look at this page and decide or discuss what to do with it.


There are times when you need to modify certain files in the final CD, generally because you don't know how to code or compile and have a binary file ready, or the file doesn't come from our tree, or just for testing purposes. In case you want to know how to add files see slipstreaming.

To do it you could use an existing iso utility such as e.g. mkisofs; however this can be accomplished without any extra tools other than those of RosBE.

First, prepare the necessary files to build the iso image:

make install

This will create the files structured as they would be in the iso image in this location: \trunk\reactos\output-i386\cd

(location depends on your platform (i386 in this case) and on where you downloaded the source code in your computer).

Once done you'll see this structure:

loader
reactos
autorun.inf
freeldr.ini
icon.ico
readme.txt

With this procedure you can substitute any file, just replace the file you want to change in the cd folder with yours.

You'll find single files there, those are the basic needed files (like ntoskrnl.exe, uniata.sys, pci.sys, etc.) to boot and start first stage (usetup).

Once you have replaced the file(s), all you need to do to create the iso image is:

cdmake -v -p -b \trunk\reactos\output-i386\bootcd\loader\isoboot.bin \reactos\output-i386\bootcd\ cd_label modified-bootcd.iso

With this command you're telling cdmake which iso image use to boot from the cd, where to grab the cd structure from, and where to store the iso image.

cdmake is here: \trunk\reactos\output-i386\tools\cdmake (remember the location tip above)

This is for those files mentioned above, but what happens with the other files? Like for example vbemp.sys, which is stored in reactos.cab?

This is a tricky part, a cabinet file is a file containing several other files inside (like a zip file), but in this case our cabinet contains also a setup script.

So to substitute a file inside reactos.cab you'll have to recreate the cab file with all the files you need to put in it plus the script file.

The utility to create the cab file is cabman (\trunk\reactos\output-i386\cabman), copy it to your tree root and from there do:

cabman.exe -C boot\bootdata\packages\reactos.dff -L output-i386\bootcd\reactos -I -P output-i386
cabman.exe -C boot\bootdata\packages\reactos.dff -RC output-i386\bootcd\reactos\reactos.inf -L output-i386\bootcd\reactos -N -P output-i386

That's it for now.

See Also