RaspberryPiのインストールイメージ書き換え方法
こんにちは、Kanazawa.IoTの井澤です。
普段、IoT で色々なセンサーデータを集約したり、データをAWSへ投入したりするときには Raspberry Pi (以下 RPi) を使うのがお手軽です。
一方で、幾つものRPi を使ったり、何度も環境を作って試したりする際に、インストール後に毎回同じ初期設定をするのは段々と苦痛になってきます。
例えば、WiFiの接続のための設定や、シリアルコンソールの設定などがこれにあたります。
そこで、自分のための最低限の設定をあらかじめインストールイメージに書き込んでおくことで、インストール後にすぐに目的の開発に着手することが出来るようになります。
今回は RPi のインストールイメージ(Raspbian stretch Lite)の編集方法について説明していきたいと思います。
以下の作業は RPi 上で実行することを想定しています。
つまり RPi のイメージを RPi 上で編集するという、ニワタマ問題を若干感じつつ説明していきたいと思います。
まずは、インストールイメージをダウンロードします。https://www.raspberrypi.org/downloads/raspbian/
現在の最新のイメージは以下のzipです。
2018-03-13-raspbian-stretch-lite.zip
これを展開すると同名のimgファイルとなります。
2018-03-13-raspbian-stretch-lite.img
このインストールイメージは2つのパーティションから構成されています。
fdiskコマンドで確認してみましょう。
pi@raspberrypi:~ $ fdisk -l 2018-03-13-raspbian-stretch-lite.img
Disk 2018-03-13-raspbian-stretch-lite.img: 1.7 GiB, 1858076672 bytes, 3629056 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xa8fe70f4
Device Boot Start End Sectors Size Id Type
2018-03-13-raspbian-stretch-lite.img1 8192 93802 85611 41.8M c W95 FAT
2018-03-13-raspbian-stretch-lite.img2 98304 3629055 3530752 1.7G 83 Linux
pi@raspberrypi:~ $
一つ目がFATで、二つ目がext4となっています。
FATの方は、bootした際に /boot 以下にマウントされます。
ext4のほうが / になります。
例えば、/boot/config.txt であればFATの方を書き換える必要がありますし、/etc/以下のファイルであれば、ext4の方を書き換える事になります。
つぎにそれぞれのマウント方法について説明していきます。
先程の fdisk の出力中の Start の数字を使っていきます。
FATの場合
sudo mount -t vfat -o loop,offset=$((512*8192)) 2018-03-13-raspbian-stretch-lite.img /mnt
ext4の場合
sudo mount -t ext4 -o loop,offset=$((512*98304)) 2018-03-13-raspbian-stretch-lite.img /mnt
これで、/mnt 以下にマウントされるので、必要に応じてファイルを書き換えます。
書き換えが済んだらアンマウントしておきます。
sudo umount /mnt
これで 2018-03-13-raspbian-stretch-lite.img をSDカードに dd するだけで、
自分カスタムな環境になっているはずです。
後でわからなくならないように、カスタムしたインストールイメージファイルは名前を変えておくと良いでしょう。