启动SD卡 包含2个分区,BOOT分区和文件系统分区。BOOT分区采用FAT32格式,可以在windows下读写。而根文件系统采用EXT4格式,只能在linux/unix下读写。
BOOT分区根目录下有4个文件。
BOOT.bin BOOT引导
devicetree.dtb 设备树文件
uEnv u-boot环境设置。包括串口设置,IP地址,ramdisk地址,FDT地址。
uImage linux映像
备份过程,先将SD卡分区,然后分别备份BOOT区和文件系统分区。
1.SD卡分区
有多种工具,此处使用DiskGenius V4.9.6。
插入一个新的U盘,打开DiskGenius查看,如上图。
选择“可移动硬盘(H:)”,右键选择删除当前分区,点击“是”。千千万万注意,别选错把硬盘分区删了!
然后点击移动硬盘,在菜单选择“分区(P)”->"建立新分区(N)"。分区类型选择主磁盘分区,文件系统类型选择FAT32,设置分区大小。然后“确定”。
然后在在剩余空间中创建新分区。在界面中间点击“空闲”,出现红色框,右键点击“创建新分区”。
分区类型选择主磁盘分区,文件系统类型选择EXT4,设置分区大小。然后“确定”。
至此,2个分区划分完成。
下面,保存分区设置。在菜单点击"保存更改",则保存分区配置。提示是否进行格式化,可选择“是”,自动进行格式化。
也可以选“否”,手动进行格式化,点击相应分区,然后右键选择“格式化当前分区”即可。
完成后,可以手动修改卷标。点击相应分区,然后右键选择“设置卷标(V)”即可。
2.BOOT区备份
在Windows系统下,将老的SD卡BOOT区下的4个文件复制,再copy到新的SD卡BOOT区即可。在Windows下看不到linux分区,只能看到FAT32分区。
3.根文件系统区备份
根文件系统在linux分区,在linux/unix系统下操作较为方便。此处使用的是ubuntu 18.04(安装在虚拟机VMware下),可用sudo lsb_release -a命令查看ubuntu版本。
先将老的SD卡的根文件系统分区挂接到本机ubuntu系统/mnt目录,然后将其内容打包压缩保存。
再将新的SD卡的根文件系统分区挂接到本机ubuntu系统/mnt目录,然后将前面的打包压缩文件解压缩到/mnt。
(1)老的SD卡根文件系统备份
将老的SD卡插入,VMware界面中选择“虚拟机-> Super Top Mass Storage Device->连接(断开与主机的连接)(C)”,点击“确定”。
在ubuntu界面下输入sudo fdisk -l 确认USB接入。 如下图, /dev/sdb1是FAT32分区,/dev/sdb2是Linux分区。
输入sudo mount /dev/sdb2 /mnt 将Linux分区挂接到/mnt目录。
进入根目录,输入sudo tar -cvpf rootfs.tar /mnt命令将mnt目录打包,命名为rootfs.tar,放到当前目录。 此操作只打包,如果需要压缩可以参见tar命令帮助tar --help。
然后用sudo umount /mnt取消SD卡分区与mnt目录的挂接。
(2)根文件系统备份复制到新SD卡
新SD卡接入ubuntu系统,挂接/mnt与前面相同。
输入sudo tar -xvf rootfs.tar命令将打包文件解开,放到mnt目录中。
进入/etc/init.d目录下,编辑S60user-init.sh,修改以下2行
echo "eth0:192.168.0.90"
ifconfig eth0 192.168.0.90
IP地址可自行设定,避免新老SD卡地址冲突。
可使用vi命令进行编辑,如果是只读文件,可用chmod命令修改权限。
然后用sudo umount /mnt取消SD卡分区与mnt目录的挂接。