ヘッドレスラズパイを構築してみた【ラズパイ編#2】

IT

前回、学生のころから気になっていたラズパイを購入して、ケース組みまでやりました。
今回はヘッドレスラズパイを組んでみます。

ヘッドレスとは

あまり聞きなれないヘッドレスというワードですが、以下のように定義されます。

「ヘッドレス」コンピュータシステムは、ローカルインターフェイスのないものです。モニター(「ヘッド」)が接続されていません。また、キーボード、マウス、タッチスクリーン、またはそれを制御するための他のローカルインターフェイスもありません。

https://www.thefastcode.com/ja-jpy/article/what-is-a-headless-server

モニター(ヘッド)もなければ、キーボードやマウスもない。
そのようなシステムに意味があるのか?と思われがちですが、実はそうでもありません。

以下が、Ubuntu Server(ヘッドレスOS)の推奨スペックです。

The recommended system requirements are:

CPU: 1 gigahertz or better
RAM: 1 gigabyte or more
Disk: a minimum of 2.5 gigabytes

https://ubuntu.com/server/docs/installation

一方で、以下がUbuntu Desktopの推奨スペックです。

Recommended system requirements:

2 GHz dual-core processor or better
4 GB system memory
25 GB of free hard drive space

https://ubuntu.com/download/desktop

要するに、Ubuntu Server(ヘッドレスOS)は…

  • CPU   :Desktop版の推奨スペックの1/2
  • メモリ  :Desktop版の推奨スペックの1/4
  • ストレージ:Desktop版の推奨スペックの1/10

ということで、大幅に計算機リソースを削減することができます。

ただでさえ小規模計算機であるラズベリーパイに、Ubuntu ServerのようなヘッドレスOSを採用することで、本来GUIに割り当てられていた計算機リソースを有効活用できます。

あと余談ですが、WSL(Windows Subsystem for Linux)もWindowsの中でUbuntu Serverを動かしているので、すでにWSLを体験している人にとって、今回のヘッドレスラズパイは馴染みがあるように感じるのではないかと思います。

ヘッドレスをどうやって動かすか:SSH接続について

ヘッドレスのラズパイ(Ubuntu Server)をどうやって動かすか。

答えは簡単です。

PCやスマホからリモートアクセス(SSH接続)すれば良いのです。

本投稿ではヘッドレスOS(Ubuntu Server)の導入から、リモートアクセス(SSH接続)まで行います。

Raspberry Pi ImagerでUbuntu Serverをインストールする

ラズパイ公式が出している、「Raspberry Pi Imager」を使ってUbuntu ServerをmicroSDカードにインストールします。

「Raspberry Pi Imager」は以下からダウンロードしましょう。

Raspberry Pi OS – Raspberry Pi
From industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody.

また、microSDカードは適当に家の中にあるものを使うか、新しく購入しましょう。

Amazon | KIOXIA(キオクシア) 旧東芝メモリ microSD 64GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA064G | キオクシア(KIOXIA) | microSDカード 通販
KIOXIA(キオクシア) 旧東芝メモリ microSD 64GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA064GがmicroSDカードストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。ア...

  • 「Raspberry Pi Imager」を起動します。
  • OSを選択しましょう。今回はUbuntu Server 64bitのLTSを選択します。

LTSとは、Long Term Supportの略称であり、LTSのUbuntuは最低5年間以上サポートが受けられます。このサポートがないと、公式による脆弱性対策などが受けられません。

特段の事情がなければLTS無しのOSよりもLTS有りのOSを選択されることがほとんどです。
(短期間に何度も環境構築はやりたくないですからね…。

  • 次はストレージを選択します。

  • 書き込む前に、設定を行います。
    ※この設定をせずに書き込んでしまうと、色々と面倒なことになります…。

  • ホスト名を適当に設定して、SSH接続を有効にしておきます。

ホスト名は記録しておきましょう。後で使います。

今回は公開鍵認証ではなくパスワード認証を使うことにします。

  • ユーザー名とパスワードを適当に決めます。

ユーザー名とパスワードは記録しておきましょう。後で使います。

  • Wi-Fiも設定しておきましょう。

  • 残りの設定も適当にやっておきます。

  • いざ。書き込みましょう。

ヘッドレスと化したラズベリーパイ先輩にSSH接続する

  • 書き込んだmicroSDカードをラズパイに挿入して、電源を入れます。

そこから何もせず、5分間ぐらい気長に待ちましょう。

  • そろそろ頃合いかな?と思ったら、PCでPower Shell君を起動します。

「Power Shell君って何だよ!」と思った方は、以下の要領で起動してください。

しかし、自分は最新のPower Shell君(Power Shell 7)を使います…(裏切り)
最新版は性能や互換性が優れているそうです。

参考ページ→https://jo-sys.net/powershell-install/

  • Power Shell君でSSH接続します。さっき設定したユーザー名とホスト名を思い出しましょう。
ssh morugan@raspberrypi-z.local
画像に alt 属性が指定されていません。ファイル名: image-14-1024x507.png

  • このようなメッセージが出たら、「yes」と入力して、Enterキーを押しましょう。
yes

※もし変なエラーが出たら、この投稿の下部のAppendixを参考にしてみてください。

  • パスワードを求められたら、先ほど設定したパスワードを入力しましょう。

  • ヘッドレスと化したラズベリーパイ先輩にSSH接続することができました。やったぜ。

Appendix:SSH接続しようとしてヤバそうなエラーが出たら

こんなエラーが出る場合があります。(何者かに攻撃されてるゥ!?)

でも、安心してください。

落ち着いて、

ssh-keygen -R raspberrypi-z.local

を実行して、接続元に保管されている公開鍵を削除します。

※raspberrypi-zの部分は、適宜書き換えてください。

次回予告

  • ラズパイを購入して、組み立ててみた 【ラズパイ編#1】
  • ヘッドレスラズパイを構築してみた【ラズパイ編#2】←今回
  • ヘッドレスラズパイでVPN接続してみた【ラズパイ編#3】
  • ???【ラズパイ編#4】
  • ???【ラズパイ編#5】
  • ???【ラズパイ編#6】