How to use 'mkisofs' to create Multi-Porteus Boot ISOs (DVDs)

Technical issues/questions of an intermediate or advanced nature.
User avatar
cad
Black ninja
Black ninja
Posts: 69
Joined: 06 Nov 2020, 22:40
Distribution: XFCE 5.01 x86_64 + 4.0 i586

How to use 'mkisofs' to create Multi-Porteus Boot ISOs (DVDs)

Post#1 by cad » 03 Dec 2020, 03:32

I have already done it for years, tens of times in the ordinary way, that is, with just the boot directory and one porteus directory in the root folder (which is the way Porteus ISOs are normally made). But, now, I would like to be able to create a multi-boot DVD that will boot two different versions of Porteus (ver. 3.2 and ver. 4.0). I have already created a porteus.cfg file to my satisfaction for booting a total of 11 different Porteus labels (several different instances of cheatcodes being applied to the two aforementioned Porteus versions).

I attempted to achieve this with the usual /boot/syslinux directory along with a porteus-3.2 and porteus-4.0 directories in the same root folder. When running the make_iso.sh script from the root folder (meaning, where boot/syslinux, porteus-3.2 and porteus-4.0 are situated), of course I get the error message:

mkisofs: Uh oh, I cant find the boot catalog directory 'boot/syslinux' inside the target tree

Any suggestions on how to do this? make_iso.sh is usually located inside the ordinarily single porteus directory in the ISO. But I now have *two* porteus directories (with two different versions of Porteus). How do I go about it with isolinux?

User avatar
ncmprhnsbl
DEV Team
DEV Team
Posts: 3938
Joined: 20 Mar 2012, 03:42
Distribution: v5.0-64bit
Location: australia
Contact:

How to use 'mkisofs' to create Multi-Porteus Boot ISOs (DVDs)

Post#2 by ncmprhnsbl » 03 Dec 2020, 05:05

looking at make_iso.sh (it's a pretty short script)
this part:

Code: Select all

mkisofs -o "$ISONAME" -v -l -J -joliet-long -R -D -A "$CDLABEL" \
-V "$CDLABEL" -no-emul-boot -boot-info-table -boot-load-size 4 \
-b boot/syslinux/isolinux.bin -c boot/syslinux/isolinux.boot ../.
ends with ../. which, looking at man mkisofs ( https://linux.die.net/man/8/mkisofs ) would be 'pathspec' which "is the path of the directory tree to be copied" .. in this case, the dir above where the script is run from( usually in the porteus dir)
so.. to cut a long story short: try changing ../. to . or even an absolute path maybe, could be run from anywhere then..
Forum Rules : https://forum.porteus.org/viewtopic.php?f=35&t=44

User avatar
Ed_P
Contributor
Contributor
Posts: 8369
Joined: 06 Feb 2013, 22:12
Distribution: Cinnamon 5.01 ISO
Location: Western NY, USA

How to use 'mkisofs' to create Multi-Porteus Boot ISOs (DVDs)

Post#3 by Ed_P » 03 Dec 2020, 05:35

FWIW This is the code I use in a script to write an ISO file from a folder of NEW updated files. NEW has an existing ISO's files in it with a new DE added to it for example.

Code: Select all

mkisofs -o NEW.iso -v -l -J -joliet-long  -R -D -A Porteus -V Porteus \
 -no-emul-boot -boot-info-table -boot-load-size 4 \
 -b boot/syslinux/isolinux.bin -c boot/syslinux/isolinux.boot NEW
Ed

User avatar
cad
Black ninja
Black ninja
Posts: 69
Joined: 06 Nov 2020, 22:40
Distribution: XFCE 5.01 x86_64 + 4.0 i586

How to use 'mkisofs' to create Multi-Porteus Boot ISOs (DVDs)

Post#4 by cad » 03 Dec 2020, 17:27

@ncmprhnsbl

I'll give it a try and report back. According to your explanation, it would also work if I were to make a directory within the root directory ("side by side" with boot, porteus-3.2 and porteus-4.0) and run the porteus mkisofs script from that directory, at one level below root...

@Ed_P
Sure, with your code, it would look into [path.to.NEW] as a root directory for the files to be used to make the ISO. It all makes sense!

Thank you both, ncmprhnsbl and Ed_P, for the advice you provided!

User avatar
cad
Black ninja
Black ninja
Posts: 69
Joined: 06 Nov 2020, 22:40
Distribution: XFCE 5.01 x86_64 + 4.0 i586

How to use 'mkisofs' to create Multi-Porteus Boot ISOs (DVDs)

Post#5 by cad » 03 Dec 2020, 18:07

Yes, it worked out perfectly well. I made a directory one level below the new ISO root folder and ran 'make_iso.sh' from there. The reason I opted for this solution is that, this way, there will be only one version of the Porteus' make_iso.sh in my system (for simplicity's sake). I could have copied make_iso.sh to boot (which is at one level below the new ISO root folder) or in either of the porteus-3.2 or porteus-4.0 directories (both also at one level below the new ISO root folder) and run it from there with equal success.

THANK YOU!!! :clap:

Post Reply