Introduction
前回、SDカードを使ってマウス、キーボード、ディスプレイなしでRaspberry Pi 3のセットアップを完了。
でも、SDカードって信用できないのね。
USBメモリのがまだましって感じ。
USBメモリのが扱いやすいしね。
あんな小さい筐体に32GBや64GBとか狂気の沙汰やで。
今回は下記を参考にしてセットアップしました。
有益な情報ありがとうございます。
用意するもの
- USBメモリ
以上。
ファームウェア更新
新しいファームでないとUSBブートはできない模様。
下記のブログによれば、安易に後述のコマンドで更新するのは非推奨の模様。
1 | まずはパッケージリストを更新 |
再起動後、下記の結果になることを確認。
1 | vcgencmd otp_dump | grep 17: |
USBにパーティションを作成
USBを差し込みます。
当然、この後フォーマットするからデータが消えます。
差し込んだ後、下記のコマンドで、Deviceに差し込んだUSBが表示されていることを確認。
1 | sudo fdisk -l |
/dev/sda にデバイスがあることが確認できたので、下記のコマンドでパーティションを作成します。
しかし、sudo fdisk -l でデバイスが使用中になってしまった模様。
なので、再起動します。
1 | sudo parted /dev/sda |
再起動後、再度コマンドを実施。
1 | sudo parted /dev/sda |
上記によって、**/dev/sda1** と /dev/sda2 が作成されます。
続いて、フォーマット
1 | sudo mkfs.vfat -n BOOT -F 32 /dev/sda1 |
SDカードの複製
SDカードに全データが入っている状態なので、USBにコピーします。
rsync で複製ができる模様。
1 | sudo apt-get install -y rsync |
次に、フォーマットした領域をマウントします。
Linuxは直接デバイスにアクセスするのに mount が必要なので面倒。
いや、Windowsも背後でExplorerに表示するために、ドライブという形でマウントはしているんですけど… 下記は、**/mnt/target** 、**/mnt/target/boot** を作成し、そこにそれぞれ /dev/sda2 と /dev/sda2 をマウントします。
その後、rsyncでコピーを開始します。
1 | sudo mkdir -p /mnt/target |
ブート情報の編集
参考ページの手順だと上手くいきませんでしたので、頑張って調べました。
まず、デバイスを一意に識別するPARTUUIDを調べます。
これにより、デバイスファイル名が変わっても安心。
1 | sudo blkid |
次に /mnt/target/boot/cmdline.txt を確認します。
cmdline.txt は、起動時にLinux Kernelに渡されるコマンド引数を記述したテキストとのこと。
1 | cat /mnt/target/boot/cmdline.txt |
root=PARTUUID=85d563bf-02 になっているのを修正する必要があります。
そこで先ほどの blkid で調べたPARTUUIDを調べます。
USBメモリのext4になっているPARTUUIDは a40eeb1f-02 になります。
続いて、**/mnt/target/etc/fstab** を確認します。
fstab は file system table の略らしい。
起動時に mount に読み込まれるコマンドになります。
1 | cat /mnt/target/etc/fstab |
PARTUUID=85d563bf はSDカードを指しています。
これを a40eeb1f に置換すれば、全部変換できそうです。
以上より、下記のコマンドでファイルを書き換えます。
当然、上述のPARTUUIDは環境依存ですので適宜書き換えてください。
1 | sudo sed -i.bak "s,85d563bf,a40eeb1f," /mnt/target/boot/cmdline.txt |
ちなみに、sed はテキストとかの文字列を編集したりするコマンド。
String Editorの略だと思っていたら、Stream Editor の略らしい。
**-i.bak** で拡張子bakで編集前のファイルのバックアップを取ってから i(in place) を実行します。
再起動
アンマウントして再起動します。
再起動と言っても、一度SDカードを抜く必要があるので、電源を落とします。
1 | cd ~ |
電源が落ちたら、SDカードを抜いて、電源プラグを差し直します。
するとまた勝手に起動します。
起動しない(゚д゚)
なんでやねん。
最新版はダメなのか、USBメモリがダメなのか、原因は不明。
とりあえず今回はここまで。