前書き

TrueNAS CORE から Ubuntuへ乗り換えようとしたが、Ubuntu 22.04.x live server amd64 では私が望んだパーティション構成を作ることができなかった。

古い形式のインストーラーが利用できる最後の Ubuntu 18.04.5 server amd64 では実現できたましたが、Ubuntu 22.04にアップグレードしたときに、システムが起動しなくなった。(実験環境で発生してくれて本当に良かった………)

このことから、UbuntuではなくUbuntuの元になっている Debianを使ってサーバーを構築することにした。

過去にUbuntu Serverを愛用していたのだが、Debianでもおおよそ同じことができた。Ubuntu人気にあやかってDebianを使って行こうと思う。

私が望むパーティション構成とは

Luksを使用したパーティションをLVMなしで設定し、btrfsをルートにマウントする構成。

Liveインストーラーでは、Luksを使用したい場合はLVMを一緒に使うことが必須となっている。LVMで提供されている機能はbtrfsで利用できるので、管理を簡略化したいという思いから、LVMは利用しない手を探りたい気持ち。

Liveインストーラーではない従来のインストーラーUbuntu 18.04.5 server amd64を使用し、Luksの自動ロック解除を設定してUbuntu 22.04までアップグレードしたところで、Ubuntuが起動しなくなった。(Emargency modeに入ってしまう)
Luksの自動ロック解除を設定しない場合は22.04までアップグレードできるのだが、ロックの解除が面倒なのでパスしたい……。

ということで、Debianを使ってサーバーを構築してみることにした。

ロケール

私は、Ubuntu 18.04 の従来の(Liveではない)インストーラーで日本語を選んだ時にインストール操作が止まるという経験をして以来、インストール時はC.UTF-8(No localization)を選んでいます。

一方、Debianではインストール時にC.UTF-8(No localization)選べず、No localizationだとC(No localization)が利用できます。しかし、UTF-8を使わないとアプリケーションで日本語を扱うときに文字化けのオンパレードになります。

インストール後、ロケールを変更してこの問題を回避します。

現在のロケール

localectl

利用可能なロケール

localectl list-locales

利用したいロケールがない場合

vi /etc/locale.gen

利用したいロケールのコメントアウトを解除

locale-gen

ロケールの変更

localectl set-locale LANG=C.UTF-8

参考資料

aptでcd-romを使わない

vi /etc/apt/sources.list

「deb cdrom:」から始まる行の先頭に#を挿入してコメントアウト

apt update

参考資料

sudoの許可

apt install sudo

sudoを許可するユーザーをsudoグループに追加します。Debian系では、(英語的に)非常にわかりやすいコマンドが使えます。

adduser USER sudo

ほかのディストリビューションで使えるコマンドを一応置いておきます。

usermod -aG sudo USER
gpasswd -a USER sudo

参考資料

IPv6 Privacy Extension

サーバーからどこかへ接続するときに接続するときに使うIPv6アドレスに Privacy Extensions を適用する。

ただ、サーバーとして使う時はあまり一般的な設定ではないかもしれない。

vi /etc/sysctl.conf
net.ipv6.conf.enp1s0.use_tempaddr = 2
net.ipv6.conf.enp1s0.temp_valid_lft = 86400
net.ipv6.conf.enp1s0.temp_prefered_lft = 3600

参考資料