genisoimage e preservação de bits de execução

1

Talvez eu simplesmente não esteja certo, mas parece que não consigo ter uma imagem geniei produzir uma imagem UDF e preservar o bit 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

Você notará no último comando que script.sh era executável no vez que foi injetado na imagem, mas não parece estar dentro de a imagem montada.

Isso é um bug em genisoimage, um problema com a maneira que eu estou montando o imagem, ou um problema no meu uso de genisoimage?

    
por Kip 23.09.2012 / 09:02

1 resposta

2

Um possível problema com sua linha de comando pode ser a opção -udf. Aqui está o que o manual diz:

  

Inclua o suporte ao sistema de arquivos UDF na imagem gerada do sistema de arquivos. O suporte a UDF está atualmente em status alfa e, por esse motivo, não é possível criar imagens apenas de UDF. As estruturas de dados UDF estão atualmente acopladas às estruturas do Joliet, portanto, há muitas armadilhas com a implementação atual. Não há suporte a UID / GID, não há suporte a permissões POSIX , não há suporte para links simbólicos.

EDIT: este é definitivamente o problema. Se a imagem é criada com

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

o script.sh é executável (na verdade até -r-xr-xr-x , porque a opção -r propaga o bit executável nos arquivos). Se você quiser que o iso seja legível para o Windows, use a extensão Joliet (opção -J ).

    
por January 23.09.2012 / 09:15