在 ubuntu 中无法“sudo chroot”

在 ubuntu 中无法“sudo chroot”

在终端中,当我尝试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) 状态:已确认 → 未完成

相关内容