Raspberry Pi 4にUbuntu 22.04.4環境を整えていく話

Raspberry Pi 4にUbuntu 22.04.4を入れてサーバーを立てて遊んでいたのですが、外付けHDDのマウントのやり方を致命的に間違えた結果、カーネルパニックさんが発生したため、泣く泣く環境を再構築しました。みなさんは中に大事なものが入ってるフォルダにマウントしないようにしましょうね。

今後また万が一ゼロから環境を作ることが(いやですが)発生しても手順が分かるように、ここに記録を残しておきたいと思います。
sudoはどれで必要だかよくわからなくなったので省略します。


1. Raspberry Pi ImagerでSDカードを用意する。

https://www.raspberrypi.com/software/ のRaspberry Pi Imagerを使ってSDカードにUbuntu Server 22.04.4を入れる。

2. ユーザーアカウントの設定、キーボードレイアウト変更など

SDカードから起動するとログイン画面が出る。ubuntu/ubuntuで入れる。すぐにパスワード変更するように言われるので適当に変更。このデフォルトユーザーではないsudoユーザー[USER NAME]を作りたいが、後述のコマンドを打つ際に日本語キーボードの記号入力で困ったので、まず以下のコマンドを実行するのがよい。

$ dpkg-reconfigure keyboard-configuration 

Generic 105-key PC→Japanese→Japanese→The default for the keyboard layout→No compose key
と選んでいって設定完了。引き続き下記コマンドへ。参考

$ adduser [USER NAME]
// ubuntuのgroupsを[USER NAME]にコピー
$ usermod -a -G $(id -nG ubuntu | tr " " ,) [USER NAME]
// ubuntuグループもコピーされてしまうのでそれは削除
$ gpasswd -d [USER NAME] ubuntu

一旦ログアウトして[USER NAME]でログイン。下記でubuntuユーザー削除。

$ deluser --remove-home --backup ubuntu

3. ホスト名、フォント、タイムゾーン、NTPサーバー設定

ホスト名変更:

$ hostnamectl set-hostname [HOST NAME]

フォント変更:参考/好みの問題で「Terminus」を選択、他はデフォルト。

$ dpkg-reconfigure console-setup

タイムゾーン変更:

$ ln -sf /usr/share/zoneinfo/Japan /etc/localtime

NTPサーバー変更:

$ vi /etc/systemd/timesyncd.conf
---
NTP=ntp.nict.jp
---

4. インストールする系

忘れないうちに

$ apt update
$ apt upgrade

upgrade時にいちいち大袈裟な画面が出て鬱陶しいので、下記を設定。

$ echo "\$nrconf{restart} = 'a';" | tee /etc/needrestart/conf.d/50-local.conf

sambaは早めに入れておく。

$ apt install samba samba-common-bin
// 共有フォルダ作成
$ mkdir /var/samba
// オーナー変更
$ chown [USER NAME]:[USER NAME] /var/samba
// 外部からアクセスする用
$ pdbedit -a [USER NAME]

共有フォルダに外部ストレージをマウントしたいため、いろいろやる。
参考書籍

// デバイスファイル名を確認([sd**]と書いてある)(以下、[sda]として記述)
$ dmesg
// 自動マウントしてたらアンマウントする
$ df
$ umount /dev/sda1
// パーティション構成ツールをインストールして実行
$ apt install gdisk
$ gdisk /dev/sda

// 以下はgdiskの操作。主なコマンドを挙げる。
// パーティションの確認
:p
// パーティションの削除
:d
// パーティションの作成
:n
// 作成を保存して終了
:w

// パーティション1のフォーマット
$ mkfs.ext4 /dev/sda1
// マウント
$ mount /dev/sda1 /var/samba
// マウントの確認
$ df

// 起動時マウント設定をする
// UUIDの確認
$ blkid /dev/sda1
// 設定ファイルに記述
$ vi /etc/fstab
---
UUID=[UUID] /var/samba   ext4  defaults  0  0
---
// 再起動してマウントされてることを確認する
$ reboot now

サーバー系(Misskeyサーバーを建てる)はこちらを参照ください。

5. ネットワーク系

IPを固定するなどの設定:

// 後述[eth0]部分を確認する
$ ip a
// 設定ファイルに記述
$ vi /etc/netplan/99_config.yaml
---
network:
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - [IP ADDRESS]/[SUBNET MASK]
      routes:
        - to: default
          via: [DEFAULT GATEWAY]
          metric: 100
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  version: 2
---
$ netplan apply

ファイアウォール(ufw)の設定:参考

$ vi /etc/default/ufw
---
// IPv6をOFF
IPV6=no
---
// ログにそこそこ出す
$ ufw logging medium
// 入ってこないで
$ ufw default deny incoming
// 出ていくのはOK
$ ufw default allow outgoing
// ローカルネットワークのみsamba許可
$ ufw allow from 192.168.0.1/24 to any app samba
// httpはOK
$ ufw allow to any port 80 proto tcp
// httpsはOK
$ ufw allow to any port 443 proto tcp
// 設定を確認
$ ufw status numbered
// 設定の有効化
$ systemctl enable ufw

ひとまず以上です。

この記事が気に入ったらサポートをしてみませんか?