WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: Bootable CD with multiple versions  (Read 254 times)

Offline Dacicus

  • Newbie
  • *
  • Posts: 11
Bootable CD with multiple versions
« on: October 28, 2025, 11:02:26 AM »
My goal is to make a bootable CD that lets me choose between two different versions of Tiny Core.  I have programs in each version that I use under different circumstances.  The problem is that extensions are loaded from the cde/optional directory, and I can't have multiple files with the same name in that directory (e.g., Xorg-7.7.tcz for each version that I want to boot).  My solution, which doesn't work, was to edit /usr/bin/tce-setup with a new bootcode that allows me to specify a subdirectory:
  • Insert another case after the lst=*) line: cdv=*) CDV=${i#*=} ;;
  • Insert $CDV in the process_CD() function: LOADFROM="$CD"/cde/optional/"$CDV"
I put the extensions into cde/optional/16, for example, and add cde cdv=16 lst=whatever.lst to the appropriate append line in isolinux.cfg.  This fails.  When I try booting the disc, I get a message about the extensions in the lst file not being found.  I can load them manually via tce-load, so I know that they were written to the disc properly.

Did I make some obvious mistake?  Or is there another way to accomplish what I want?  Thank you in advance for any input.

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 12289
Re: Bootable CD with multiple versions
« Reply #1 on: October 28, 2025, 12:33:28 PM »
Hi Dacicus
I don't think there was ever any intent for multiple cde directories
the way you can have multiple tce directories.

The simplest thing to try is to cheat by lying. Use tce directories.

Try setting up something like this:
For the first version
Code: [Select]
KERNEL /Version1/boot/vmlinuz
INITRD /Version1/boot/core.gz
APPEND loglevel=3 tce=/Version1/tce

For the first version
Code: [Select]
KERNEL /Version2/boot/vmlinuz
INITRD /Version2/boot/core.gz
APPEND loglevel=3 tce=/Version2/tce

Offline Dacicus

  • Newbie
  • *
  • Posts: 11
Re: Bootable CD with multiple versions
« Reply #2 on: October 28, 2025, 06:38:44 PM »
Thank you for the suggestion, Rich.  I did that, but it produces these error messages when trying to load extensions during boot:
Code: [Select]
mkdir: can't create directory '/11/tce/optional': No such file or directory
chown: /11/tce: No such file or directory
Those directories definitely exist.

I also tried to put the full path to each extension in the lst file, but that produced this error:
Code: [Select]
/usr/bin/tce-load: cd: line 263: can't cd to /cde/16: No such file or directory
I guess I can try to use the iso bootcode next and put one set of extensions in an ISO file on the CD, lol.

Offline gadget42

  • Hero Member
  • *****
  • Posts: 979
Re: Bootable CD with multiple versions
« Reply #3 on: October 29, 2025, 12:26:19 AM »
i get one page of search results when i search the forum for "cde"(no quotation marks) and ask for the "most recent topics first" and checkmark the box for "Search in topic subjects only"

a brief review of this results page appears to offer some definite possibilities for further investigation and experimentation

also, the same search without the "Search in topic subjects only" box checkmarked yields 17 pages of fun(just sayin')
** WARNING: connection is not using a post-quantum kex exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
** Also see: post quantum internet 2025 - https://blog.cloudflare.com/pq-2025/

Offline Dacicus

  • Newbie
  • *
  • Posts: 11
Re: Bootable CD with multiple versions
« Reply #4 on: October 29, 2025, 01:39:00 AM »
Thanks for the input, gadget42.  I read through the "topic subjects only" results and did not find a solution.  I plan to read through the 17 pages when I have more time.  For now, the method with the iso bootcode and an ISO on the CD does work.

Offline gadget42

  • Hero Member
  • *****
  • Posts: 979
Re: Bootable CD with multiple versions
« Reply #5 on: October 29, 2025, 02:36:55 AM »
had another thought and so searched "multiboot iso"(no quotation marks) and this was one of the results:

https://forum.tinycorelinux.net/index.php/topic,24082.0.html
** WARNING: connection is not using a post-quantum kex exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
** Also see: post quantum internet 2025 - https://blog.cloudflare.com/pq-2025/

Offline Dacicus

  • Newbie
  • *
  • Posts: 11
Re: Bootable CD with multiple versions
« Reply #6 on: October 29, 2025, 02:54:26 AM »
had another thought and so searched "multiboot iso"(no quotation marks) and this was one of the results:

https://forum.tinycorelinux.net/index.php/topic,24082.0.html
Yes, that's basically what I'm doing.  I have an ISO file that only contains a /cde directory with an onboot.lst file and the necessary extensions in the /cde/optional subdirectory.  That ISO file is within another ISO file that actually has the various core.gz and vmlinuz files and isolinux configuration files, as well at its own /cde directory tree for the other Tiny Core version that I need to boot.

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 12289
Re: Bootable CD with multiple versions
« Reply #7 on: October 29, 2025, 05:21:44 PM »
Hi Dacicus
I figured it out.

This is the directory structure I created:
Code: [Select]
MkISO/
|-- ISO/
|   |-- V10/
|   |   |-- boot/
|   |   |   |-- core.gz
|   |   |   `-- vmlinuz
|   |   `-- tce/
|   |       |-- copy2fs.lst
|   |       |-- onboot.lst
|   |       `-- optional/
|   |-- V15/
|   |   |-- boot/
|   |   |   |-- core.gz
|   |   |   `-- vmlinuz
|   |   `-- tce/
|   |       |-- copy2fs.lst
|   |       |-- onboot.lst
|   |       `-- optional/
|   `-- boot/
|       `-- isolinux/
|           |-- boot.cat
|           |-- boot.msg
|           |-- f1
|           |-- f2
|           |-- f3
|           |-- f4
|           |-- isolinux.bin
|           |-- isolinux.cfg
|           `-- menu.c32
|-- MkISO*
|-- RecordCD*
`-- TC10TC15.iso

TC10TC15.iso will let you boot either Tinycore10.1 or Tinycore15.0 (32 bit, Xvesa).

The MkISO script creates TC10TC15.iso from the contents of the ISO/ directory.

The RecordCD script is used to burn the image to a CD. It also contains comments
on how to identify your CD drives dev address.

Everything under the V10/ directory is the contents of the Tinycore 10.1 CD minus the isolinux/ subdirectory.
Everything under the V15/ directory is the contents of the Tinycore 15.0 CD minus the isolinux/ subdirectory.
The optional/ directories are populated. I told the tree command to only go 4 directories deep.

The isolinux/ directory under the /boot/ directory was copied from the Tinycore 15.0 CD.

isolinux.bin needs to be writable so that mkisofs can update it (chmod 600 isolinux.bin).
isolinux.cfg needs to be writable if you wish to edit it (chmod 600 isolinux.cfg).

This is the isolinux.cfg file:
Code: [Select]
DEFAULT Version10
UI menu.c32
PROMPT 0
TIMEOUT 600
ONTIMEOUT Version10
F1 f1
F2 f2
F3 f3
F4 f4

MENU TITLE TinyCore
MENU MARGIN 10
MENU VSHIFT 5
MENU ROWS 5
MENU TABMSGROW 14
MENU TABMSG Press ENTER to boot, TAB to edit, or press F1 for more information.
MENU HELPMSGROW 15
MENU HELPMSGENDROW -3
MENU AUTOBOOT BIOS default device boot in # second{,s}...

LABEL Version10
MENU LABEL Boot TinyCore-10.1
TEXT HELP
Boot TinyCore with Embedded X/GUI extensions.
ENDTEXT
KERNEL /V10/boot/vmlinuz
INITRD /V10/boot/core.gz
APPEND loglevel=3 tce=LABEL=TC10TC15/V10/tce waitusb=5:LABEL=TC10TC15

LABEL Version15
MENU LABEL Boot TinyCore-15.0
TEXT HELP
Boot TinyCore with Embedded X/GUI extensions.
ENDTEXT
KERNEL /V15/boot/vmlinuz
INITRD /V15/boot/core.gz
APPEND loglevel=3 tce=LABEL=TC10TC15/V15/tce waitusb=5:LABEL=TC10TC15

TC10TC15.iso, MkISO, and RecordCD are available for download here:
http://tinycorelinux.net/15.x/x86/TestISO/

If you want to modify TC10TC15.iso:
Code: [Select]
mkdir Work
cd work
mkdir ISO mnt
# Copy TC10TC15.iso, MkISO, and RecordCD to the Work directory.
sudo mount TC10TC15.iso mnt/
cp -a mnt/* ISO/
sudo umount mnt
# Make your changes in the ISO/ directory.
# Then, cd back into your Work directory.
# Create the new ISO file.
MkISO
# To burn a CD
RecordCD

Some error messages when booting that xwbar.lst can't be written to the tce directory.
This is expected since tce is on a CD and read only. This message is harmless.

Hope this helps.

Offline gadget42

  • Hero Member
  • *****
  • Posts: 979
Re: Bootable CD with multiple versions
« Reply #8 on: October 30, 2025, 09:16:31 AM »
and this is why THIS forum(and tcl) are absolutely awesome indeed!

huge kudos Rich!
** WARNING: connection is not using a post-quantum kex exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html
** Also see: post quantum internet 2025 - https://blog.cloudflare.com/pq-2025/

Offline Dacicus

  • Newbie
  • *
  • Posts: 11
Re: Bootable CD with multiple versions
« Reply #9 on: October 31, 2025, 12:21:00 AM »
Thank you very much, Rich!  I will study this.

Offline Rich

  • Administrator
  • Hero Member
  • *****
  • Posts: 12289
Re: Bootable CD with multiple versions
« Reply #10 on: October 31, 2025, 09:09:29 AM »
Hi Dacicus
You are welcome. :)