6.OrangePi Zero系统镜像备份及修改制作

虽然标题写着OrangePi Zero,但以下方法几乎适用于各种平台下的IMG系统镜像的备份创建修改及制作

这里简单介绍以下系统镜像的备份及修改制作方法

最简单的方式

软件支持:win32diskimager
相信这个软件大家都会使用了,操作非常简单,新版本也支持了剔除未分配的空间,在映像文件中填入保存的文件位置及文件名,点击读取即可备份。

6.OrangePi Zero系统镜像备份及修改制作_第1张图片
1.png

Linux下dd备份

插入需要备份的系统盘到Linux系统的电脑,本例以虚拟机VirtualBox上的Debian系统为例,首先运行命令fdisk -l查看磁盘分区

6.OrangePi Zero系统镜像备份及修改制作_第2张图片
1.png

可以看到系统盘在/dev/sdb
整个磁盘备份:dd if=/dev/sdb of=/media/sf_Desktop/backup.img
单独分区备份:dd if=/dev/sdb1 of=/media/sf_Desktop/backup.img
命令解释:
if定义的是需要备份的磁盘或分区,of定义的是备份保存的位置及文件名,由于没有进度显示,请耐心等待至备份结束...

u-boot备份:dd if=/dev/sdb of=/media/sf_Desktop/u-boot.bin bs=1M count=1
命令解释:
u-boot可以理解为bootloader,即引导加载程序,存放在磁盘开头的1M中,如果不知道结束位置,就把整个备份了再说,bs=1M count=1即为磁盘sdb开头1M的容量,简单的说没这玩意系统无法启动。

Linux下tar备份

运行df命令,可以查看设备的具体挂载点

6.OrangePi Zero系统镜像备份及修改制作_第3张图片
2.png

可以看到设备 /dev/sdb1挂载在 /media/root/Armbian目录下
tar备份: tar -cvpzf /media/sf_Desktop/backup.tgz -C /media/root/Armbian .
命令解释:
-cvpzf为tar命令参数,内容较多这里不细展开,前面目录为备份保存的文件位置及文件名,后面的目录为需要备份的目录。

Linux下img镜像制作及修改

以下使用到的工具:
losetupkpartx
首先创建一个8G的空镜像:
dd if=/dev/zero of=/media/sf_Desktop/zero.img bs=1M count=8192
使用losetup工具将img镜像文件链接到loop设备上:
losetup /dev/loop0 zero.img
将之前备份的u-boot写入到zero.img镜像中:
dd if=u-boot.bin of=/dev/loop0
运行fdisk -l查看发现mbr并没有被覆盖
对镜像进行分区:
fdisk /dev/loop0
由于OrangePi Zero镜像只有一个分区,建立比较简单(如果是树莓派,需要建立2个分区)
n回车后基本一路回车搞定,最后按w保存分区表
ps.虚拟机下不知道为啥,得重启一次才可以正常看到保存的结果,所以完成这步骤后重启虚拟机
重启后继续将镜像链接到loop设备上losetup /dev/loop0 zero.img
运行kpartx挂载loop设备:
kpartx -av /dev/loop0
格式化分区:
mkfs.ext4 /dev/mapper/loop0p1
ps.虚拟机下又不知道为啥,得重启一次才可以正常看到操作的结果,所以完成这步骤后重启虚拟机
重启后继续将镜像链接到loop设备上:losetup /dev/loop0 zero.img
运行kpartx挂载loop设备:kpartx -av /dev/loop0
运行df,可以看到loop0p1被挂载在/media/root/下的一个文件夹内
使用tar恢复之前备份系统文件到镜像:
tar -xvpzf backup.tgz -C /media/root/挂载的文件夹名
解压结束后即完成了img镜像的制作。对于已经制作好的镜像如果需要修改的话链接到loop设备后再挂载到文件夹即可对镜像中的文件进行读写操作。

具体请看以下操作过程:


6.OrangePi Zero系统镜像备份及修改制作_第4张图片
1.gif

你可能感兴趣的:(6.OrangePi Zero系统镜像备份及修改制作)