[Debburn-devel] Strange behavior with long names

Thomas Schmitt scdbackup at gmx.net
Thu Jul 11 09:12:01 UTC 2013


Hi,

graphmastur at gmail.com wrote:
> mkisofs -f -o disc.iso -hfs -J -joliet-long -hide-hfs "$ISO_WIN/*"
> -hide-hfs "$ISO_LINUX/*" -hide "$ISO_LINUX/*" -hide "$ISO_MAC/*"
> -hide-joliet "$ISO_MAC/*" -hide-joliet "$ISO_WIN/*" -no-desktop
> -mac-name -allow-lowercase -D -iso-level 4 -graft-points /=$ISO_WIN/
> /=$ISO_MAC/ /=$ISO_LINUX/
> [...]
> On 1.1.7.1, this command works fine with really long file names.
> [...]
> However, running on 1.1.9 gives this:
> [...]
> Using reallyLongFileNameThatsOverACer000 for /var/lib/jenkins/not-tracked/test/Windows/anotherDirectory/reallyLongFileNameThatsOverACertainLimitIsAPossibleDuplicate.win
> (reallyLongFileNameThatsOverACertainLimitOrAtLeastIHopeItIs.win)

(At least this is the only difference in the messages which i
 can spot.)

This message announces that the ISO 9660 name mangling had to
alter a name because after truncation to 34 characters it
collided with another name.

These messages are not unusual and also harmless, because hardly
anybody uses the ISO 9660 names if Rock Ridge or Joliet are present
in the ISO image.
(Your *Duplicate*.win name scratches at the length limit of Joliet,
 which is 64 characters of 16 bit each.)


> If you move everything in anotherDirectory up a level into Windows/,
> it doesn't give the error, as far as I can tell. I'm assuming it has
> something to do with the length of the path.

By this you have separated the two names into different directories.
Truncation will still happen to them, but they will not collide
afterwards. So no message emerges.


It seems that rather 1.1.7.1 is the version that does not what is
usual for mkisofs/genisoimage.
You should compare both images by mounting them as plain ISO 9660
and listing their file trees:

  mkdir /mnt/disc.iso
  mount -o loop,norock,nojoliet disc.iso /mnt/disc.iso
  find /mnt/disc.iso >/tmp/iso_9660_names_of_1.1.7.1
  umount /mnt/disc.iso

Do the same with the image from 1.1.9.
Let diff compare the trees:

  diff /tmp/iso_9660_names_of_1.1.7.1 /tmp/iso_9660_names_of_1.1.9

There should be no differences.
If the older version of genisoimage creates longer ISO 9660 names
then it is at fault.


Have a nice day :)

Thomas




More information about the Debburn-devel mailing list