はじめに
ラズパイ起動方法は公式サイトにも詳しく載っていますし、いろいろな本やWebサイトでたくさん紹介されています。
ところが、最も簡単と言われているNOOBSは実はSDカードとの相性問題があってうまく起動しない場合があったりします。
それならばとSDカードにraspbianの起動イメージを書き込もうと思っても、多くのツールはWindows向けだったり、Linuxでは導入が面倒だったりします。
結局、Linuxユーザーはコマンドラインでやるのが一番確実で早いと感じたので手順をメモしておきます。
環境
- ホストPC:Ubuntu 18.04.2
- Raspberry Pi 2 Model B
- Raspbian Buster (Release date:2019-07-10)
Raspbianを入手
公式サイトからdesktop and recommended softwareをダウンロード。
その気になればwgetとかのコマンドでできますが、最新バージョンを確認しつつダウンロードするにはブラウザでやったほうが早いので、意地を張らずにブラウザでダウンロードします。
SHAが一致することを確認
以前、ダウンロード時にデータが狂っていたのが原因でOSが起動しなかったことがありました。
そのときは原因特定に1日かかりました。。。SHA確認大事です。エラーは起きるものです。
$ sha256sum 2019-07-10-raspbian-buster-full.zip
2bd0613ec8739b6fa4274ea186ec859046f79e6aee4b8c6af0acb6d88f3f533a 2019-07-10-raspbian-buster-full.zip
SDカードのデバイス名を確認
ダウンロードしたイメージを書き込むために、ホストPCでSDカードがどのように認識されているかを確認します。
SDカード挿入前と挿入後にlsbsk
を実行します。挿入後に増えた項目がSDカードのデバイスを指しています。
下記の例でパーティションが別れているのは、このSDカードを以前にもラズパイに使っていたからです。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
---略---
mmcblk0 179:0 0 14.5G 0 disk
├─mmcblk0p1 179:1 0 43.2M 0 part /media/***/boot
└─mmcblk0p2 179:2 0 14.4G 0 part /media/***/rootfs
パーティションがマウントされている場合は、アンマウントします。
$ umount /media/***/boot
$ umount /media/***/rootfs
こんな感じになります。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
---略---
mmcblk0 179:0 0 14.5G 0 disk
├─mmcblk0p1 179:1 0 43.2M 0 part
└─mmcblk0p2 179:2 0 14.4G 0 part
SDカードに書き込む
zipファイル展開とSDカードへの書き込みをまとめて行います。ofオプションに、上で調べたSDカードのデバイス名を指定します。
結構時間かかるので気長に待ちます。
$ unzip -p 2019-07-10-raspbian-buster-full.zip | sudo dd of=/dev/mmcblk0 conv=fsync
12566528+0 レコード入力
12566528+0 レコード出力
6434062336 bytes (6.4 GB, 6.0 GiB) copied, 1369.22 s, 4.7 MB/s
まとめ
これでラズパイOSイメージをSDカードに書き込むことができました。あとはSDカードをラズパイに挿して電源を入れ、画面に従ってラズビアンの初期設定をすればOKです。
ラズパイに限らず、初心者でも簡単に扱えるようにいろいろな便利ツールが用意されています。もちろんそれのおかげでとても楽ができることも多いですが、どこかで躓いてしまうと何が原因なのかさっぱりわからなくなってしまいますね。そんな時はエンジニアたるもの初心に戻ってコマンドラインで地道にやるのが、結局は一番の近道になることもありますね。