.sblive > 4gb, how to create .iso?

Asked by Alwin Hopf on 2015-10-26

I know that Systemback won't be able to create an .iso if the size is > 4gb.
However, I'm able to create a bootable usb-stick with Systemback. Is there any way to turn this usb-stick into an .iso? So that I can distribute it online and people can use in in virtualbox or create their own bootable usb-stick.

Question information

English Edit question
Systemback Edit question
No assignee Edit question
Last query:
Last reply:
Kendek (nemh) said : #1

This 4 GB size is not a Systemback limitation. If you try the store a big (> 4 GB) filesystem.squashfs file in the ISO 9660 Level 3, the Live system will not be able to boot. Just try it...
The Systemback uses two partitions (on the USB device) when the image is too large, the filesystem.squashfs is stored on the secondary ext2 filesystem. This is the only way what I know.


I do i set systemback so that it will make an iso 9660 level 3? what file do i edit and what line please?

Kendek (nemh) said : #3

The Systemback is not able to create unbootable ISO 9660 level 3 file. But if you want, you can try with manually.

You said in your comment which you posted before that its could make the level 3 version but its world not be bootable, I think i have find away arount this but i need to make the iso before i can test it. so what file do i edit for systemback to force it to produce a iso9660 level3?

also dose systemback use grub-mkresue?

Kendek (nemh) said : #5

If you really want to edit a Systemback file, check the source code and the systemback/systemback.cpp, line 7888:

You can change the command, add the the following options:
-iso-level 3

Or, you can generate the ISO manually:
1. Decompress the .sblive image:
mkdir sblive
tar -xf /home/systemback_live_2016-04-27.sblive -C sblive

2. Rename the syslinux to isolinux:
mv sblive/syslinux/syslinux.cfg sblive/syslinux/isolinux.cfg
mv sblive/syslinux sblive/isolinux

3. Generate the ISO file:
genisoimage -iso-level 3 -r -V sblive -cache-inodes -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o sblive.iso sblive

The Live system will not boot when the size is bigger than 4 GiB. But if you found a solution, please tell me. :-)

thanks for that, very helpful.

To answer your question about the solution i use:
I have a script that i have adjusted for making a live-cd that also supports large iso building, its all works well but the live-installer is a-bit buggy thus the reason i looking into systemback, anyways in the scripts process when its completed creating the iso it then uses the dd feature to deliver the iso media on a flash drive, this seems the best method as when using a regular cd burner program the hidden boot part of the iso gets bypassed/screwed or something like that thus the reason large iso don't work when applying in that manner.
but regarding dd itself, I find it is rubbish for showing the progress of the copying, which is why i use dc3dd as an alternative which is mush faster and it has its own progress meter, it would be very easy for you to add this as an if/else statement in your code (if=iso lager then 4gb then. use dc3dd etc..)
command example used: dc3dd if=isoimage.iso of=/dev/sdb
works every-time without issue, and on any flash media the right capacity. Also as for burning dvd's, i had a chat with the xorriso developer and he said direct-to-dvd dual-layer discs etc. can be used in the sequence to burn the large level 3 iso with: (grub-mkrescue ... -- -outdev /dev/sr0).
i no you use genisoimage but i found grub-mkrescue to be much more robust as it uses xorriso in its back-end, so it has way more options for manipulation.
maybe not what you expected to hear but i hope that is helpful info in some way.

Kendek (nemh) said : #7

I do not need a solution for flash drives (I already have), I need that the big (> 4 GiB) ISO with big (> 4 GiB) squashfs file to be able to boot in VirtualBox (and others...). Optical drives are obsolete (true, I have some games on Blu-ray discs for the PS4).
So what is the command which I can build the usable ISO files with big (> 4 GiB) squashfs file?

FOR "Making squashfs - this is going to take a while"
mksquashfs "${WORK}"/rootfs "${CASPER}"/filesystem.squashfs -noappend

FOR "Making filesystem.size"
echo -n $(du -s --block-size=1 "${WORK}"/rootfs | \
    tail -1 | awk '{print $1}') > "${CASPER}"/filesystem.size

zhang weijia (weijiz) said : #9

I have found a solution to create an iso file more than 4GB. use mkisofs instead of genisoimage.
Install mkisofs from here https://sourceforge.net/projects/cdrtools/

3. Generate the ISO file:
/opt/schily/bin/mkisofs -iso-level 3 -r -V sblive -cache-inodes -J -l -b isolinux/isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -c isolinux/boot.cat -o sblive.iso sblive

I don't know why, but it really works. I can boot the generated iso file in virtualbox.

The Dude (theunable) said : #10

i know this post is old yet using mkiso to create the iso will work on virtual box but im having issues using other usb programs to put the iso onto usb....once i put the iso to usb and boot the usb it wont boot it gives errors...

zhang weijia (weijiz) said : #11

Because there is another limitation, files in the iso cannot bigger than 4GB and the squashfs file is more than 4GB. You have to split the squashfs file manually which is not an easy job.

@zhang weijia (weijiz)

Did you found a solution for creating bootable USB with more than 4GB sblive file.

zhang weijia (weijiz) said : #13

If you just want to create a bootable USB, there is no limit on the size of sblive file. Just select your sblive file and click write to target.

toxin265 (nextwave-0) said : #14

i know this post is old, but i have some comments:
The mkisofs created iso is working not in the virtualbox only.
You must be use isohybrid after iso is done:
isohybrid -h 256 -s 63 -u custom.iso
No errors with greather than 4GiB iso/filesystem.squashfs, if you put it
to the usb media (pendrive, usb hdd, etc.)

But: mkisofs is part of cdrtools (closed cdrecord), and on debian/*buntu
better choice the gpl based xorriso instead of mkisofs. This is know same
functions all-in-one like mkisofs/isohybrid pair. If you want to make an
UEFI/Legacy hybrid bootable iso with copyable to usb, you must put
this script, which contains the sblive directory :

xorriso -as mkisofs \
  -V "Custom Debian 10 Live Media" \
  -J -R \
  -isohybrid-mbr sblive/isolinux/ \
  -c isolinux/boot.cat \
  -b isolinux/isolinux.bin \
  -iso-level 3 \
  -no-emul-boot \
  -boot-load-size 4 \
  -boot-info-table \
  -eltorito-alt-boot \
  -e boot/grub/efi.img \
  -no-emul-boot \
  -isohybrid-gpt-basdat \
  -o sblive.iso \

The isohdpfx.bin part of isolinux package, put it
from the /usr/lib/ISOLINUX/ to sblive/isolinux directory
I probed it on Debian Buster, worked good for me.

ps.: to the usb booting method better choice if you making it
from the sblive file. The free space is not available on the pendrive, if you
put the bootable iso to usb.

Can you help with this problem?

Provide an answer of your own, or ask Alwin Hopf for more information if necessary.

To post a message you must log in.