有些情況,我們會想要把 BeagleBone Black(BBB) 內建 eMMC 的資料讀取出來備份,甚至是寫入到另一塊 BBB 中。可以透過以下幾個簡單的步驟可以完成這件事。
備份 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
Hi, very nice website, cheers!
——————————————————
Need cheap and reliable hosting? Our shared plans start at $10 for an year and VPS plans for $6/Mo.
——————————————————
Check here: https://www.reliable-webhosting.com/