我想在Raspberry Pi上使用i386
和QEMU
创建chroot
环境。
我正在使用Raspberry Pi ver B,但是我认为使用哪个版本都没关系。
到目前为止,我做到了:
apt-get install qemu qemu-user qemu-user-static binfmt-support debootstrap binutils
然后我将chroot
目录安装到/tmp/mnt
并运行:
sudo debootstrap --foreign --arch i386 buster ./ http://deb.debian.org/debian/
然后我挂载:
mount -t sysfs /sys /tmp/mnt/sys/
mount -t proc /proc /tmp/mnt/proc/
mount –bind /dev /tmp/mnt/dev/
mount –bind /dev/pts /tmp/mnt/dev/pts/
mount –bind /dev/shm /tmp/mnt/dev/shm/
现在,当我尝试运行debootstrap
的第二阶段时:
sudo chroot ./ ./debootstrap/debootstrap --second-stage
我收到以下错误消息:
W: Failure trying to run: /sbin/ldconfig
W: See //debootstrap/debootstrap.log for details
我检查了debootstrap/debootstrap.log
:
qemu: uncaught target signal 11 (Segmentation fault) - core dumped
Segmentation fault
实际上,当我尝试sudo chroot ./ ./sbin/ldconfig
时,遇到相同的Seg错误。
但是当我尝试sudo chroot ./ ./bin/bash
时,它会起作用。
我不确定下一步应该做什么。
我想这与我的qemu配置或版本有关(我正在使用version 2.8.1(Debian 1:2.8+dfsg-6+deb9u4)
)。我检查了许多有关类似问题的线程,但找不到能帮助我找到解决方案的线程。
答案 0 :(得分:2)
好的,我想我明白了。
当我在stretch
命令中选择debootstrap
作为Debian版本时,它可以工作。
sudo debootstrap --foreign --arch i386 stretch ./ http://deb.debian.org/debian/
现在,当我考虑得更多时,这是有道理的。我猜想在chroot中运行i386 Debian不能与主机操作系统完全隔离(我安装了proc
,sys
等)。
答案 1 :(得分:1)
我在运行Raspbian Buster时遇到了完全相同的问题;更改Debian Stretch时问题消失了。
所以从某种意义上讲,i386存储库中的ldconfig不能与qermu-i386-static模拟器一起使用,但是可以在拉伸状态下工作!
与主机系统无关。...