Debian インストーラーのRC1が出てきて、パッケージもだいたい固定されました。正式リリースまで現状から大きな変化は無いので、RC1インストーラー使用後にやっておくとよさそうなことをまとめます。Debian amd64 の話で、ラズパイ用のRaspberry Pi OSではない純正Debianは https://qiita.com/kakinaguru_zo/items/e69adff9c92a959c9453 を見て下さい。Raspberry Pi OSのパッケージをDebian 11 Bullseyeに更新する手順は https://qiita.com/kakinaguru_zo/items/78aa8ba3912a131fd078 を見て下さい。デスクトップ環境(GUI)の話はほとんどありません。
インストーラー(ファームウェア付き)
普通にインストーラーをダウンロードするとファームウェア無しのものが来ますが、それだと無線LANが使えません。 https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/ から無線LANなどのファームウェアが含まれるCDイメージをUSBメモリーなどに書き込んで使用して下さい。それでもインストール時に無線LANを使えないことがありますが、インストールしてNetworkManagerなどを設定するとつかえるようになる場合が多いです。デスクトップ環境や日本語環境は不要ですが、インストーラーから「標準パッケージ」を入れておかないとあとで不便なことになることが多いので入れたほうがいいです。
インストール終了後rootでログインしてから行う作業
apt
関連の設定
/etc/apt/apt.conf.d
APT::Default-Release "bullseye";
APT::Install-Recommends 0; インストール時に必須ではないが推奨されるパッケージを入れないなら
APT::Get::Purge 1; アンインストールしたときに設定ファイルも一緒に消すなら
APT::Get::Upgrade-Allow-New 1;
Acquire::http::Proxy "http://127.0.0.1:8000/"; もしsquid-deb-proxyやapt-cacher-ng を使っているなら
/etc/apt/sources.list
RC1インストーラーはbullseye-updates
と bullseye-backports
を選択しても sources.list
に追加してくれないので、手作業で以下のように追加します。追加したら apt-get update
して下さい。
deb http://deb.debian.org/debian bullseye main contrib non-free
deb http://security.debian.org/ bullseye-security main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb http://deb.debian.org/debian bullseye-backports main contrib non-free
ファームウェアやCPUマイクロコードのインストール
必要なファームウェアを自分で選択して入れる必要があるところが、Ubuntuとの違いです。
CPUマイクロコード
を必ずインストールします。そうしないとバグがあるままCPUを用いることになり危険です。
一般のファームウェア
linux-firmware-free と firmware-misc-free をまず入れます。その他に名前がfirmwareから始まるパッケージ で必要そうなものを入れます。よく必要になるものは以下の通りです。
- firmware-amd-graphics
- firmware-intel-sound
- firmware-intelwimax
- firmware-ipw2x00
- firmware-iwlwifi
- firmware-sof-signed 最近のIntel製サウンドカード
無線やサウンドなどのの製造元はlspci
で調べます
/etc/fstab
へのマウントオプション追加
ファイルシステムはext4
かbtrfs
を仮定しています。書き込みを速くするものが多いです。
例:
UUID=ナントカ / ext4 rw,async,lazytime,strictatime,data=writeback,journal_async_commit,nobarrier 0 1
-
lazytime
タイムスタンプの更新以外の書き込み操作が無いときはその書き込みを先送りする。これを用いるとよく勧められるnoatime
やrelatime
の代わりに遅いと言われるstrictatime
を用いても遅くなりません -
nobarrier
ディスクデバイスドライバがキューに溜まっている書き込みの順番変更を許容するようにし、ストレージデバイスにより適した順番でデータを書き出せるようになります。 -
data=writeback
(ext4のみ) これをrootパーティションに使うときはtune2fs -o journal_data_writeback /dev/ナントカ
をマウントしたままで構わないので行わないとrootのマウントできなくなり起動しなくなります… -
journal_async_commit
(ext4のみ) 前提としてdata=writeback
が必要です。
ネットワークの設定
DebianおよびUbuntuでネットワークの設定を行うパッケージには主に
- NetworkManager
- systemd-networkd
- ifupdown
- netplan.io
がありますが、どれか一つを選びそれ以外のネットワーク設定パッケージをすべて apt-get purge
します(systemd-networkd
はデフォルトでは起動しないのでそのままでよい)。とくにifupdown
を purge
した後は、rm -rf /etc/network
で関連する設定ファイルを消しておきます。CUIのnmtui
コマンドまたはGUIで設定できるNetworkManagerがもっともユーザーフレンドリーです。無線LANを使う場合はwireless-regdbと、wpasupplicantまたはiwdをインストールします。
wpasupplicant
を用いる場合NetworkManager付属のnmtui
などで簡単に無線LANの設定を行えますが、iwd
を用いる場合以下の設定が必要になります。
[device]
wifi.backend=iwd
root
で以下のコマンドを実行した後に、nmtui
を使用します。
# apt-get install iwd
# systemctl disable --now wpa_supplicant
# systemctl restart NetworkManager
その他のパッケージ
メール関係
入れないとエラー関連のメールが届かないので…
記憶媒体の監視
SSD にせよ HDD にせよ経年劣化でそのうち壊れますが、ヤバくなってきたときにメールを送ってくれるパッケージ smartmontools を入れます。メールが来ないで突然死することもあります。
まず smartctl -x /dev/デバイス名
で診断情報を表示できるか調べます。表示されない場合 man smartctl
するか、デバイスが対応していないと考えて諦めます。
/dev/監視したいデバイス -a -o on -S on -s (S/../.././02|L/../../6/03) -m root
などと書いておくと定期的にセルフテストを行わせ、ヤバイときに root
にメールさせられます。
ハードウェア乱数生成器の活用
最近のデバイスにはハードウェア乱数生成器が付属している場合が多いですが、 rng-tools5 を入れておくとハードウェア乱数生成器を /dev/random
などで活用できるようになるため、無線LANなどでも必要になる暗号鍵の生成などがより安全かつ高速になります。
ファイアーウォール関連
ファイアーウォール関連の設定は最近では nftables で行われ、従来使われていた iptables のパッケージページには**「いますぐ移行を検討して下さい」** と書かれてしまっています…😱しかし、/etc/nftables.conf
を手書きで書くのはなかなかシンドいです(私はそうしていますが…)
そこで、Debian/Ubuntu ではもう少し親切なユーザーインターフェースとしてufw が用意されていて、これを用いると自動的にnftablesを用いた設定になります。
また、RedHat/Fedora系の標準であるfirewalldも問題なく使えますが、必ずufwを apt-get purge
してから使います。ufwとfirewalldを同時に使うとわけがわからないことになります。GUIを用いてfirewalld
を設定するときにはfirewall-configとfirewall-appletを入れると便利です。
一般ユーザーのグループへの追加
特殊なグループ に所属する一般ユーザーは以下のことができるようになります。必要に応じて adduser ユーザー名 グループ名
というコマンドを用いて追加します。adduser
を用いて新ユーザーを作成したときに自動的に所属するグループは /etc/adduser.conf
のEXTRA_GROUPS
とADD_EXTRA_GROUPS
を用いて設定できます。
-
netdev
: NetworkManagerを用いてネットワーク設定を変更できるようになります -
plugdev
: USBやSDカードの記録媒体にアクセスできるようになります -
video
: ウェブカムやフレームバッファデバイスなどにアクセスできるようになります -
audio
: 音声出力や入力をできるようになります -
bluetooth
: ブルーツースを使えるようになります -
cdrom
,floppy
,tape
: それぞれのデバイスにアクセスできます -
kvm
: qemuを直接使うときにKVMをつかえるようになります。 -
libvirt
:virt-manager
,virsh
などlibvirt
を用いた仮想マシンやコンテナへのアクセスをできるようになります