NanoPi NEO Air内EMMC系统克隆至全新的SD卡

前言

  • NanoPi NEO Air wiki中提供了各种系统固件基于friendlycore系统,在开发过程中我们往往需要往系统中安装各种需要的库、工具及执行文件,在这里希望能够打包成一个镜像方便烧写至其他NanoPi NEO Air的板子。

准备工作

  • 按照wiki使用win32diskimager将nanopi-neo-air_eflasher_friendlycore-xenial_4.14_armhf_YYYYMMDD.img.zip烧写至SD卡
  • 将SD卡插入板端重启,通过eflasher指令烧写至EMMC
  • 断电拔卡重启可以看到系统到正常启动,现在可以在系统中一顿操作安装各种需要的功能…

克隆EMMC内系统

克隆系统到SD卡

  • 将刚才制作好的SD卡格式化,插入电脑,用fdisk -l查看分区。例如/dev/sdc为SD卡分区(直接格式化主分区不用管sdc1\sdc2),记得先卸载

sudo mkfs.vfat -I /dev/sdc

  • SD卡插到板子上电,用fdisk -l -u查看分区和扇区使用情况,如下:
    在这里插入图片描述

  • 其中/dev/mmcblk0boot0、/dev/mmcblk0boot1、/dev/mmcblk0p1和/dev/mmcblk0p2为EMMC的扩展分区,BL1和BL2分别在/dev/mmcblk0boot0和/dev/mmcblk0boot1,内核存放在/dev/mmcblk0p1,rootfs存放在/dev/mmcblk0p2。Linux中提供了dd指令,那该如何使用dd克隆数据到SD卡呢,是否需要给SD建立同样的分区?答案是不需要,dd指令是按字节拷贝数据的,不需关注分区表,无所谓grub,还是ext4,btrfs,FAT32,对于dd来说只是数据。下面进行全盘拷贝

    dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=512 count=[fdisk命令中最大的end数+1]

其中/dev/mmcblk0主分区,/dev/mmcblk1为SD卡主分区,扇区大小512,有图可以知道count = 15269887+1

dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=512 count=15269888

克隆系统到文件

  • 考虑到内部EMMC存储空间有限,现将SD卡挂载到/media目录
  • dd if=/dev/mmcblk0 of=/media/nanopi_neo_air.img bs=512 count=[fdisk命令中最大的end数+1]
  • 接下来就可以用win32diskimager工具,或者dd烧写到其他的SD卡
    ps: 当然你也可以制作单个分区的文件,如/dev/mmcblk0p2,打包根文件系统
    dd if=/dev/mmcblk0p2 of=/media/rootfs.img bs=512 count=15138816

总结

  • 此方法完全是系统全盘拷贝,需要拷贝的数据过大,最好是利用busybox制作根文件系统,打包前添加自己想要的部分

问题求助

  • 全志原厂Linux-3.4 BSP编译生成的文件如何打包成刷机固件(ROM)
  • 尝试网址方法里busybox构建自己的文件系统,然后打包刷机包,发现NanoPi NEO Air的板载wifi无法工作,不知各位有没有知道还需要加载哪些模块或者有没有制作NanoPi NEO Air根文件系统的相关介绍
  • 如何从开发板中提取friendlycore的根文件系统及配合BSP生成的uboot、kernel打包自己刷机包img文件
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值