Chroot 到基于 ARM 的映像

Chroot 到基于 ARM 的映像

我正在尝试对树莓派的图像进行一些工作,但我无法访问树莓派本身,只能访问运行操作系统的 SD 卡。

我想 chroot 到 pi 的 SD 卡上(主要是为了运行一些 pip 命令),但是在使用 bash 时出现错误:

chroot: failed to run command ‘/bin/bash’: Exec format error

我认为这是因为这些程序是为 pi 的处理器编译的,而不是我的。

我唯一的想法是改变$PATH指向我的/bin,但我无法想象这是一种好的做法或以任何方式安全

有没有什么办法可以让它工作?

答案1

有可能的。

您需要qemu-user-static在 x86/x86_64 计算机上安装:

sudo apt-get install qemu-user-static

我们假设你的 rootfs 已挂载到/mnt

然后尝试:

sudo cp /usr/bin/qemu-arm-static /mnt/usr/bin/
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf

cd /mnt
sudo mount --bind /dev dev/
sudo mount --bind /sys sys/
sudo mount --bind /proc proc/
sudo mount --bind /dev/pts dev/pts

sed -i 's/^/#/g' /mnt/raspbian/etc/ld.so.preload
sudo chroot .
sed -i 's/^#//g' /mnt/raspbian/etc/ld.so.preload

相关内容