RaspberryPi howto
Raspberry Pi 4 のセットアップ買ったまま放置していたラズパイ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