Raspberry PiのシステムOSをUSBメモリに移動して起動させる
Raspberry Piは通常SDカード上にパーティションを作成して起動するのだが、より安価なUSBカードへOSを移動させて起動することにした。
参考にしたのはこちら
用意するのはUSBカードと起動用SDカード。起動用SDカードは64MB以上あればよいのだが、今時そんな小容量のSDカードなんか存在しないので、適当なものがあればそれでOK。それとカードリーダー2個。あとLinuxのgpartedが起動できるPC。SystemRescueCDかKNOPPIX等でもよい。というかこちらのほうが便利。
- linux PCかSystemRescueCDを起動させて、そこにカードリーダーを2個取り付けて、Raspberry PiのOS(Raspbian)がインストールしてあるSDカードと、新規に作成する起動用SDカードをそれぞれ挿入する。
- gpartedを起動して、OSがインストールしてあるSDカードのFATパーティションを起動用SDカードにコピーする。起動用SDカードにパーティションが存在していたら、事前に削除した後にコピーをする。
- 次にOSをコピーするUSBメモリを挿し、OSがインストールしてあるSDカードのExt4パーティションをUSBメモリにコピーする。SDカードのパーティションよりUSBメモリの容量が大きければそのままコピーできるが、USBメモリの容量が小さい場合は、事前にSDカードのExt4パーティションサイズをUSBメモリ以下にしておく必要がある。いずれも、この作業は時間が掛かる(私の場合、32GB程度で8時間近く掛かった(涙)必要に応じてパーティションを複数作成しておく。
- Raspberry Piにこれまで使っていたSDカードとUSBメモリの両方を挿して起動し、fdisk -lでデバイス名を確認しておく。私の場合は/dev/sda1となっていた
- USBメモリを一旦マウントして、USBメモリ上の/etc/fstabのルートパーティションの設定を変更した後にRaspberry Piをシャットダウン
% su
# mount -t ext4 /dev/sda1 /ext
# /mnt/etc/fstab#/dev/mmcblk0p2 / ext4 defaults,noatime 0 1
/dev/sda1 / ext4 defaults,noatime 0 1# umount /dev/sda1
# poweroff
- 起動用のSDカードをWindows PCに接続して、その中にあるcmdline.txtをテキストエディタで開き"root=/dev/mmcblk0p2"という箇所を"root=/dev/sda1"に変更
- 起動用SDカードとUSBメモリをRaspberry Piに接続して起動。何事もなければそのまま普通に起動してくれる
USBメモリのほうが信頼性が高い、と勝手に思い込んでいる私のような人は、ぜひお試しあれ(w