在beaglebone硬件上,我想从一个带有极简主义busybox系统(/ dev / mmcblk0p2)的分区开始,在包含更完整的Linux系统的另外两个分区(/ dev / mmcblk0p5&/ dev / mmcblk0p6)上运行一些检查(Angström ),然后根据这些testing从2个Linux系统中的一个启动。
问题是,我无法find如何从busybox正确启动另一个系统。
我做了什么:
从(完美工作)busybox系统:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin mount -t sysfs sysfs /sys mkdir -p /dev/pts mount -t devpts devpts /dev/pts mount /dev/mmcblk0p5 /mnt/root
然后我尝试了两种方法:
pivot_root
cd /mnt/root pivot_root . ./initrd ./bin/mount -n --move ./initrd/sys ./sys ./bin/mount -n --move ./initrd/proc ./proc ./bin/mount -t devtmpfs none ./dev ./bin/mount -n --move ./initrd/dev/pts ./dev/pts exec ./usr/sbin/chroot . ./sbin/init < ./dev/ttyO0 > ./dev/ttyO0 2>&1
这给出了以下错误:
Couldn't find an alternative telinit implementation to spawn.
然后它会启动一个新的Angströmlogin提示符,但login后,任何对“init”的调用都会返回上述错误,而系统不起作用(例如,如果我调用“reboot”,则失败;如果我打电话“killall busybox”,它会触发重新启动)。
我尝试没有“./usr/sbin/chroot。”,它给出了相同的结果。
switch_root
exec switch_root -c /dev/ttyO0 /mnt/root /mnt/root/sbin/init
这给了我一个新的busyboxlogin提示,我仍然在busybox分区
任何想法我做错了什么? 我错过了一个步骤? 任何参数,我忘了考虑到或任何方法,看看有什么错误的更多细节?