BPI_R1使用chroot切换镜像

作者: PokeBox
上传时间为: 2014-11-15 07:51 PM
2014-11-15
阅读:

由于当前香蕉派的系统还并不完善,要使用其他的资源限制非常的多,并且由于设备启动的配置文件问题,使用其他的系统兼容性非常差。所以当前只能从现有的安卓系统镜像入手。那么我就来分享一下基于安卓系统下运行其他镜像。

首先思路就是chroot。利用chroot切换系统运行环境。

方法如下:插入其他系统镜像,并挂载。

比如烧写了openwrt的镜像在U盘,那么我们就把U盘插到BPI-R1的USB口,然后挂载它。

挂载后,用chroot跳转到挂载点并运行bash解释器。

初始化新运行环境

正常使用设备。

具体命令如下:

mkdir -p /mnt/openwrt		#创建一个空目录用于挂载
mount /dev/sda2 /mnt/openwrt	#挂载设备镜像到目录
chroot /mnt/openwrt bash	#切换系统环境到镜像并运行bash解释器
mount -a			#初始化设备映射点
sync				#同步数据
这里需要讲的主要就是在使用chroot来切换镜像点的时候如果使用命令不正常,那么可能是你忘记mount -a来挂载像/proc这类的特殊目录了;

还有就是如果在dev下找不到主系统对应的设备的话,可以在chroot之前先手动把主系统下的dev挂载到镜像里的dev目录,这样就能完美使用设备的硬件了。

方法就是把下面的命令在chroot前运行:

mount /dev /mnt/openwrt/dev
以及需要注意的是,有一些镜像在/etc/fstab里没有写tmp临时目录的挂载,这会导致存储设备频繁的读写,所以我们可以手动mount内存到tmp临时目录,这样就可以避免存储设备的频繁读写,并且把RAM内存挂载到tmp还可以提升系统临时缓存的读写速度,提高系统运行的效率。

代码如下:

 mount -t tmpfs tmpfs /tmp
当然你也可以把设备添加到etc/fstab里,这样下次就可以直接用mount -a全部自动挂载而不用单独挂载了。
tmpfs   /tmp   tmpfs   defaults     0   0

当然,不止是BPI_R1,所有的Linux设备都是如此。你都可以利用chroot来切换系统环境运行其他镜像,当然前提是镜像需要和你的CPU架构一致,否则是无法运行的。

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示