将 /home 移动到新分区后无法运行可执行文件

将 /home 移动到新分区后无法运行可执行文件

将我的 /home 移至新分区,然后重新安装 Ubuntu 10.10 后,我无法运行 /home 中存在的任何 x-executable 类型的文件。我只收到“没有这样的文件或目录”错误。其他类型的可执行文件(如 shell 脚本和 java 可执行文件)则正常。

下面是 strace 在一个可执行文件上的输出:

execve("/home/evan/android-sdk/platform-tools/adb", ["/home/evan/android-sdk/platform-"...], [/* 41    vars */]) = -1 ENOENT (No such file or directory)
dup(2)                                  = 3
fcntl(3, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7c4c7b3000
lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3)                                = 0
munmap(0x7f7c4c7b3000, 4096)            = 0
exit_group(1)                           = ?

我发布了我原来的问题在 Stack Overflow 上,然后有人建议我将其提交给 serverfault。

答案1

该分区可能已挂载noexec,在这种情况下,即使脚本或程序被标记为可执行,也无法直接执行它们。重新挂载该分区exec

答案2

问题是可执行文件是为 32 位架构制作的,而我运行的是 amd64。很容易解决,只需安装 ia32-libs 包即可。

相关内容