ヘッドレスRaspberry PiにRaspbian(jessie)をインストール

目次

ディスプレイ等を接続しないで Raspberry Pi 2 に Raspbian(jessie)をインストールしました。固定 IP アドレスを使用するには、dhcp.conf に設定します。

ディスプレイやキーボードが接続されていないヘッドレス Raspberry Pi へ Raspbian(注 1)をインストールする方法は、設定をネットワークから行うだけで基本的な手順はディスプレイ等が接続された Raspberry Pi へのインストールと同じです。

必要な物

Raspberry Pi 本体 今回は、Raspberry Pi2 を使用しました。 USB-AC アダプタ 急速充電対応のアダプタをオススメ。特に Raspberry Pi3 を使用するときには、取れる電流値に注意する必要があります。 SD メモリカード Raspberry Pi2 以降は、マイクロ SD カードを使用します。容量は最低 4GB となっていますが、私の 4GB カードは OS イメージが入りきりませんでした。値段は大して変わらないので、8GB を使用することをオススメします。また、できれば Class 10 の製品を使ったほうがファイルへのアクセス速度が上がります。 ネットワーク いきなり無線 LAN で接続するよりは、有線でまずつないでインストールすることをオススメします。 OS 今回 Raspbian (jessie)をインストールします。取得方法などは、この後に説明します。

また OS のイメージファイルを SD カードに書き込むためにパソコンが必要です。私は Ubuntu 16.04 が動いているマシンを使用しましたが、Windows でもイメージを直接書き込めるソフト(注 2)を使用すれば問題ありません。

Raspbian の取得

Raspbian は、公式サイトのダウンロードページまたは国内のミラーサイトからダウンロードします。国内のミラーサイトを使用したほうが、もちろん早くダウンロードが完了します。

ダウンロードが完了したら、ファイルが壊れていないか(改変されていないか)SHA-1 フットプリントを見て一応確認しておきます。

`$ sha1sum 2016-05-10-raspbian-jessie.zip
66a50545358e80229d77ebba89ab01f1c0fb4a02  2016-05-10-raspbian-jessie.zip
`

この値が、公式サイトに書かれている SHA-1 の値と同じになっているはずです。もし違っているときには壊れているので捨てます。問題なければ解凍してディスクイメージを取り出します。

`$ sudo apt install zip
$ zipinfo -1 2016-05-10-raspbian-jessie.zip
2016-05-10-raspbian-jessie.img
$ unzip 2016-05-10-raspbian-jessie.zip
`

SD メモリカードへの書き込み

ディスクイメージのファイルを取り出せたら、SD メモリカードに書き込みます。この時普通のコピーではなく、ddまたはddrescueを使用してブート領域の部分から直接上書きします。

`# `usb-Multi\_Flash\_Reader\_058F0O1111B1-0\:0`の部分は、SDメモリカードリーダ(アダプタ)に依って変わります。

sudo dd bs=4M if=2016-05-10-raspbian-jessie.img of=/dev/disk/by-id/usb-Multi\_Flash\_Reader\_058F0O1111B1-0\:0

# or  sudo apt install ddrescue

$ sudo ddrescue 2016-05-10-raspbian-jessie.img /dev/disk/by-id/usb-Multi\_Flash\_Reader\_058F0O1111B1-0\:0
`

このコマンドを実行する時に/(root)のあるドライブを上書きしてしまう可能性があります。そのミスを防ぐために/dev/sd*ではなく、/dev/disk/by-id/usb-*を使用します。これならば、USB 接続のストレージだと一目で分かります。

またddを使用した場合は、途中で進行状況が表示されません。進行状況を確認するには、別の端末から

`$ pkill -USER1 dd
`

を実行して進行状況を表示させるシグナルを送ります。

Raspbian を起動

ディスクイメージを SD メモリカードに書き込んだら、Raspberry Pi にセットして通電します。

電源が入ると赤と緑の LED が両方共点灯します。その後一瞬緑の LED が消えた後に細かく点滅を繰り返します。緑の LED はディスク(SD メモリカード)アクセスを示しているので、ブートプロセスが完了すると大体の時間消灯するようになります。

ブートプロセスが完了したら DHCP サーバまたはルータのログを確認して、この Raspberry Pi が使用している IP アドレスを探します。

ログなどを調べられない場合は、IP アドレスの範囲をスキャンして当たりをつけます。この例では、10.0.0.1から10.0.0.126の範囲内で反応する IP アドレスを見つけます。

`$ for i in {1..126}; do echo $i; ping -c 1 -W 1 10.0.0.$i >/dev/null && echo 10.0.0.$i; done
`

Raspberry Pi が使用している IP アドレスが分かったら初期ユーザでログインします。例えば10.0.0.4を使っているとすると、次のようにログイン名を指定して接続します。Windows の TeraTerm でも同じ書き方で接続アドレスとユーザ名を指定できます。

`$ slogin pi@10.0.0.4
# 初回は本当に接続するか確認を求められるので、`yes`と入力して続行します。
pi@10.0.0.4's password: # 初期パスワードは`raspberry`となっています。
`

ログインできれば、後はヘッドレスもディスプレイ等を接続した Raspberry Pi もすることは同じです。

