firewalldの設定に失敗してしまい、sshによる仮想ターミナル接続ができなくなってしまいました。
これはかなり面倒な状況で、文鎮化・・・。
いざという時、シリアル端子からコンソールに接続できるように。
Fedora 37のシリアルコンソール有効化手順を記録させて頂こうと思います。
目次
Fedora 37のシリアルコンソール有効化
/boot/grub2/grub.cfgは自動生成のため編集不可
「DO NOT EDIT THIS FILE」と記載があります。
近年のRHEL系は、たとえば静的IPアドレスの設定は、configファイルの編集ではなくコマンドで行うようです。こちらの記事の通りです。
grubの引数の編集も、どうやらコマンドで行うのかなと思います。
grubbyコマンドによるシリアルコンソール有効化
RHELの公式資料を拝見しました。
https://access.redhat.com/articles/3166931#config9
こちらの資料によりますと、近年はgrubbyコマンドで、GRUB2の引数(args、arguments)を設定するようです。
引数を確認後、console=の引数を追加しました。
# 既存の引数を確認
sudo grubby --info=ALL|grep -i args
# シリアルコンソール有効化
sudo grubby --update-kernel=ALL --args="console=tty0 console=ttyS0,115200"
# 正しく変更されたかどうか確認
sudo grubby --info=ALL|grep -i args
これで確かに、コンソールがシリアル接続のターミナルに変更されました。
確かに/etc/default/grubファイルに設定が反映されています
/etc/default/grubファイルを確認すると、確かにGRUB_CMDLINE_LINUX行にconsole引数が追加されていました。
先ほどの/boot/grub2/grub.cfgファイルと同様、ファイルを編集するのは誤りで、コマンドで変更するやり方が正しいと思います。
以上でFedora 37のシリアルコンソールが有効になりました。
再起動すると、確かにシリアルコンソールに、ブート時のメッセージが出力されるようになり、最後にコンソールへのログイン画面が表示されました。
firewalldのような、ネットワークまわりの設定を変更したい場合。
ネットワークとは別の、仮想ではないリアルなターミナル接続方法である、シリアルコンソールを有効にしておいたほうが、設定ミスに対する回避策が作れて、有効だと思います。
ブート時のコンソール出力も、起動時にリアルタイムに色々と情報が得られて大変有意義です。
共有の空間にシリアル端子がある場合は、セキュリティ上のリスクがあると思います。仮想ターミナル接続と異なり、シリアルを切断してもログオフされない挙動です。(タイムアウトでログオフされますが
そのあたり、しっかりリスク管理した上で、シリアルコンソールを有効にするのも、いろいろと勉強になるのかと思います。