During the script process, a temporary directory named "puppylivecdbuild" is created on the chosen location. All necessary files to rebuild the ISO are gathered in the directory... But since the ISO creation is only the last step of the (interactive) process and the script pauses before this last step, what would happen if I decided to add other, Puppy-unrelated files to this directory?
Yep, they will end up being included in the new ISO!!! So it would be easy to easily embed in the ISO any directory/file as long as it does not conflict with Puppy's file names!!!
Using this process, it seemed an interesting idea, worthwhile to test, if it would be possible to make a multi-boot LiveCD using the script...
The test subject was DRBL-Live,
a powerful hard disk backup/restore/cloning LiveCD. I downloaded the ISO and prior of starting Dougal's script, I extracted all the material (in their original directory structure...) from the DRBL ISO to a directory on my HDD (using ISOmaster...). After that I started Dougal's script and normally proceeded through the remastering steps, until I reached the moment of truth, just prior of the new ISO creation. I minimized the script window and manually moved all the DRBL material from the directory it was on, to "puppylivecdbuild". And here is the only tricky part (I suggest reading prior to actually doing this, the isolinux documentation...). Isolinux searches for the configuration file EITHER on the root OR in the "isolinux" directory, not both. Since DRBL uses the second approach and it has an "isolinux" directory, it should be renamed to something else (like "isolnx") and the contained material moved to the root instead, to go along with Puppy. Careful here!. DRBL has its own isolinux.cfg, initrd.gz and vmlinuz files that are different from Puppy's files! Be careful not to overwrite Puppy's files... You must change their names to something related, like initrd1.gz and vmlinuz1...
Final steps to edit boot.msg to show available boot options (since it is no longer a pure-Puppy LiveCD) and naturally to edit isolinux.cfg. Looking into DRBL's own isolinux.cfg file it is easy to deduct that an expression group must be appended to Puppy's file, in the form:
(...to use the initrd1.gz - vmlinuz1 variation)label DRBL
kernel vmlinuz1
append initrd=initrd1.gz boot=casper ip=frommedia vga=788
That's all there is to it... To finalize things, the remaster script can then be allowed to complete the process, and the new multi boot ISO is ready!
This whole process can also be executed in a manual, console-driven fashion (according to the Linux-Zen way ) using the "mkisofs" command (that is also used in the script to make the ISO). Dougal's script
seems rather friendlier I think, especially for the less experienced.
------------------------------------------------------------------------------------
Edit:
------------------------------------------------------------------------------------
1. And how about a Puppy 2.17 / Puppy 2.03CE / Puppy 2.15 CE / DRBL
multi-boot CD? Yes, absolutely feasible, just keep in mind that renaming initrd.gz & vmlinuz would break remastering and media installation (it would only be possible to remaster and install the
non-renamed version...)
2. Before repeating above procedure it is a good idea to carefully read through the isolinux documentation in order to understand how to construct the isolinux.cfg file that is the cornerstone to get good operation.
Looking into DRBL's own boot structure is very interesting as well, if someone would like a more fancy, GUI-driven boot menu (it uses a newer and broader set of tools from isolinux/syslinux)
-------------------------------------------------------------------------------------
P.S.: My warmest thanks to Dougal, Barry and Steven Shiau