Raspberry Pi OS(旧称 Raspbian)の初期設定
Raspberry Pi の公式 OS は,2020年以降「Raspberry Pi OS」の名称になっている(旧称 Raspbian).ここでの手順は,Debian 12 (bookworm) および Debian 13 (trixie) をベースとする Raspberry Pi OS を対象とする.
【目次】
- システムの更新とシステムの再起動
- NTPによる時刻合わせの有効化
- タイムゾーンとロケール
- SSH ホスト鍵の再生成
- パスワードの変更
- ソフトウェアの削除
- ファイルシステムの拡張
- ログ書き込みの抑制
- スワップの停止
【サイト内の Raspberry Pi 関連ページ】
小型コンピュータ Raspberry Pi について: 別ページ »にまとめ
システムの更新, ファームウエアの更新, システムの再起動
システムを更新する.端末で,次のコマンドを実行
# パッケージリストの情報を更新
sudo apt update
sudo apt -yV full-upgrade
sudo apt -yV autoremove
sudo apt autoclean
sudo shutdown -r now
カーネルと GPU ファームウエアは,apt によるパッケージ更新(raspberrypi-kernel, raspberrypi-bootloader 等)で更新される.rpi-update は,テスト段階のカーネルとファームウエアを導入するコマンドであり,公式ドキュメントでは通常の更新に使用しないこととされているため,ここでは実行しない.
Raspberry Pi 4 以降では,基板上の EEPROM に書き込まれたブートローダを別に更新できる.更新の状況を確認し,更新があれば適用する.端末で,次のコマンドを実行
sudo rpi-eeprom-update
sudo rpi-eeprom-update -a
sudo shutdown -r now
NTPによる時刻合わせの有効化
Raspberry Pi OS の時刻合わせは systemd-timesyncd が行う.有効化と状態確認のため,端末で,次のコマンドを実行
sudo timedatectl set-ntp true
timedatectl status
「System clock synchronized: yes」と表示されれば,時刻合わせができている.
参照する NTP サーバを国内のサーバに変更したいときは,端末で,次のコマンドを実行
sudo sed -i 's/^#*NTP=.*/NTP=ntp.nict.jp/' /etc/systemd/timesyncd.conf
sudo systemctl restart systemd-timesyncd
timedatectl show-timesync --all | grep ServerName
タイムゾーンとロケール
端末で,次のコマンドを実行
sudo raspi-config nonint do_change_timezone Asia/Tokyo
sudo raspi-config nonint do_change_locale ja_JP.UTF-8
設定を確認するため,端末で,次のコマンドを実行
timedatectl status
localectl status
ロケールの設定は,新しく開いたログインセッションから反映される.
SSH ホスト鍵の再生成
SD カードのイメージを複製して使う場合など,複数の機器で同じ SSH ホスト鍵が使われることを避けるために,ホスト鍵を再生成する.端末で,次のコマンドを実行
sudo rm -f /etc/ssh/ssh_host*
sudo dpkg-reconfigure openssh-server
sudo systemctl restart ssh
ホスト鍵を変更した後は,接続元のパソコンに記録されている古い鍵(known_hosts の該当行)を削除しないと,接続時に警告が出る.
パスワードの変更
2022年4月以降の Raspberry Pi OS では,ユーザ名「pi」,パスワード「raspberry」の既定アカウントは廃止され,初回起動時(または Raspberry Pi Imager の設定)にユーザ名とパスワードを設定する仕様になっている.
パスワードを変更するときは,端末で,次のコマンドを実行し,現在のパスワードを入れたあと,新しいパスワードを2回(同じものを2回)入れる
passwd
ソフトウェアの削除
SD カードの空き容量を増やしたいときは,使用しないソフトウェアを削除する.端末で,次のコマンドを実行
sudo apt -y purge libreoffice*
sudo apt -yV autoremove
sudo apt autoclean
インストール済みのパッケージを容量の大きい順に確認したいときは,端末で,次のコマンドを実行
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -30
ファイルシステムの拡張
Raspberry Pi OS は,初回起動時にルートファイルシステムを SD カード全体へ自動で拡張する.拡張されていないときは,端末で,次のコマンドを実行
df -h /
sudo raspi-config nonint do_expand_rootfs
sudo shutdown -r now
ログ書き込みの抑制
Debian 12 (bookworm) 以降の Raspberry Pi OS では,ログの記録は systemd-journald が行い,rsyslog は既定でインストールされていない.SD カードへの書き込みを減らしたいときは,ログの保存先をメモリ上(volatile)にし,使用量の上限を設定する.
端末で,次のコマンドを実行
sudo cp /etc/systemd/journald.conf /etc/systemd/journald.conf.DIST
sudo sed -i 's/^#*Storage=.*/Storage=volatile/' /etc/systemd/journald.conf
sudo sed -i 's/^#*RuntimeMaxUse=.*/RuntimeMaxUse=32M/' /etc/systemd/journald.conf
sudo systemctl restart systemd-journald
この設定では,ログは再起動で消える.障害の原因調査が必要な場合は,/etc/systemd/journald.conf.DIST を元の位置に戻して systemd-journald を再起動する.
記録されているログを確認するときは,端末で,次のコマンドを実行
journalctl -b
(オプション)スワップの停止
Raspberry Pi OS のスワップは,スワップパーティションではなく,dphys-swapfile が管理するスワップファイルで実現されている.スワップを停止すると SD カードへの書き込みは減るが,メモリが不足したときにプロセスが強制終了される.「スワップ」の意味が分からないときは実行しない.
停止するときは,端末で,次のコマンドを実行
sudo dphys-swapfile swapoff
sudo systemctl disable dphys-swapfile
sudo swapoff --all
free -h
sudo shutdown -r now
再度スワップを使うときは,端末で,次のコマンドを実行
sudo systemctl enable --now dphys-swapfile
free -h