目录
(1)为系统新增两个分区D和E,D用来暂存文件系统,E用来生成文件系统
(6)通过ssh,将生成的ext4格式文件导出,它就是根文件系统
1、背景
使用核心板时,在系统(ubuntu)里会安装一些软件,为了批量化生成产品时,不用给每个产品都安装一遍软件,所以我们希望将定型的板载系统导出并生成根文件系统格式。
做上述操作的前提条件是板载系统有多余的空间去生成文件系统,当然,如果板子可以外接存储空间,也能搞定。如usb外接优盘。不幸的是当前产品在开发中,没有外接USB的需要。
2、思路
正在运行的系统,其系统文件一直在变化中,无法实时导出。因此需要在系统重启进入uboot时将现成的文件系统读取到DDR中,从DDR中将系统写入新增的第一个分区D中,最后系统起来后,把分区D中的系统当做根文件系统格式提取到新增的第二个分区E中。
按照上面的描述,我们的步骤大致分为这样几步:
(1)为系统新增两个分区D和E,D用来暂存文件系统,E用来生成文件系统
(2)系统重启进入uboot,给分区D格式化
(3)将文件系统导入DDR中
(4)从DDR中数据写入到上述分区D中
(5)进入系统挂载分区E,用dd命令提取系统到分区E中
(6)通过ssh,将生成的ext4格式文件导出,它就是根文件系统
3、步骤
(1)为系统新增两个分区D和E,D用来暂存文件系统,E用来生成文件系统
系统分区原先是这样的:
/dev/mmcblk0p1 32M 存放uboot
/dev/mmcblk0p2 1G 存放根文件系统
/dev/mmcblk0p3 6.3G 空闲分区
现在欲改成这样的:
/dev/mmcblk0p1 32M 存放uboot
/dev/mmcblk0p2 1G 存放根文件系统
/dev/mmcblk0p3 2G 空闲分区
/dev/mmcblk0p4 4.3G 空闲分区
上述/dev/mmcblk0p3 和/dev/mmcblk0p4 就是步骤中的分区D和分区E
# 系统下需要在分出一个mmcblk0p4,操作步骤如下
root@scm801:~# fdisk /dev/mmcblk0
Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/mmcblk0: 7.3 GiB, 7818182656 bytes, 15269888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: BAF032D5-208C-CB45-AE5D-2D7D5C94905E
Device Start End Sectors Size Type
/dev/mmcblk0p1 2048 67583 65536 32M Linux filesystem
/dev/mmcblk0p2 67584 2164735 2097152 1G Linux filesystem
/dev/mmcblk0p3 2164736 15269854 13105119 6.3G Linux filesystem
Command (m for help): d
Partition number (1-