2013年12月24日火曜日

Raspberry Pi のrootfsをUSB HDDにする

Raspberry Piを使って、VPN + Asterisk 環境を作った。 持続運用のために、寿命問題があれこれある(らしい)SDカードは/bootのみにし、rootfsを外付けUSB HDDに移行する。
HDDは、どっかに転がっていた40GBのHITACHIのもの。
ls /dev/disk/by-id/ |grep HITACHI
usb-HITACHI__DK23DA-40-0:0
だそうだ。

なお、外付けHDDだと電流容量が足らないので、別途、ボードの改良が必要だが、これは別記事で。


 Raspberry Piのフォーラムに、その手順がわかりやすく書いてあるので、それに従う。以下はすべてsudoでの設定。

  1.  fdisk -l で外付けHDDのデバイス名を確認。
  2.  fdisk /dev/sda
  3.  pコマンドとtコマンド(83)で、36GのLinux用パーティション作成(/dev/sda1)
  4.  pコマンドとtコマンド(82)で、残りをswapファイル化(/dev/sda2)。ただし、これは使わないと思うので、とりあえず作っておくだけ。
  5.  mkfs.ext4 /dev/sda1
  6.  mkswap /dev/sda2
  7.  rootfsの/dev/mmcblk0p2を/dev/sda1に複写 dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=32M conv=noerror,sync
  8.  (結果)7918845952 バイト (7.9 GB) コピーされました、 627.023 秒、 12.6 MB/秒
  9.  e2fsck -f /dev/sda1
  10. Free blocks count wrong (1290954, counted=1290920)、Free inodes count wrong (390626, counted=390618) なのでそれぞれyesでmodifyした上で、再度e2fsck発行してチェック
  11. resize2fs /dev/sda1でパーティション全体を利用拡張
  12. とりあえず/tmp/bに/dev/sda1をマウントして、確認。
     /dev/sda1         36G  2.3G   32G    7% /tmp/b

以上で、HDDの設定自体は終わり。

次にboot関係設定の変更と、fstabでのマウント設定を修正する。

  1. cp /boot/cmdline.txt /boot/cmdline.org
  2. nano /boot/cmdline.txt で、/dev/mmcblk0p2を/dev/sda1に変更

つぎにHDD側のfstabを変更(上では/tmp/b にマウント済みなのでそれに従う)。

  1. nano /tmp/b/etc/fstab で、/dev/mmcblk0p2を/dev/sda1に変更。

以上。

あとは、うまく行きますようにと念じて
  1. sync;sync;reboot

うまく行ったみたい。
ログイン後のdf -h結果

rootfs            36G  2.3G   32G    7% /
/dev/root         36G  2.3G   32G    7% /
devtmpfs         211M     0  211M    0% /dev
tmpfs             44M  232K   44M    1% /run
tmpfs            5.0M     0  5.0M    0% /run/lock
tmpfs             88M     0   88M    0% /run/shm
/dev/mmcblk0p1    56M   19M   38M   34% /boot

0 件のコメント:

コメントを投稿