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


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

ディスプレイやキーボードが接続されていないヘッドレスRaspberry PiへRaspbian1をインストールする方法は、設定をネットワークから行うだけで基本的な手順はディスプレイ等が接続された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         │
│                                                                             │
│                                                                             │
│                    <Select>                    <Finish>                     │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘

# メニューの一番を選択します。上下の矢印で移動させて、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. もっとも電源をいきなり切っても大抵問題になりません。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です