Raspberry Pi 3にRASPBIANをインストール後の初期設定リスト

サーバー用途で使用するためにRASPBIAN JESSIE LITEをインストールして、初期設定を行った内容のメモ。ちなみにここで使用したRASPBIANのイメージは2016-09-23-raspbian-jessie-lite.imgでサイズは1.29GBだった。基本的にはraspi-configコマンドで設定すればいいけど、実際どんなコマンドで設定を行ったか知りたいのであえて使わない方向で。セットアップ用の初期ユーザーはpiとパスワードはraspberryでログインする。
microSDのパーティションの拡張
これだけはraspi-configを使用。"Expand Filesystem"を選択して拡張を行ったら、リブートを促されるので一度リブートする。
$ sudo raspi-config
ロケールの設定
文字化けしたら面倒なので触らずに英語のままで行くことにした。サーバー用途なので特に不便はない。もし、設定する場合は以下のコマンドで。
$ sudo dpkg-reconfigure locales
タイムゾーンの設定
$ sudo dpkg-reconfigure tzdata
[Asia]-[Tokyo]と選択する。
キーボードの設定
$ sudo dpkg-reconfigure keyboard-configuration
ところがこれが警告が出て動かない。 update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults なので、直接設定ファイルを書き換える。こんな設定にした。
$ sudo nano /etc/default/keyboardXKBMODEL="OADG109A"
XKBLAYOUT="jp"
XKBVARIANT=""
XKBOPTIONS=""

BACKSPACE="guess"
IPアドレスを固定する
サーバー用途として使用するのでIPアドレス(有線)を固定する。いつからなのか今のバージョンは/etc/network/interfacesとは違うらしい。今はこのファイルに設定を書くみたい。このファイルの最後に以下の内容を追記。アドレスは環境に合わせて適宜変更。
$ sudo nano /etc/dhcpcd.confinterface eth0
static ip_address=192.168.0.200/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
RASPBIAN STRETCH LITE(August 2017)の場合
RASPBIAN STRETCH LITEの場合はinterfaceの記述の仕方がeth0から変わっている。ifconfigで調べたインターフェイス名を使用する。
$ ifconfig
enxb827xxxxxxxx: flags=4163  mtu 1500
上のenxb827xxxxxxxxの部分をinterfaceに記載する。
$ sudo nano /etc/dhcpcd.confinterface enxb827xxxxxxxx
static ip_address=192.168.0.200/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
ホスト名を設定する
$ sudo nano /etc/hostnamerpi3
$ sudo nano /etc/hosts127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

# 上のhostnameで指定したホスト名と合わせておく
127.0.1.1       rpi3
NTPサーバーを設定する
時刻同期用のサーバーを設定する。デフォルトのserverをコメントにして最後の行を追加する。
$ sudo nano /etc/ntp.conf# pool.ntp.org maps to about 1000 low-stratum NTP servers.  Your server will
# pick a different set every time it starts up.  Please consider joining the
# pool: <http://www.pool.ntp.org/join.html>
#server 0.debian.pool.ntp.org iburst
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
pool ntp.nict.jp iburst
RASPBIAN STRETCH LITE(August 2017)の場合
以下のコマンドでNetwork time on: yesになっているか確認する。
$ timedatectl status
      Local time: Tue 2017-08-29 21:08:10 JST
  Universal time: Tue 2017-08-29 12:08:10 UTC
        RTC time: n/a
       Time zone: Asia/Tokyo (JST, +0900)
 Network time on: yes
NTP synchronized: yes
 RTC in local TZ: no
yesになっていなければ以下のコマンドで有効にする。
$ sudo timedatectl set-ntp true
NTPサーバーを指定する。FallbackNTPには予備のサーバーを指定しておく。
$ sudo nano /etc/systemd/timesyncd.conf[Time]
NTP=ntp.nict.jp
FallbackNTP=time.google.com
アップデートを行う
ここまでの設定内容を反映させるため、ここで一旦リブートする。
$ sudo reboot
リブート後にアップデートをかけて正常にアップデートできるかを確認する。
$ sudo apt-get update
$ sudo apt-get upgrade
microSDカードの延命対策
microSDカードは頻繁に書き込みが起こると極端に寿命が短くなってしまう。気のせいレベルかもしれないけど一応対策しておく。実際、カードが壊れるまで使ったことないので、果たしてどの程度の効果があるのか不明だけど。
SWAP領域を無効にする
$ sudo swapoff --all
$ sudo apt-get remove dphys-swapfile
RAM DISKを設定する
tmpディレクトリをRAM DISKを使用するようにしておく。さらにlogディレクトリもそうした方がいいんだけど、ディレクトリやログファイルが存在しないとエラーになる処理もあるので、そういうのは起動時にRAM DISKに作っておかないと、思わぬところで引っかかったりするので今回はしないことに。RAM DISKのサイズはあまり小さくし過ぎるとWordPressなんかのアップロード時に支障が出るので適宜。とはいえ256mも必要ないかもしれないけど、その辺はトライアルアンドエラーで。
$ sudo nano /etc/fstabtmpfs /tmp tmpfs defaults,size=256m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=128m,noatime,mode=1777 0 0
一度リブートしてみて、こんな感じでSwapが0で/var/tmpと/tmpのファイルシステムがtmpfsになっていればオーケー。
$ free
             total       used       free     shared    buffers     cached
Mem:        947736      78452     869284       6324       6916      39248
-/+ buffers/cache:      32288     915448
Swap:            0          0          0

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        15G  955M   14G   7% /
devtmpfs        459M     0  459M   0% /dev
tmpfs           463M     0  463M   0% /dev/shm
tmpfs           463M  6.2M  457M   2% /run
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           463M     0  463M   0% /sys/fs/cgroup
tmpfs           128M     0  128M   0% /var/tmp
tmpfs           256M     0  256M   0% /tmp
/dev/mmcblk0p1   63M   21M   43M  34% /boot
    この記事で書かれている製品やソフトについて
  • Raspberry Pi 3 Model B
  • RASPBIAN JESSIE LITE(September 2016)