linux备份和恢复分区命令

获取分区参数

1
2
3
4
emmc=[需要备份的分区]
intsize=$(fdisk -s /dev/$emmc)
image=BACKUP-arm-64-emmc.img
OUTDIR=[备份存放位置]

备份

1
dd if=/dev/$emmc | pv -s $intsize"K" | gzip > $OUTDIR/$image.gz

恢复

1
gunzip -c $OUTDIR/$image.gz | pv -s $intsize"K" | dd of=/dev/$emmc

备份实例

1
2
3
4
5
6
7
8
#!/bin/bash
emmc=mmcblk1
intsize=$(fdisk -s /dev/$emmc)
image=BACKUP-arm-64-emmc.img
OUTDIR=/mnt
#dd if=/dev/mmcblk1boot0 of=/mnt/mmcblk1boot0.img
#dd if=/dev/mmcblk1boot1 of=/mnt/mmcblk1boot1.img
dd if=/dev/$emmc | pv -s $intsize"K" | gzip > $OUTDIR/$image.gz

如果没有fdisk和pv命令,则

1
2
3
4
5
#!/bin/bash
emmc=mmcblk0
image=BACKUP-emmc.img
OUTDIR=/mnt
dd if=/dev/$emmc | gzip > $OUTDIR/$image.gz

恢复实例

1
2
3
4
5
6
7
8
9
#!/bin/bash
emmc=mmcblk1
intsize=$(fdisk -s /dev/$emmc)
image=BACKUP-arm-64-emmc.img
OUTDIR=/mnt
#dd if=/dev/$emmc | pv -s $intsize"K" | gzip > $OUTDIR/$image.gz
#dd of=/dev/mmcblk1boot0 if=/mnt/mmcblk1boot0.img
#dd of=/dev/mmcblk1boot1 if=/mnt/mmcblk1boot1.img
gunzip -c $OUTDIR/$image.gz | pv -s $intsize"K" | dd of=/dev/$emmc

如果没有fdisk和pv命令,则

gunzip -c $OUTDIR/$image.gz | dd of=/dev/$emmc

1
2
3
4
#!/bin/bash
emmc=mmcblk0
image=BACKUP-emmc.img
OUTDIR=/mnt