固定 IP アドレスの設定

Jessie では、固定 IP アドレスを使用する設定を/etc/dhcpcd.confに設定を書き込みます。これまでは/etc/network/interfacesに設定していましたが、変更されています。

固定 IP アドレスを使用するには、man dhcpcd.confを参考にして/etc/dhcpcd.confの最後に次の設定を書き加えます。

`interface eth0
static ip\_address=10.0.0.130/24
static routers=10.0.0.254
static domain\_name\_servers=10.0.0.127 10.0.0.254
`

セットアップ

新規ユーザ登録

まずはadduserコマンドで自分のアカウントを作成します。パスワードや名前などを質問されるので、それに答えて入力していきます。

`$ adduser nosuz
Adding user `nosuz' ...
Adding new group `nosuz' (1001) ...
Adding new user `nosuz' (1001) with group `nosuz' ...
Creating home directory `/home/nosuz' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for nosuz
Enter the new value, or press ENTER for the default
	Full Name []:
	Room Number []:
	Work Phone []:
	Home Phone []:
	Other []:
Is the information correct? [Y/n]
`

新しく追加したユーザが管理者権限で色々できるようにするため、/etc/sudoersに次のエントリーを追加しておきます。

`#nosuz ALL=(ALL) NOPASSWD: ALL
nosuz ALL=(ALL) ALL
`

NOPASSWD:を指定すると、自分のパスワードを確認されずにコマンド(ここでは全てのコマンド)を管理者権限で実行できます。どちらにするかは、各サイトのセキュリティプリシーによります。

新しいユーザでログインして管理者権限を使えることを確認したら、ユーザ登録作業は完了です。

デフォルトユーザpiの削除

Raspbian にはpiというユーザがいることが公開されておりブルートフォース攻撃の標的になるので、ユーザpiを削除しておきます。

まず/etc/sudoersを編集してユーザpiのエントリーを削除しておきます。削除しなくても良いのですが、後々piというユーザを作成して意図しないで管理者権限で操作できてしまうことを防ぎます。

ユーザを削除するには、deluserコマンドを使用します。piでログインしている場合は、事前にログアウトしておきます。

`$ sudo deluser --remove-home pi
Looking for files to backup/remove ...
Removing files ...
Removing user `pi' ...
Warning: group `pi' has no more members.
Done.
`

ソフトのアップデート

パッケージのダウンロードを速くするために、Raspbian の mirror サイト(注 3)を参考にして近場のサイトからダウンロードするようにapt edit-sourcesコマンドで/etc/apt/sources.listの内容を変更します。直接ファイルを編集しても問題ありませんが、この方法だと書式に問題が有ると教えてくれます。

`$ sudo apt edit-sources
# 初回はエディタの選択メニューが表示されます。

$ cat /etc/apt/sources.list
#deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
deb http://ftp.yz.yamagata-u.ac.jp/pub/linux/raspbian/raspbian/ jessie main contrib non-free rpi

# Uncomment line below then 'apt-get update' to enable 'apt-get source'

#deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi

$ sudo apt update && sudo apt full-upgrade

# Raspberry Pi のファームウェアをアップデート。しばらく時間がかかります。

$ sudo rpi-update
`

ディスク領域の拡張

SD メモリーカードの全領域を Raspbian から使えるようにするには、raspi-configコマンドでパーティションを拡張します。

`$ sudo raspi-config
┌─────────┤ Raspberry Pi Software Configuration Tool (raspi-config) ├─────────┐
│                                                                             │
│    1 Expand Filesystem             Ensures that all of the SD card          │
│    2 Change User Password          Change password for the default          │
│    3 Boot Options                  Choose whether to boot into a de         │
│    4 Wait for Network at Boot      Choose whether to wait for netwo         │
│    5 Internationalisation Options  Set up language and regional set         │
│    6 Enable Camera                 Enable this Pi to work with the          │
│    7 Add to Rastrack               Add this Pi to the online Raspbe         │
│    8 Overclock                     Configure overclocking for your          │
│    9 Advanced Options              Configure advanced settings              │
│    0 About raspi-config            Information about this configura         │
│                                                                             │
│                                                                             │
│                      │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

# メニューの一番を選択します。上下の矢印で移動させて、1 のところで`Enter`キーを押すと選択されます。

# `Tab`キーで`Finish`に移動して`Enter`キーを押すと reboot するか聞かれるので、再起動します。

# 再起動したら、`df -h`コマンドでディスク領域が拡張していることを確認します。

`

終了

終了するときは、次のコマンドで安全に終了させます(注 4)。

`$ sudo shutdown -h now
`

このコマンドを実行すると緑色 LED がしばらく点滅します。この点滅が収まり緑色 LED が消灯したら、10 秒ほど見守ってもう点滅することがないのを確認して電源を切ります。

-hオプションの代わりに-rを指定するとリブートします。

参照と脚注

  1. Rasbian と間違えやすいのですが、Raspbian と b の前に p が入ります。間違えるのは私だけ?
  2. Win32DiskImagerや DD for Windows などを使用します。
  3. Raspbian Mirrors 私は山形大学のミラーを使用しています。
  4. もっとも電源をいきなり切っても大抵問題になりません。