qemu仿真二进制文出现chroot: failed to run command XXX 或Error while loading XXX : No such file or directory错误
qemu仿真二进制文出现chroot: failed to run command XXX 或Error while loading XXX : No such file or directory错误。
出现此错误的问题主要在于对chroot这个命令的理解不到位。
仿真的命令是:sudo chroot XX目录 相对于XX目录的qemu文件 相对于XX目录的被仿真的可执行二进制文件,如sudo chroot /home/ubuntu/disk/hdd_1/zgd/Open_Components_Vulnerability_Find/firmware_analysis/GE_F650-192.168.0.232 ./qemu-ppc-static ./bin/busybox
注意事项:sudo chroot 被当成root根目录的目录位置,qemu是在此目录的基础上的相对位置,开源组件也是在此目录的基础上的相对位置。否则会报找不到qemu或者开源组件的位置。如下图只有第三个找到了结果,第一和第二种都是要么找不到qemu,要么找不到被仿真的文件的位置。
为了验证是的chroot root目录,之后两个参数目录都是相对目录,那么我就跳到其他目录下尝试。因为上图的./qemu-ppc-static和 ./bin/busybox都是相对于sudo chroot /home/ubuntu/disk/hdd_1/zgd/Open_Components_Vulnerability_Find/firmware_analysis/GE_F650-192.168.0.232 ./qemu-ppc-static ./bin/busybox中的sudo chroot /home/ubuntu/disk/hdd_1/zgd/Open_Components_Vulnerability_Find/firmware_analysis/GE_F650-192.168.0.232也是相对与系统的。所以为了排除是相对于系统的,那么我做了一个新的测试,发现使用了chroot之后,确实只是相对于指定为根目录的那个文件夹的相对路径。