ヘッドレス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
を指定するとリブートします。
参照と脚注
- Rasbian と間違えやすいのですが、Raspbian と b の前に p が入ります。間違えるのは私だけ?
- Win32DiskImagerや DD for Windows などを使用します。
- Raspbian Mirrors 私は山形大学のミラーを使用しています。
- もっとも電源をいきなり切っても大抵問題になりません。