Looking to make a complete clone / backup of my eMMC to an SD card


Recommended Posts

My plan is as follows:

- Insert SD card.

- Make a clone / back-up of boot and system using armbian-config whenever I'm about to do something major. (boot and system are both on eMMC)

- "unclick" SD card and leave it in the back.

- (repeat, until something breaks, and then just insert it and restore using armbian-config if something goes wrong.)

 

I am confused by the eMMC to SD card path though.

 

Here's some context:

❯ lsblk
NAME         MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0          7:0    0  86.6M  1 loop /snap/core/10578
loop1          7:1    0 178.2M  1 loop /snap/microk8s/1866
loop2          7:2    0  86.6M  1 loop /snap/core/10585
sda            8:0    0 931.5G  0 disk
├─bcache0    253:0    0   9.1T  0 disk /mnt/storage
├─bcache1    253:128  0   9.1T  0 disk
├─bcache2    253:256  0   9.1T  0 disk
└─bcache3    253:384  0   9.1T  0 disk
sdb            8:16   0   9.1T  0 disk
└─bcache0    253:0    0   9.1T  0 disk /mnt/storage
sdc            8:32   0   9.1T  0 disk
└─bcache1    253:128  0   9.1T  0 disk
sdd            8:48   0   9.1T  0 disk
└─bcache3    253:384  0   9.1T  0 disk
sde            8:64   0   9.1T  0 disk
└─bcache2    253:256  0   9.1T  0 disk
mmcblk1      179:0    0  14.6G  0 disk
└─mmcblk1p1  179:1    0  14.4G  0 part /
mmcblk1boot0 179:32   0     4M  1 disk
mmcblk1boot1 179:64   0     4M  1 disk
mmcblk0      179:96   0  59.5G  0 disk
└─mmcblk0p1  179:97   0  59.5G  0 part
zram0        251:0    0   1.9G  0 disk [SWAP]
zram1        251:1    0    50M  0 disk /var/log
❯ ls -l /sys/block/
total 0
lrwxrwxrwx 1 root root 0 Jan  5 11:46 bcache0 -> ../devices/virtual/block/bcache0
lrwxrwxrwx 1 root root 0 Jan  5 11:46 bcache1 -> ../devices/virtual/block/bcache1
lrwxrwxrwx 1 root root 0 Jan  5 11:46 bcache2 -> ../devices/virtual/block/bcache2
lrwxrwxrwx 1 root root 0 Jan  5 11:46 bcache3 -> ../devices/virtual/block/bcache3
lrwxrwxrwx 1 root root 0 Jan  5 11:46 loop0 -> ../devices/virtual/block/loop0
lrwxrwxrwx 1 root root 0 Jan  5 11:46 loop1 -> ../devices/virtual/block/loop1
lrwxrwxrwx 1 root root 0 Jan  5 11:46 loop2 -> ../devices/virtual/block/loop2
lrwxrwxrwx 1 root root 0 Jan  5 11:46 loop3 -> ../devices/virtual/block/loop3
lrwxrwxrwx 1 root root 0 Jan  5 11:46 loop4 -> ../devices/virtual/block/loop4
lrwxrwxrwx 1 root root 0 Jan  5 11:46 loop5 -> ../devices/virtual/block/loop5
lrwxrwxrwx 1 root root 0 Jan  5 11:46 loop6 -> ../devices/virtual/block/loop6
lrwxrwxrwx 1 root root 0 Jan  5 11:46 loop7 -> ../devices/virtual/block/loop7
lrwxrwxrwx 1 root root 0 Jan  5 19:38 mmcblk0 -> ../devices/platform/fe320000.mmc/mmc_host/mmc0/mmc0:aaaa/block/mmcblk0
lrwxrwxrwx 1 root root 0 Jan  5 11:46 mmcblk1 -> ../devices/platform/fe330000.sdhci/mmc_host/mmc1/mmc1:0001/block/mmcblk1
lrwxrwxrwx 1 root root 0 Jan  5 11:46 mmcblk1boot0 -> ../devices/platform/fe330000.sdhci/mmc_host/mmc1/mmc1:0001/block/mmcblk1/mmcblk1boot0
lrwxrwxrwx 1 root root 0 Jan  5 11:46 mmcblk1boot1 -> ../devices/platform/fe330000.sdhci/mmc_host/mmc1/mmc1:0001/block/mmcblk1/mmcblk1boot1
lrwxrwxrwx 1 root root 0 Jan  5 11:46 sda -> ../devices/platform/f8000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ata1/host0/target0:0:0/0:0:0:0/block/sda
lrwxrwxrwx 1 root root 0 Jan  5 11:46 sdb -> ../devices/platform/f8000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ata2/host1/target1:0:0/1:0:0:0/block/sdb
lrwxrwxrwx 1 root root 0 Jan  5 11:46 sdc -> ../devices/platform/f8000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ata3/host2/target2:0:0/2:0:0:0/block/sdc
lrwxrwxrwx 1 root root 0 Jan  5 11:46 sdd -> ../devices/platform/f8000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ata4/host3/target3:0:0/3:0:0:0/block/sdd
lrwxrwxrwx 1 root root 0 Jan  5 11:46 sde -> ../devices/platform/f8000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/ata5/host4/target4:0:0/4:0:0:0/block/sde
lrwxrwxrwx 1 root root 0 Jan  5 11:46 zram0 -> ../devices/virtual/block/zram0
lrwxrwxrwx 1 root root 0 Jan  5 11:46 zram1 -> ../devices/virtual/block/zram1
lrwxrwxrwx 1 root root 0 Jan  5 11:46 zram2 -> ../devices/virtual/block/zram2

 

