m13o

2020-10-07 Wed 22:31
Raspberry Pi 4 のセットアップRaspberryPi howto

買ったまま放置していたラズパイ4をLAN内で動くサーバーとして使おうと重い腰を上げたので, SDCardの寿命により死んだ時のために備忘録を残します.

ubuntuをインストール&初期設定

公式サイトで頒布されているRaspberry Pi Imagerを利用しますので, ダウンロードします.

起動後, インストールするOSに64bit Ubuntu 20.04.1 LTSを選択し, PC(or mac)に接続した状態でインストール対象のSDカードを選び WRITE ボタンをクリックする事で, SDカードにイメージが書き込まれます.

ラズパイにモニタディスプレイやマウス, キーボードを接続して起動, 初期ユーザーとしてubuntuが存在するので, ユーザーをubuntu, パスワードをubuntuとしてログインします. するとパスワードを変更しろと促されるので, パスワードを変更します. 初期状態でそもそもssh接続ができるようになっているので, ログイン後に表示されるIPアドレスをメモって他のマシンから

でログインする事も可能です.

aptの儀式もしておきます.

sudo apt update
sudo apt upgrade
adduser [USERNAME]

色々インタラクティブに質問されるので, 適当に答えます.

sudoしたいので, sudoグループに作成したユーザーを追加します.

gpasswd -a [USERNAME] sudo

ubuntuユーザーからログアウトして, 作成したユーザーから入りなおします.

作成したユーザーの初期設定

タイムゾーンがUTCになっているので, 日本に合わせます

timedatectl set-timezone Asia/Tokyo

.ssh接続の設定をします.

mkdir .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
chmod 700 .ssh
echo $PUBLIC_KEY >> .ssh/authorized_keys

ssh接続する際, パスワード認証をせず公開鍵認証のみで行うようにするためにsshd_configを書き換えます.

sudo nano /etc/ssh/sshd_config

#PasswordAuthentication yes

となっている処を

PasswordAuthentication no

にし, sshdを再起動する事でパスワード認証が無効になります.

service sshd restart

ホスト名の設定

IPでアクセスするのはとても面倒なので, ホスト名を設定します.

sudo nano /etc/hostname

で/etc/hostnameを開き, 適当なホスト名に書き換えます.

LAN内からもそのホスト名でアクセスしたいので, Avahiをインストールします.

sudo apt install avahi-daemon

外付けHDDのマウント

今回はデータ管理をラズパイに外付けしたHDDで行いたいので, 外付けHDDをマウントする設定を行います. なお, 今回は事前にmacOSでexfatにフォーマット済みのHDD(4TB)を利用しています.

まずマウントポイントのディレクトリを作成します.

sudo mkdir /mnt/exthdd1

名前は適当につけました.

次に外付けHDDをラズパイに接続し, /dev/内のどれにあたるかを調べます.

dmesg | tail -n 30

を接続直後に実行して出てくるメッセージの中に/dev/sdaやsdbなどそれっぽいものが含まれているので, それを軸に探します. 今回接続したHDDは/dev/sdaになるようなので, その体裁で以降進めます.

sudo fdisk -l

で /dev/sdaに関連するデバイスの情報を調べ, それっぽい容量のものを探します. 今回利用したHDDは

  • /dev/sda1
  • /dev/sda2

の二種類があり, sda1の方はEFI Systemでパーティション容量も200MiB程度となっていたので, マウント対象は3.7TiBあるsda2という事がわかりました.

/dev/sda2では場合によっては存在しない事があるので, UUIDベースでマウントできるようにします.

ls -al /dev/disk/by-uuid/ | grep sda

こうすると, デバイスのUUIDがわかるので, それを元にマウントします.

sudo mount /dev/disk/by-uuid/[/dev/sda2のUUID] /mnt/exthdd -t exfat -o umask=000

umaskは誰でも使えるように設定しています.

これだと再起動の度に手動でマウントする必要があるので, 自動でマウントされるように /etc/fstab に設定を記述します.

念の為, blkidでUUIDを確認します.

sudo blkid

対象のUUIDをコピーした上で, /etc/fstab を書き換えます.

sudo nano /etc/fstab

UID="/dev/sda2のUUID" /mnt/usbhdd exfat defaults,umask=000 0 0

dockerのインストール

ubuntuはコミュニティがdocker.ioとしてメンテナンスをしているらしいので, これとついでにdocker-composeもインストールします.

sudo apt install docker.io docker-compose

apt経由でインストールするとdockerグループが作られるので, 自身のユーザーをdockerグループに追加します.

sudo gpasswd -a $USER docker