🥧

Raspberry Pi OS をヘッドレスインストールする

2022/05/05に公開

はじめに

Raspberry Pi を使い始めるにあたってのセットアップで、いちいちモニターを繋ぐなどするのはなにかと面倒かと思います。この記事では、そんなあなたにモニターを繋がずに Raspberry Pi OS をセットアップする方法を紹介します。

なおこの記事では macOS 上で作業することを前提に解説します。Linux 環境下で行う場合などは適宜コマンドを読み替えてください。

Raspberry Pi OS のセットアップ

イメージの用意

公式サイトからイメージをダウンロードしてきます。Raspberry Pi 3B 以上の機種であれば 64bit 版を選ぶのが良いでしょう。また、GUI は一切使用しないので Lite 版を選びます。落としてきたイメージは xz で圧縮されているので、展開しておきます。

$ xz -d 2022-04-04-raspios-bullseye-arm64.img.xz

展開したらイメージを焼いていきます。SD カードをマシンに接続しておきましょう。

ここで、diskutil コマンドを使って書き込み先の SD カードがどこにあるかを調べます。macOS がインストールされていないものが候補に挙がるかと思います。今回は /dev/disk2 として解説を進めていきます。

$ diskutil list
/dev/disk2 (external, physical):

まずはディスクをフォーマットしてから書き込みができるようアンマウントしておきましょう。

$ dksiutil eraseDisk MS-DOS RPI disk2
$ diskutil unMountDisk /dev/disk2

最後に書き込んであげます。ifof を間違えると悲惨な目に遭いますので要注意。なお書き込み先が rdisk2 となっていますが、シーケンシャルなデータを書き込む際にはここに書き込む方が速いからです。

$ sudo dd if=2022-04-04-raspios-bullseye-arm64.img of=/dev/rdisk2 bs=1m

普通ならここで SD カードを Raspberry Pi に差し込んで起動しますが、ヘッドレスインストールのためにもろもろ工夫していきます。

書き込みが終わると /Volumes/boot というパスに SD カードの1パーティションがマウントされていると思います。ここに、いくつかのファイルを置いていきます。

$ cd /Volumes/boot

まず、SSH デーモンが起動時に動くように、空のファイルを置きます。

$ touch ssh

無線 LAN を動かしたい人は、以下のファイルを作っておきましょう。

$ touch wpa_supplicant.conf

ファイルの中身は以下のようにします。psk の部分はハッシュ化されたものを入れます。ジェネレーターを活用すると便利でしょう。

/Volumes/boot/wpa_supplicant.conf
country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="YOUR_WIFI-SSID"
    psk="WIFI-KEY"
}

Raspberry Pi OS は先日のアップデートでデフォルトユーザーならびにパスワード pi:raspberry が削除されました。従って、これも設定してあげる必要があります。まずは空のファイル userconf.txt を作りましょう。

$ touch userconf.txt

次にハッシュ化したパスワードを求める必要があります。以下のコマンドで必要な値が得られます。ただし macOS デフォルトで付属の openssl コマンドは実体としては libressl で、-6 オプション(SHA512でハッシュ化してくれる機能)が付いていないので、brew で OpenSSL を入れるか、他の Linux 環境で生成した結果をコピーしてくるのが現実的な落とし所かと思います。

$ echo 'RAW_PASSWORD' | openssl passwd -6 -stdin

ユーザー名と今できあがったハッシュ化したパスワードをコロンで繋いだものを書き込んであげれば完了です。

/Volumes/boot/userconf.txt
USER_NAME:HASHED_PASSWORD

あとは /Volumes/boot をアンマウントしてから本体に SD カードを接続し、Raspberry Pi を起動してください。

起動後の設定

一通りパッケージをアップデートしておくと良いでしょう。

$ sudo apt update
$ sudo apt full-upgrade

また、タイムゾーンぐらいは設定しておくと良さそうです。

$ sudo raspi-config

おわりに

ここまで Raspberry Pi OS を画面に繋がずにヘッドレスインストールする方法を紹介してきました。デフォルトのユーザーが削除されてしまったため、今までと違ってそこのセットアップをしてあげる必要があるというところだけが注意点かと思います。それではよき Raspberry Pi 生活をお送りください。

Discussion