BeagleBone Black eMMC 的資料讀出與回存

有些情況,我們會想要把 BeagleBone Black(BBB) 內建 eMMC 的資料讀取出來備份,甚至是寫入到另一塊 BBB 中。可以透過以下幾個簡單的步驟可以完成這件事。

black_hardware_details

備份 eMMC

準備一張至少 4GB 大小的 MicroSD,並建立 FAT32 分割區。若是用可讓 BBB 開機的 micro SD 也行。下載  beagleboneblack-save-emmc.zip 或是也可由本站分流下載。將下載的檔案接壓縮後,全部丟到 micro SD 當中,並使用此 micro SD 開機(按壓住 S2 按鍵然後再送電),就會自動地將 eMMC 備份到 micro SD 當中,名為 BBB-eMMC-$RANDOM.img.gz 的檔案,其中 $RANDOM 是個隨機數值。

檔案概述

這個壓縮檔包含了預先編譯的幾個檔案:MLO, uboot, uImage(kernel), uEnv.txt, dtbs, 與一個 autorun.sh script。主要的重點在於 autorun 的個 scrupt

#!/bin/sh
echo timer > /sys/class/leds/beaglebone\:green\:usr0/trigger

#un-comment the following line to perform a backup
#此為備份 eMMC 用
dd if=/dev/mmcblk1 bs=16M | gzip -c > /mnt/BBB-eMMC-$RANDOM.img.gz

#un-comment the following 6 lines to perform a restore (be sure to replace XXXXX with your image name)
#此為還原 eMMC 用
#gunzip -c /mnt/BBB-eMMC-XXXXX.img.gz | dd of=/dev/mmcblk1 bs=16M
#UUID=$(/sbin/blkid -c /dev/null -s UUID -o value /dev/mmcblk1p2)
#mkdir -p /mnt
#mount /dev/mmcblk1p2 /mnt
#sed -i "s/^uuid=.*\$/uuid=$UUID/" /mnt/boot/uEnv.txt
#umount /mnt

sync
echo default-on > /sys/class/leds/beaglebone\:green\:usr0/trigger

 

還原 eMMC

使用相同的 micro SD,將前述的 autorun.sh 中還原 eMMC 部分的 script 取消註解,並註解掉備份的指令。同時修改

gunzip -c /mnt/BBB-eMMC-XXXXX.img.gz | dd of=/dev/mmcblk1 bs=16M

其中 XXXXX 為當初備份的實際亂數名稱。

一樣將 micro SD 插入 BBB 按壓 S2 按鍵不放並且送電,就會將當初備份的 eMMC 完整還原回去了!

Reference

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *


6 + 一 =

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>