image.png.8ca64752f0696acb1ce2d38b1add6973.png

 

❯ sudo cat /etc/fstab
# <file system>                                 <mount point>   <type>  <options>                                                       <dump>  <pass>
tmpfs                                           /tmp            tmpfs   defaults,nosuid                                                 0       0
UUID=67ef9041-8705-49af-9bff-748ee9580b57       /               ext4    defaults,noatime,nodiratime,commit=600,errors=remount-ro,x-gvfs-hide    0       1
UUID=a27e49e9-329b-4bba-a6d3-ec5b23148e6c       /mnt/storage    btrfs   defaults                                                        0       2

 

- mmcblk0 is the SD card.

- mmcblk1 is the eMMC, and is my boot.

 

- What should I be clicking in armbian-config to clone my boot and system to the sd card?

- Is there an alternative recommendation for making a backup?

 

Any other recommendations?

 

Thank you very much!

Edited by Zageron
clarification
Link to post
Share on other sites
Armbian is a community driven open source project. Do you like to contribute your code?

14 hours ago, Zageron said:

What should I be clicking in armbian-config to clone my boot and system to the sd card?


This function does not exists. Also implementation is questionable since code quality of this app is not the best which is why we planned long time ago to write this application from scratch and perhaps implement backup functionality ... but we just throw away insane amount of our money and got nowhere. This task sadly exceeds our resources - we can't afford to cover.

 

14 hours ago, Zageron said:

Is there an alternative recommendation for making a backup?

 

Proper easy way? No. But why you want to clone image? Use Ansible or similar to recreate your system on top of clean Armbian image, backup data.

 

We are only interested in a solution for all boards - specifically for this one, we don't care. In ARM world, there are little standards and each hardware can have its own way of booting which you need to make use of. Well, we could do this once by the end of the year if you cover R&D expenses, but we have no plans to donate to build a backup application for you. Users already created a wishlist for several million dollars worth of work while we fund this project with our private cash.

Link to post
Share on other sites

@Zageron You could boot in recovery mode in order to expose the Heliso64 eMMC as USB Mass Storage device to a PC connected to Helios64 via the USB-C port.

Then on your PC use a tool to clone the exposed USB Storage device. You can use dd for example.

 

dd bs=4M if=/dev/sdb | gzip > image1-`date +%d%m%y`.img.gz

 

Replace /dev/sdb by the path of the exposed USB storage device. But there are many other tools and way to clone, you can find tutorial.

 

The day you need to revert to an old backup you can use again use the recovery mode but this time you burn your backup image to the exposed USB Mass Storage (the eMMC of Helios64).

Link to post
Share on other sites