如何从已安装的驱动器运行可执行文件?

如何从已安装的驱动器运行可执行文件?

我在硬盘的已挂载分区上创建了一个 Eclipse 工作区。我能够成功构建 hello world 程序,但是当我尝试执行可运行程序时,我收到以下错误消息:

Error starting process. Exec_tty error:Cannot run program
"/media/vineet/DEVDATA1/vinexpMount/Debug/vinExpeMount": Unknown
 reason Exec_tty error:Cannot run program
"/media/vineet/DEVDATA1/vinexpMount/Debug/vinExpeMount": Unknown
reason Exec_tty error:Cannot run program
"/media/vineet/DEVDATA1/vinexpMount/Debug/vinExpeMount": Unknown
 reason

请告诉我该怎么办?我已经检查了可执行文件的权限,

-rw-r--r--

这意味着我没有执行权限。但是当我在根分区中创建工作区时,我默认获得执行权限。我该怎么做才能在这里获得相同的行为?

答案1

这应该是一条评论,但似乎我没有权限写任何评论,所以提前致歉。

您是否尝试过mount在终端中执行该命令?此程序会针对系统中的每个挂载点生成输出。在输出中的每一行末尾,挂载标志都列在括号中。检查您的挂载点是否已noexec设置标志。

如果是这样,您可以使用以下命令进行更改(例如,假设您的驱动器安装在/mnt/cdrom):

sudo mount -o remount,exec /mnt/cdrom

如果你挂载的驱动器是 Windows 分区(即使用 NTFS 文件系统格式化的分区),那么你可以按照此处所述挂载可执行文件邮政

答案2

您可以使用 Linux 链接器运行任何文件,而不管其可执行权限如何,也不需要更改挂载选项,如下所示:

/lib/ld-linux.so.2 /path/to/binary-file

或者,在 64 位系统上:

/lib64/ld-linux-x86-64.so.2 /path/to/binary-file

答案3

我的解决方案是将其重新安装到另一条路径:

$ sudo umount /dev/sdf
$ sudo mount -o exec,defaults,-default_permissions /dev/sdf ~/usbdrive

列出所有已安装的驱动器:

$ cat /proc/mounts

相关内容