技术解析

7、 Linux 环境下如何在外置 sd 卡执行程序
0
1975-02-23 17:20:19
idczone

有一块嵌入式开发版,系统是 fedora 28,想要扩展容量,就插了一块 sd 卡( MS-DOS 格式)。通过mount命令挂载到了桌面上的sd文件夹,可以正常存取文件,但是如果是可执行文件不能执行。试过用 chmod 更改文件权限,无效。请教一下应该如何处理(如何在 sd 卡上直接执行二进制程序)?


> 但是如果是可执行文件不能执行。试过用 chmod 更改文件权限,无效。
请避免使用这类模糊的描述。
放出你的操作步骤,以及报错信息,这样我们才能帮到你。

https://askubuntu.com/questions/96923/how-do-i-change-permissions-on-a-fat32-formatted-drive

ms-dos 格式,意思是文件系统是 fat32 ?你重新格式化为 ext4 试试吧

另外既然是扩展容量而不是临时使用,建议格式化为 ext4 或者 f2fs 文件系统。

不能执行会有错误提示吧, 给多点信息

ms-dos 格式好像是不支持权限的吧。最简单的方法是格式化成 jffs2 之类的格式,再来挂载

应该是文件系统问题, 我有个硬盘 NTFS 分区挂路由器上就遇到这样的问题,最后格式化成 ext4 就好了

mount 的时候设置 umask=000 这样就能运行了

方法一:重新格式化为 Linux 的 fs
方法二:挂载时设置带 x 的 fmask

因为 ntfs 和 fat 之类的文件系统没有 rwx 这样的权限元信息。

原来是这样,学习了。但是 win 使用的就是 ntfs 格式,不也存在文件权限管理的情景吗,没有这种权限信息要怎么处理文件权限

啊这不能和 win 比,完全不同的机制,win 直接看文件名后缀决定是否可执行文件的,
事实上 linux 挂载 vfat 或者 ntfs 都可以在挂载时指定挂载成所有文件拥有 x 权限,就可以运行可执行文件了,

我想问的是多用户权限管理以及这个文件的读,写,执行权限的控制,这个好像在一个文件的属性里可以设置,但是如果没有这个权限信息的话是如何做到的呢?
在挂载的时候设置权限我也试过设置 mount 命令参数"dmask=000,fmask=111,umask=000",但是没有效果呀,最后还是格式化为 ext4 格式了。

NTFS 是基于 ACL 的权限系统,没有 POSIX 这种权限。
Windows 下有执行权限,是否可执行不由文件名决定。默认所有文件都允许执行。

没有权限信息是不可能的,不管是 win 还是 linux 都有在文件头里储存文件内容以外的信息,
挂载的话参数是类似 file_mode=777 这样的,mask 影响的是新建文件的权限,这些不常用的参数都可以用前搜索一下的,

FAT 没有 x mode

NTFS 和 FAT 不一样,和 EXT 也不一样
VFAT 就是没有权限这个说法,要不然当初 winxp 时代微软也不会推荐大家告别 FAT32 拥抱 NTFS
NTFS 的权限系统又和 Linux 的权限是两个概念
所以说到底还是要补充“文件系统”的相关知识

感谢各位的回复,看来这个问题涉及到的知识还挺多,我再学习一下

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服