¿Cómo ejecuto un archivo desde una unidad FAT USB?

9

Intento instalar una aplicación portátil en mi unidad USB de modo que sea compatible tanto con Ubuntu como con Windows (específicamente, un programa llamado eToys). El soporte ya está integrado en la aplicación para ambos sistemas operativos, hay etoys.sh para Ubuntu y etoys.exe para Windows. Decidí instalar en una unidad FAT, ya que se puede leer desde ambos sistemas. Esto funciona bien para Windows, pero por alguna razón no puedo ejecutar etoys.sh en Ubuntu.

El problema no está en el archivo: cuando toda la carpeta se copia en el disco duro local, la aplicación funciona muy bien en Ubuntu. Pero cuando intento ejecutarlo desde el USB, abre el archivo en un editor de texto.

Intenté ejecutarlo desde una terminal, pero recibí el mensaje Permiso denegado.

También he tenido el mismo problema con otros ejecutables.

¿Existe una forma sencilla de ejecutar cosas desde un dispositivo USB?

    
pregunta Derek Redfern 25.01.2011 - 01:22

8 respuestas

7

De hecho, encontré una gran solución en enlace que solucionó el problema.

Básicamente, dice ejecutar el comando

sudo sed -i -e 's|showexec|\x00\x00\x00\x00\x00\x00\x00\x00|g' /usr/lib/udisks/udisks-daemon

y eso evitará que los discos se monten automáticamente con la opción showexec.

No me gusta responder a mi propia pregunta, pero me funcionó y espero que ayude a otras personas también.

para ubuntu 18.04:

sudo sed -i -e 's|showexec|\x00\x00\x00\x00\x00\x00\x00\x00|g' /usr/lib/udisks2/udisksd
    
respondido por el Derek Redfern 02.02.2011 - 05:09
19

Debido a las limitaciones del sistema de archivos FA32, no puede.

Ahora puedes hacer trampa:

  1. llame a sh etoys.sh en lugar de ./etoys.sh
  2. si lo desea, puede incluso crear otro script (que se encontraría en su disco duro, por ejemplo) que simplemente llama a su script en la unidad USB:

    #!/bin/bash
    sh /media/USB/etoys.sh
    
respondido por el user9521 25.01.2011 - 01:29
8

El montaje del dispositivo con -o mode=<value> debería funcionar

mode=value

Establezca el modo de todos los archivos en valor & amp; 0777 sin tener en cuenta los permisos originales. Agregue permisos de búsqueda a directorios que tienen permiso de lectura. El valor se da en octal.

    
respondido por el Bonsi Scott 25.01.2011 - 06:20
2

En última instancia, el problema parece ser que udisks monta el sistema de archivos con la opción showexec , lo que impide que se ejecute cualquier archivo que no termine en .exe , .bat o .com .

Puede encontrar una pregunta relacionada (cómo dar opciones de montaje personalizadas para udisks) aquí: ¿Cómo configurar para registrar datos para pendrive instantáneamente? Resulta que puede usar udev configuration para hacer eso.

Está configurando las opciones de montaje predeterminadas para los udisk realmente no posible? propone otra solución basada en udisks-glue , pero parece menos convincente, ya que en última instancia se basa en udisks , por lo que parece que puede agregar opciones, pero no eliminarlas, y en particular showexec todavía está ahí).

En cualquier caso, tiendo a preferir eso a parchear un archivo binario.

    
respondido por el Virgile 15.02.2013 - 14:50
2

Ninguna de las soluciones mostradas funcionó tanto como pude para obtener un programa que escribí como un programa de terminal Linux para ejecutar en mi partición FAT32, pero cambiar el nombre del programa para incluir la extensión .exe funcionó (gracias por la sugerencia), todo lo que hice fue renombrar el nombre del archivo a filename.exe para el programa del terminal que estaba tratando de ejecutar en una partición FAT32, y luego desmontarlo, volver a montarlo y configurar los permisos del disco para permitir la ejecución, luego ir a filename.exe y establecer sus permisos y luego la marca de verificación se quedaría en lugar de volver a un menos, y cuando establecí la ruta e ingresé ./filename.exe en el indicador de la terminal, el programa se ejecutó como debería y muestra el comando línea que incluye filename.exe tal como se ingresó, aunque el directorio de archivos de Ubuntu muestra el archivo como MSDOS / Windows, se ejecuta como un programa Linux.

    
respondido por el Dan Hudgins 04.07.2013 - 05:37
1

Así que encontré una solución mucho más simple (y más segura).

Usa gparted para formatear el USB FAT32 y luego us Partition = & gt; Manage Flags para establecer los siguientes indicadores: boot, lba

    
respondido por el MrSteve 07.08.2013 - 22:28
0

Puedes usar el modo umask=000 :

umount /dev/sdb1
mount -o umask=000 -t vfat /dev/sdb1 /media/sdb1

Fuente: wiki.linuxquestions.org , sección "Opciones de montaje para grasa" en mount(8) .

    
respondido por el pevik 22.11.2016 - 22:47
-1

Si la sintaxis es bash ...

bash yourscript
    
respondido por el Sergio Abreu 25.07.2018 - 15:51

Lea otras preguntas en las etiquetas