2014年1月1日水曜日

BeagleBone BlackのrootfsをUSB HDDにする

Raspberry Pi のrootfsをUSB HDDにするの姉妹記事。 RaspiもBBBもSDの耐久力が不安。BBBだと http://www.embeddedhobbyist.com/debian-tips/beaglebone-black/beaglebone-black-usb-boot/ のような記事がある。 そこでUSB HDDにrootfsを移行する。

rootfsのイメージは、ddコマンドでhddに書き込む。上の記事では/rootfsのtarを展開するようになっているが、こちらの方が移行が楽だ。

以下手順を書く。(すべてsudoでの作業)。
uname -a
Linux bbbb 3.8.13-bone31 #1 SMP Wed Dec 4 16:43:45 JST 2013 armv7l armv7l armv7l GNU/Linux

hddの領域作成とrootfs複写

  1. 適当なUSB HDD入手(IDEのusb-TOSHIBA_MK4018GAS-0:0だった)。
  2. BBBの単体電源では稼働は(ほとんど)無理。セルフパワーのUSB HUBにつなぐ。
  3. lsblk でデバイス名確認。/dev/sda
  4. fdisk /dev/sda
  5. pコマンドで全領域にパーティション
  6. t(83)でLinux
  7. mkfs.ext4 /dev/sda1
  8. 下記コマンドでSDのrootfsをhddに複写
  9. dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=32M conv=noerror,sync
  10. 結果:471+1 レコード入力 、472+0 レコード出力、15837691904 バイト (16 GB) コピーされました、 1120.15 秒、 14.1 MB/秒
  11. e2fsck -f /dev/sda1 (ファイルチェック)
  12. mkdir /tmp/a ; mount /dev/sda1 /tmp/a
  13. ls -l /tmp/a で確認
  14. umount /tmp/a
  15. resize2fs /dev/sda1 (hddパーティション全域利用を可能にする)
  16. mount /dev/sda1 /tmp/a
  17. df -h

SDの/boot/uboot/uEnv.txt 書き換え

  • cd /boot/uboot cp 
  • uEnv.txt uEnv.txt.org 
  • uEnv.txtを編集
diff uEnv.txt.org uEnv.txt
11c11
< mmcroot=/dev/mmcblk0p2 ro
---
> mmcroot=/dev/sda1 ro

hdd側fstabの変更

(/tmp/aに/dev/sda1がマウントされているとする)。

  • cd /tmp/a/etc
  • cp fstab fstab.org
  • fstab編集
diff fstab.org fstab
2c2
< /dev/mmcblk0p2   /           auto   errors=remount-ro   0   1
---
> /dev/sda1   /           auto   errors=remount-ro   0   1

rebootで確認


sync;sync;reboot
ログインOK
touch /forcefsck
reboot
ログインOK
df -h
/dev/sda1        37G  3.4G   32G  10% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
devtmpfs        248M  4.0K  248M   1% /dev
none             50M  244K   50M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            248M     0  248M   0% /run/shm
none            100M     0  100M   0% /run/user
以上。

0 件のコメント:

コメントを投稿