2020年8月8日土曜日

Raspberry Pi OSインストール手順 (Raspberry Pi Imagerを使ったOSイメージ書き込みと初期設定)【2020年版】

2017年に購入したRaspberry Pi 3 Model Bがあったのだが、途中でRaspberry Pi Zero Wに置き換えたことにより、ずっと使わずに放置していた。ふと使いたくなって久しぶりに起動させようとしたら、Kernel Panicで起動しなくなっていたのでRaspbianをインストールしなおすことにした。

前回のインストール手順は2017年に記事としてまとめていたので、そちらを参考にしつつ、今回も同様にNOOBSを使ってインストールをしようとしたのだが、調べてみるとNOOBSではなく「Raspberry Pi Imager」を使う手順に推奨手順が変わっているらしい。

それどころかRaspbianも名前が変わって「Raspberry Pi OS」に名称が変更されているらしい。

と、いろいろ数年の間に変化があったので、再度インストール手順をまとめてみた。

Raspberry Pi ImagerにてSDカードにRaspberry Pi OSを書き込む

1. Raspberry Pi Imagerをダウンロード

以下からダウンロードする。私のダウンロードしたタイミングでは「imager_1.4.exe」というバージョンとなっていた。

2. SDカードに書き込みを行うPCにRaspberry Pi Imagerをインストール

Raspberry Pi Imagerはexe形式になっているので、実行してPCにインストールすればよい。

3. Raspberry Pi Imagerを起動し書き込み前の設定を行う

Raspberry Pi Imagerを起動するとOSとSDカードの指定を行うシンプルな画面が表示されるので、以下の通り設定する。

  • Operating System : Raspberry Pi OS (32-bit)
  • SD Card : 書き込み先のSDカードを指定

なお、SDカードは書き込み時にフォーマットされるので、未フォーマットの状態であっても問題ない。今回は、過去にインストールしたRaspbianが書き込まれた状態のまま書き込みをしたが、問題なく成功している。

4. 書き込み開始

SDカードの内容はすべて消去される旨のメッセージが表示されるので、「Yes」を選択して書き込みを開始する。

インターネット経由でデータをダウンロードしながら書き込みするので環境に依存するが、おおよそ1時間で書き込みは完了する。気長に待とう。

5. 書き込み完了

書き込みが完了すると、SDカードを自動でアンマウントしてくれるので、そのままPCから抜いて、Raspberry Piに刺せばよい。

Raspberry Piを起動&初期設定

1. 初期設定ウィザードにて設定

Raspberry Pi OS初回起動時には「Welcome to Raspberry Pi」という名前の初期設定ウィザードが表示されるので、以下の通り設定していく。

  • Set Country :
    • Country : Japan
    • Language : Japanese
    • Timezone : Asia/Tokyo
  • Change Password : 適切に設定
  • Set Up Screen : そのまま次へ
  • Set Wireless Network : しばらく待つとWi-FiのSSIDが一覧表示されるので、接続対象のSSIDを選択
  • Enter Wireless Network Password : 適切に設定
  • Update Software : そのまま次へ。アップデートは30分程要するので気長に待つ

ウィザードの最後で再起動を要求されるので、「Restart」を選択し再起動を行う。

2. SSHを有効化

Raspberry Pi OSはデフォルトではSSHが無効となっている。リモート操作ができず不便なので有効とする。端末を開き、以下を実行して「Raspberry Pi Software Configuration Tool (raspi-config)」を開く。

$ sudo raspi-config

raspi-configの画面が表示されるので、「5 Interfacing Options」を選択する。

「P2 SSH」を選択する。

「Would you like the SSH server to be enabled?」と表示される。

この画面で「はい」を選ぶとSSHが有効に、「いいえ」を選ぶとSSHが無効になる。「いいえ」が設定変更をキャンセルする意味ではなく、SSHが無効化されてしまうので注意

ESCキーでraspi-configを抜けて、sshdのステータスを確認し問題なく起動していればOKとなる。

$ systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-07-29 13:26:11 JST; 3s ago

