genisoimage и exec битовое сохранение

Может быть, я просто не правильно делаю, но я не могу получить гениальный образ, чтобы создать UDF-изображение и сохранить бит exec.

$ 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

В последней команде вы заметите, что script.sh был исполняемым в тот момент, когда он был внедрен в образ, но, похоже, не находится внутри смонтированного образа.

Это ошибка в genisoimage, проблема с тем, как я монтирую образ, или проблема в моем использовании genisoimage?

1 ответ

Решение

Одна потенциальная проблема с вашей командной строкой может быть опцией -udf. Вот что говорится в руководстве:

Включить поддержку файловой системы UDF в созданный образ файловой системы. Поддержка UDF в настоящее время находится в альфа-состоянии, и по этой причине невозможно создавать изображения только в UDF. Структуры данных UDF в настоящее время связаны со структурами Joliet, поэтому в текущей реализации есть много подводных камней. Нет поддержки UID/GID, нет поддержки разрешений POSIX, нет поддержки символических ссылок.

РЕДАКТИРОВАТЬ: это определенно проблема. Если изображение создано с

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

тогда скрипт.sh исполняемый (на самом деле даже -r-xr-xr-x, поскольку -r опция распространяет исполняемый бит на файлы). Если вы хотите, чтобы ISO был доступен для чтения в Windows, используйте расширение Joliet (опция -J).

Другие вопросы по тегам