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アドレスをメモって他のマシンから

ssh ubuntu@xxx.xxx.xxx.xxx

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

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