Parallels Desktop运行Ubuntu时执行Bash脚本报bad interpreter错误如何解决
故障可能成因
- Parallels Desktop 17 自带的Parallels Tools内核模块
prl_fs(共享文件系统驱动)存在兼容bug:如果你运行的脚本存放在宿主机共享到虚拟机的目录下,升级后prl_fs对脚本shebang行的解析逻辑异常,会导致内核无法正确识别/bin/bash解释器,抛出Invalid argument错误。 - Parallels Tools安装不完整:升级过程中编译内核模块时依赖的Ubuntu内核头文件版本不匹配,导致生成的
prl_fs等模块存在功能缺陷,影响了可执行文件的加载逻辑。 - 系统二进制格式规则被修改:Parallels Tools安装过程中会自动写入
binfmt_misc规则支持跨架构二进制运行,异常的规则可能会误拦截普通bash脚本的解析。
进一步排查步骤
- 验证脚本存放位置影响:将目标脚本复制到虚拟机本地的非共享目录(如
/home目录),执行chmod +x 脚本名赋予执行权限后再次运行。如果本地运行正常,即可确认是共享文件系统prl_fs导致的问题。 - 验证解释器加载逻辑:直接通过bash调用脚本执行
/bin/bash 脚本路径,如果该命令可以正常运行,说明bash本身无故障,问题出在内核加载shebang解释器的环节。 - 检查共享目录挂载参数:执行
mount | grep prl_fs查看共享目录的挂载参数,确认是否存在noexec限制。如果存在可执行sudo mount -o remount,exec 共享目录挂载路径临时调整参数后重试。 - 排查binfmt_misc规则冲突:执行
ls /proc/sys/fs/binfmt_misc/查看是否存在Parallels相关的二进制匹配规则,可临时执行echo 0 > /proc/sys/fs/binfmt_misc/对应规则文件名关闭规则后测试脚本是否正常运行。 - 版本兼容验证:降级Parallels Tools到15版本,如果降级后故障消失,即可确认是PD17版本Tools的兼容性缺陷,可向Parallels官方反馈该问题申请修复补丁。
内容的提问来源于stack exchange,提问作者ViktorA
相关产品推荐
相关产品推荐

