🍉

Raspberry PiでUbuntu Serverの初期設定(初回起動からIPアドレス固定まで)

2023/08/20に公開

この記事ではRaspberry Pi(ラズパイ)でUbuntu Serverを使うための初期設定の手順を解説します。
Ubuntu ServerはSSH接続して操作するのが一般的ですので、それに必須なIPアドレス固定の方法も解説します。

使う機材とOS

  • Raspberry Pi 3B
  • Ubuntu Server 23.04(32-bit)

これ以外の型やバージョンでも大抵の場合同じ手順です。

(microSDカードにOSをインストールする部分の解説は含まれていません。)

ラズパイ起動

モニターをHDMIケーブルで接続、キーボードをUSBで接続、LANケーブルを接続します。その後、ラズパイの電源ケーブルを挿すと勝手に起動します。
ラズパイとモニターを接続してからラズパイの電源ケーブルを挿さないとモニターに何も映らない場合がありますので順序に気をつけてください。

文字がずらーっと出たりカラフルな画面が出たりしますが、しばらくすると下のような文字が出てきますのでそれまで待機してください。

Ubuntu 23.04 ubuntu tty1

ubuntu login:

初回ログイン

まずは「ubuntu」と入力します。

ubuntu login:

次に初期パスワードである「ubuntu」を入力します。

Password:

するとYou are required to change your password immediately(パスワードをすぐに変更してね)と出るので画面にしたがって新しいパスワードを作成します。

「現在のパスワードは?」と聞かれてますので初期パスワード「ubuntu」を入力します。

Current password:

新しいパスワードを入力します。頻繁に入力することになりますので複雑すぎないのがおすすめです。

New password:

確認のため新しいパスワードを再度入力します。

Retype new password:

一連の画面は以下の感じです。
ubuntu login: のあとに続く[ 30.776285] cloud〜は出ても出なくても気にしなくて大丈夫です。

ubuntu@ubuntu:~$

これが出たらログイン成功です。

ネットワーク情報の確認

IPアドレスの固定をする際固定するIPアドレスとデフォルトゲートウェイのIPアドレス、DNSアドレス、サブネットマスクが必要になりますのでそれを確認していきます。

net-toolsをインストール

まずネットワーク関連のパッケージであるnet-toolsをインストールします。

$ sudo apt install net-tools

デフォルトゲートウェイとDNSアドレスとサブネットマスクの確認

$ ip route

下が出力結果の例です。

今回の例だと
デフォルトゲートウェイ:192.168.0.1
DNSアドレス:192.168.0.1
サブネットマスク:/24

固定するIPアドレスを決める

次に現在のIPアドレスを確認します。

$ hostname -I

出力例

192.168.0.12
        ↑ここが家や研究室によって違う(今回は0)

最初の3つは変更できないので今回の場合だと192.168.0.2〜192.168.0.255の中からIPアドレスを選べます。(192.168.0.1はほとんどの場合ルーターであるため)
注意点として先ほど調べたサブネットマスクが/24でない場合は選べる範囲が変わります。大抵の場合/24なので問題ないとは思いますが。

とりあえず例として192.168.0.6にしてみます。
IPアドレスをなんとなく決めたらそれが既に他の機器で使われていないかを確認します。

$ ping <決めたIPアドレス>

今回の場合

$ ping 192.168.0.6

既に使われていたら下の画像のようにちょこちょことping値が出てきます。

既に使われていたら違うIPアドレスにしないといけません。とりあえず例として192.168.0.10にしてみます。
使われていないと下の画面のようにDestination Host Unreachable (ホストに到達できないよ)がちょこちょこ出てきます。

これでIPアドレスは192.168.0.10に決まりました。

IPアドレス固定のための設定ファイルを作る

設定ファイルのディレクトリまで移動

$ cd /etc/netplan

最初からある50-cloud-init.yamlを複製する。

$ cp 50-cloud-init.yaml 60-cloud-init.yaml

60-cloud-init.yamlのファイル名は50-cloud-init.yamlより名前順が後ろになる名前ならなんでも大丈夫です。

ファイルを編集する

$ sudo vi 60-cloud-init.yaml

以下のように変更してください。

network:
    ethernets:
        eth0:
            dhcp4: false
            addresses: [<固定したいIPアドレス><サブネットマスク>]
            gateway4: <デフォルトゲートウェイのIPアドレス>
            nameservers:
              addresses: [<DNSアドレス>]
    version: 2

今回の例の場合
デフォルトゲートウェイ:192.168.0.1
DNSアドレス:192.168.0.1
サブネットマスク:/24
IPアドレス:192.168.0.10

このviがかなり癖があるので簡単な操作だけ紹介します。
aキーを押すと編集モード
Escキーを押すと閲覧モード
閲覧モードの状態で:wqを入力してエンターで保存して終了
閲覧モードの状態で:q!を入力してエンターで保存せずに終了

変更を反映させるため再起動

$ sudo reboot

IPアドレスの固定に成功したか確認

まずはネットワークに繋がっているかの確認

$ curl http://www.google.com

これでながーい文字が出力されればOKです。
curl: (6) Could not resolve host: www.google.comのようなエラーが出たら60-cloud-init.yamlを見直してください。

次にIPアドレスが指定したものになっているかの確認

$ hostname -I

これで設定したIPアドレスになっていればOKです。(今回の例の場合192.168.0.10が出力されればOK)

これでお使いのMacやWindowsからラズパイへSSH接続できます。

$ ssh ubuntu@<固定したIPアドレス>
$ ssh ubuntu@192.168.0.10(今回の例の場合)

Discussion