[syslinux] isohybrid and ISO images whose size is not a multiple of 2048 bytes vs. VirtualBox
Ady
ady-sf at hotmail.com
Tue Feb 17 11:16:09 PST 2015
> Hi,
>
> at [Tails] we're in the process of shipping hybrid ISO images by
> default again. We're using `isohybrid -h 255 -s 63' to do that (thanks
> to the advice we got on this mailing-list a few months ago!).
>
> And then, we've discovered that sometimes, isohybrid produces ISO
> images whose size is not a multiple of 2048 bytes.
>
> Who cares? ... may you ask. Well, apparently, VirtualBox does: it
> refuses to add such an ISO image as a virtual DVD. The [details] have
> been researched by my team-mate anonym (cc'd), for the curious.
> According to this research, it might even be that VirtualBox is
> correct in this respect.
>
> Now, anonym also discovered that one can trivially "fix" such an ISO
> image by padding it with zeroes until its size is a multiple of 2048
> bytes (`truncate -s %2048 $ISO'). And then, VirtualBox is happy again.
> That's what we're going to do on the short term on our side, but we
> like it better when things are improved upstream as a result of our
> work, hence this email. So:
>
> What do you think shall be done on the isohybrid side? Shall it do
> this round-up-to-multiple-of-2048-bytes operation itself?
>
> [Tails] https://tails.boum.org/
> [details] https://labs.riseup.net/code/issues/8891#note-9
>
> Cheers,
> --
> intrigeri
Any (common) ISO image size should be a multiple of 2048 bytes, as this
is the normal bytes_per_sector value.
For isohybrid images, the result should be a multiple of 1MiB (1048576
bytes), which is itself a multiple of 2048 bytes.
So, in addition to adding the corresponding MBR and partition table to
the original ISO image, the isohybrid tool should also check that the
ISO image is a multiple of 1MiB. If it is not, then the isohybrid tool
should first add a "tail" of zeroes to the ISO image up to the next
multiple of 1MiB, and then add the MBR and partition table.
I do not know the exact complete procedure that the TAILS team is using
to build the original ISO image, and how it is transformed into an
isohybrid image (there are multiple tools for each, sometimes
combined).
If the isohybrid method (whichever tool you are using) is not applied
to your original ISO image, is such ISO image' size a multiple of 2048
bytes?
What's the difference, in bytes, between the non-hybrid ISO image and
the isohybrid one? Could you please provide both exact sizes? It is
possible that some "limit" (e.g. around the 1GiB) might be triggering
some condition (I am not saying that this is a bug in the isohybrid
tools, or that such case might trigger a problem; just assuming that
there might be some potential chance that some case might have not been
considered in the source code).
I don't know whether there is some bug in any one of the isohybrid
tools included in Syslinux (there might be). Which one are you using?
Is it part of the same exact version of the ISOLINUX bootloader? Or,
perhaps, are you using an external tool (i.e. not using any of the ones
included in Syslinux)?
Have you tried not using the Syslinux-related packages, and instead
using the upstream official *pre-built* binaries (downloaded from
kernel.org) to build a new ISO image and then to make it isohybrid
(both pre-built binaries, the isolinux.bin bootloader and the isohybrid
tool, from the upstream official archives)?
Additionally, IIRC, the "isolinux-debug.bin" file cannot be used for
isohybrid images.
Regards,
Ady.
> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com
> Unsubscribe or set options at:
> http://www.zytor.com/mailman/listinfo/syslinux
>
More information about the Syslinux
mailing list