2014年8月22日金曜日

raspberry piでroot file systemを2T以上のUSB HDDに移動する

raspberry piでroot file systemを2T以上のUSB HDDに移動するには、以下の手順を実行します。
ログ出力などすべてHDDに出力することによりSDカードを延命化できます。

Root filesystemのUSB HDD移行手順

1.(すでにmountされている場合)unmount
sudo umount /dev/sda1
2. パーティション作成
※ディスク丸ごとを1つのパーティションにする場合。
sudoparted /dev/sda
mklabel gpt
mkpart primary ext4 0 -1s
quit
3. ext4 file system作成
sudo mkfs.ext4 /dev/sda1
4. mountする
cd /media
sudo mkdir usbhdd
sudo mount /dev/sda1 /media/usbhdd
df -h
5. sdカード内容をコピー
※必要に応じてrsyncインストール。
sudo apt-get install rsync 
sudo rsync -axv / /media/usbhdd
6.起動時設定
sudo vi /boot/cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/sda1 
rootfstype=ext4 elevator=deadline rootwait rootdelay=10
※rootを/dev/sda1に変更とrootdelay追加

/etc/fstabで「/」のデバイスを/dev/sda1に修正します。
sudo vi /media/usbhdd/etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/sda1  /               ext4    defaults,noatime  0       1
#/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, so no using swapon|off 
from here on, use  dphys-swapfile swap[on|off]  for that
※ /bootのデバイスはRaspbianのバージョンによって異なります(StretchなどではPARTUUID...となっています)。

7.再起動
sudo reboot

※2018/08/21追記 - Raspbian Stretch Lite (version : 2018 June)での上記手順を実行することができます。
※2020/07/13追記 - Raspbian Busterでも上記手順を実行することができます。