~(以下略)~

3. 時刻同期設定

Raspberry Pi OSではDebianベースとなるので、時刻同期はntpdやChronyではなく「systemd-timesyncd」が利用されている。

時刻同期の状態を確認すると、「x.debian.pool.ntp.org」に対して時刻同期はされているようだ。

$ timedatectl timesync-status
       Server: 2001:470:1f07:9fe::f00d (2.debian.pool.ntp.org)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 1
    Reference: GPS
    Precision: 1us (-24)
Root distance: 0 (max: 5s)
       Offset: +6.899ms
        Delay: 196.933ms
       Jitter: 12.925ms
 Packet count: 9
    Frequency: -4.487ppm

私の環境の場合は、NTPサーバが存在することから、以下の折設定を変更する。

$ cat /etc/systemd/timesyncd.conf
~(中略)~

[Time]
NTP=192.168.33.23 ←★追記
#FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048

設定を変更後、設定反映を行う。

$ sudo systemctl restart systemd-timesyncd
Warning: The unit file, source configuration file or drop-ins of systemd-timesyncd.service changed on disk. Run 'systemctl daemon-reload' to reload units.
$ sudo systemctl daemon-reload

反映後の時刻同期のステータスを確認する。「System clock synchronized」がYesであれば問題なく時刻同期が成功している。

$ timedatectl status
               Local time: 水 2020-07-29 13:45:55 JST
           Universal time: 水 2020-07-29 04:45:55 UTC
                 RTC time: n/a
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

同期先のサーバが変更されていればOKとなる。

$ timedatectl timesync-status
       Server: 192.168.33.23 (192.168.33.23)
Poll interval: 34min 8s (min: 32s; max 34min 8s)
         Leap: normal
      Version: 4
      Stratum: 2
    Reference: 85F3EEA4
    Precision: 1us (-26)
Root distance: 2.532ms (max: 5s)
       Offset: -1.112ms
        Delay: 5.927ms
       Jitter: 1.709ms
 Packet count: 117
    Frequency: -4.424ppm

4. 固定IP設定

DHCPによるIPアドレス設定の場合は、特にデフォルトから変更する必要はないが、固定IPアドレス設定を行う場合は「/etc/dhcpcd.conf」にてIPアドレス等の指定を行う。

$ sudo vi /etc/dhcpcd.conf
~(中略)~
interface eth0                     # 有線はeth0を指定
static ip_address=192.168.11.15/24 # IPアドレスとサブネットマスクを設定
static routers=192.168.11.31       # デフォルトゲートウェイを設定
static domain_name_servers=192.168.11.61 192.168.11.62 # DNSを設定
interface wlan0                    # 無線 (Wi-Fi) はwlan0を指定
static ip_address=192.168.33.15/24 # IPアドレスとサブネットマスクを設定

上記設定後OS再起動を行い、IPアドレスの状態を確認してみた。以下の通り、eth0とwlan0に指定した固定IPアドレスが設定されている。

$ ip a | grep -e eth0 -e wlan0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 192.168.11.15/24 brd 192.168.11.255 scope global noprefixroute eth0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    inet 192.168.33.15/24 brd 192.168.33.255 scope global noprefixroute wlan0

5. スタティックルート設定

Raspberry Pi OSでルーティングを追加する場合は、以前以下の記事にて説明をしている。

再掲とはなるが、ルーティング追加のコマンドを「/etc/network/if-up.d/static-routes」に記載することで、OS起動時にルーティング追加できる。

$ sudo vi /etc/network/if-up.d/static-routes
#!/bin/sh
# Add Static Route
sleep 10
route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.33.31 metric 1 wlan0

$ sudo chmod +x /etc/network/if-up.d/static-routes

まとめ

以上でRaspberry Pi OSのインストールと初期設定手順は完了となる。

最後に、Raspberry Pi OSのバージョンを確認してみたところ、バージョンは10.4となっていた。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

$ cat /etc/debian_version
10.4

0 件のコメント:

コメントを投稿

人気の投稿