在终端中,当我尝试sudo chroot .
进入主目录时,我得到:
chroot: failed to run command ‘/bin/bash’: No such file or directory
当我尝试sudo chroot .
使用外部 SD 卡时,出现以下信息:
chroot: failed to run command ‘/bin/bash’: Permission denied
我发现有一个chroot 漏洞报告了此事,但在 2016/04/12 他们说:
"Changed in canonical-devices-system-image:
status:
Fix Committed → Fix Released"
我在运行 Ubuntu 15.04 (OTA-11) 的 Bq Aquaris m10 HD 上。此错误也影响了 OTA 10.1,但我决定等待下一个 OTA。还有其他人遇到这种情况吗?
我之所以问这个问题,是因为我想安装一些 CLI 工具,而不会弄乱系统并破坏急需的 OTA。我遵循以下指南:
https://askubuntu.com/a/623311。
有没有其他方法可以安装 cli 工具而无需将文件系统设置为可写?
欢迎任何解决方法
编辑:问题解决了!正如 terdon 和 Rinzwind 指出的那样,“权限被拒绝”错误是由于我的外部 SD 卡中没有执行许可。我下载并解压了 ubuntu 映像,将其放在我的主目录中的一个文件夹中,现在我可以正常 chroot 了。谢谢!
答案1
我完全不确定您链接到的错误是否与此相关。您不能像chroot
这样随意设置目录。默认情况下,chroot
将设置/
为您指定的目录,然后尝试运行/bin/sh
(或默认 shell 的任何内容)。由于目标目录中没有/bin/sh
,它会抱怨。这就是您在第一个错误中看到的内容:
chroot: failed to run command ‘/bin/bash’: No such file or directory
第二个错误可能是因为您在外部驱动器中安装了 FAT 或 NTFS 分区,但尚未将其设置为允许执行。它看起来/path/to/external/bin/sh
存在但无法执行。尝试安装启用执行的 SD 卡。
注意导游您链接到的内容告诉您下载 Ubuntu 映像并将其用作 chroot 目标。它没有告诉您使用您的主目录!
为了显示:
$ sudo chroot .
chroot: failed to run command ‘/bin/bash’: No such file or directory
$ cp /bin/busybox bin/sh
$ sudo chroot /bin/sh ### works!
# /
答案2
尝试从 /home 以外的文件夹执行此操作,例如
chroot path_chroot_folder
查看您分享的错误报告链接中有关执行“chroot”的评论,具体来说。
Jamie Strandboge (jdstrand) 于 2016-01-15 写道:#3
这不起作用的原因是因为这条规则分割出了
/home: /[^h][^o][^m][^e]** 像素,
我们需要为自动驾驶仪做到这一点fakeenv 风格测试。我认为这种测试风格由于其他问题已被放弃;如果这是真的,我可以简化执行转换规则并删除这些自动驾驶规则。Nicholas,你能评论一下吗?
apparmor-easyprof-ubuntu (Ubuntu) 中的更改:受让人:nobody → Nicholas Skaggs (nskaggs) 状态:已确认 → 未完成