1

Maybe I'm just not doing right, but I can't seem to get genisoimage to produce a UDF image and preserve the exec bit.

$ genisoimage --version
genisoimage 1.1.11 (Linux)

$ echo "echo 'Hello world'" > script.sh

$ chmod +x script.sh

$ ./script.sh 
Hello world

$ genisoimage -input-charset utf-8 -r -udf -volid minimal -o minimal.iso script.sh 
Total translation table size: 0
Total rockridge attributes bytes: 250
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
420 extents written (0 MB)

$ mkdir mount
$ sudo mount minimal.iso $PWD/mount -o ro,loop -t udf

$ ls -l script.sh mount/script.sh 
-r--r--r-- 1 root root 19 Sep 21 18:40 mount/script.sh
-rwxrwxr-x 1 kip  kip  19 Sep 21 18:40 script.sh

You'll note in the last command that script.sh was executable at the time it was injected into the image, but does not appear to be inside of the mounted image.

Is this a bug in genisoimage, a problem with the way I am mounting the image, or a problem in my usage of genisoimage?

Kip
  • 23

1 Answers1

2

One potential problem with your command line may be the -udf option. Here is what the manual says:

Include UDF filesystem support in the generated filesystem image. UDF support is currently in alpha status and for this reason, it is not possible to create UDF-only images. UDF data structures are currently coupled to the Joliet structures, so there are many pitfalls with the current implementation. There is no UID/GID support, there is no POSIX permission support, there is no support for symlinks.

EDIT: this is definitely the problem. If the image is created with

genisoimage -input-charset utf-8 -r -volid minimal -o minimal.iso script.sh

then the script.sh is executable (actually even -r-xr-xr-x, because the -r option propagates the executable bit on files). If you want the iso to be readable to Windows, use the Joliet extension (option -J).

January
  • 37,208