BeagleBone Black eMMCのディスクイメージのバックアップ

NFC経由でeMMCのディスクイメージを母艦(ゲストOS)にバックアップすることを試みる。(クライアント側で実行)
すごく時間がかかる。

debian@beaglebone:~$ ls -la /dev/ | grep mmcblk
brw-rw---T   1 root floppy  179,   0 Jan  1  2000 mmcblk0
brw-rw---T   1 root floppy  179,   1 Jan  1  2000 mmcblk0p1
brw-rw---T   1 root floppy  179,   2 Jan  1  2000 mmcblk0p2
brw-rw---T   1 root floppy  179,   5 Jan  1  2000 mmcblk0p5
brw-rw---T   1 root floppy  179,   6 Jan  1  2000 mmcblk0p6
brw-rw---T   1 root floppy  179,   8 Jan  1  2000 mmcblk1
brw-rw---T   1 root floppy  179,  16 Jan  1  2000 mmcblk1boot0
brw-rw---T   1 root floppy  179,  24 Jan  1  2000 mmcblk1boot1
brw-rw---T   1 root floppy  179,   9 Jan  1  2000 mmcblk1p1
brw-rw---T   1 root floppy  179,  10 Jan  1  2000 mmcblk1p2
lrwxrwxrwx   1 root root           9 Jan  1  2000 root -> mmcblk0p5

debian@beaglebone:~$ dd if=/dev/mmcblk1 of=/mnt/hostnfs/bbb_emmc.img

これで一応当初の目標の一つであった、eMMCのディスクイメージのバックアップが完了した。
最悪eMMCの内容を(論理的に)破壊してしまってもこのバックアップの内容にまでは戻せる。
実際に実行はしていないが、バックアップの内容を戻すには以下とする。(未確認)

debian@beaglebone:~$ sudo dd if=/mnt/hostnfs/bbb_emmc.img of=/dev/mmcblk1

eMMCの内容を破壊する場合とは、大抵激しい人為ミスであるわけであるからバックアップは転ばぬ先の杖。
それ以外の効用として、bbb_emmc.imgを母艦(ゲストOS)でloop-back deviceとしてファイルシステムの マウントが行える事が大きい。
BBBを立ち上げなくても、母艦(ゲストOS)でBBBの設定を見る事ができる。

サーバー側でバックアップしたemmcのディスクイメージファイルをマウントしてみる。(サーバー側で実行)

temp-host@temp-host:~$ cd ~/nfsroot/
temp-host@temp-host:~$ fdisk -l bbb_emmc.img 

ディスク bbb_emmc.img: 3867 MB, 3867148288 バイト
ヘッド 4, セクタ 16, シリンダ 118016, 合計 7553024 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0x00000000

 デバイス ブート      始点        終点     ブロック   Id  システム
bbb_emmc.img1   *        2048      198655       98304    e  W95 FAT16 (LBA)
bbb_emmc.img2          198656     7553023     3677184   83  Linux

temp-host@temp-host:~$ sudo mkdir /mnt/loop1
temp-host@temp-host:~$ sudo mkdir /mnt/lppp2
temp-host@temp-host:~$ sudo mount bbb_emmc.img /mnt/loop1/ -o loop,offset=$((512*2048))
temp-host@temp-host:~$ sudo mount bbb_emmc.img /mnt/loop2/ -o loop,offset=$((512*198656))

temp-host@temp-host:~$ ls -la /mnt/loop1/
合計 9836
drwxr-xr-x 8 root root   16384  1月  1  1970 .
drwxr-xr-x 3 root root    4096  6月 22 01:57 ..
drwxr-xr-x 2 root root    2048  4月 23 16:22 App
drwxr-xr-x 4 root root    4096  4月 23 16:22 Docs
drwxr-xr-x 5 root root    2048  4月 23 16:22 Drivers
-rwxr-xr-x 1 root root      51  4月 23 16:22 ID.txt
-rwxr-xr-x 1 root root   41174  4月 23 16:22 LICENSE.txt
-rwxr-xr-x 1 root root   81264  4月 23 20:21 MLO
-rwxr-xr-x 1 root root   16822  4月 23 16:22 README.htm
-rwxr-xr-x 1 root root     292  4月 23 16:22 README.md
-rwxr-xr-x 1 root root     313  4月 23 16:22 SOC.sh
-rwxr-xr-x 1 root root   16822  4月 23 16:22 START.htm
-rwxr-xr-x 1 root root     223  4月 23 16:22 autorun.inf
drwxr-xr-x 2 root root    2048  4月 23 20:21 debug
drwxr-xr-x 2 root root    2048  4月 23 16:22 dtbs
-rwxr-xr-x 1 root root 2870015  4月 23 20:21 initrd.img
drwxr-xr-x 2 root root    2048  4月 23 16:22 scripts
-rwxr-xr-x 1 root root  401800  4月 23 20:21 u-boot.img
-rwxr-xr-x 1 root root    1430  4月 23 20:24 uEnv.txt
-rwxr-xr-x 1 root root 2870079  4月 23 20:21 uInitrd
-rwxr-xr-x 1 root root 3717760  4月 23 16:22 zImage

temp-host@temp-host:~$ sudo umount /mnt/loop1

LinuxではLoop-back deviceとしてディスクイメージを自在にマウントでき、過去のディスクイメージの バックアップ/スナップショットを参照できる事は非常に有用である。

タイトルとURLをコピーしました