Raspberry Pi 4 Fedora 37のシリアルコンソールを有効にするには

前回、Fedora 37でVPNサーバを構築したのですが。

firewalldの設定に失敗してしまい、sshによる仮想ターミナル接続ができなくなってしまいました。

これはかなり面倒な状況で、文鎮化・・・。

いざという時、シリアル端子からコンソールに接続できるように。

https://denor.jp/%E3%82%B7%E3%83%B3%E3%82%B0%E3%83%AB%E3%83%9C%E3%83%BC%E3%83%89%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%81%AB%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC

Fedora 37のシリアルコンソール有効化手順を記録させて頂こうと思います。


Fedora 37のシリアルコンソール有効化

/boot/grub2/grub.cfgは自動生成のため編集不可

/boot/grub2配下の設定ファイルを確認したところ。

「DO NOT EDIT THIS FILE」と記載があります。

近年のRHEL系は、たとえば静的IPアドレスの設定は、configファイルの編集ではなくコマンドで行うようです。こちらの記事の通りです。

https://denor.jp/raspberry-pi-4%E7%89%88fedora-37%E3%81%AEip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E8%A8%AD%E5%AE%9A%E7%AD%89%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E8%A6%9A%E6%9B%B8

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のシリアルコンソールが有効になりました。

シリアル端子に、USB-シリアルアダプタを接続。

再起動すると、確かにシリアルコンソールに、ブート時のメッセージが出力されるようになり、最後にコンソールへのログイン画面が表示されました。

firewalldのような、ネットワークまわりの設定を変更したい場合。

ネットワークとは別の、仮想ではないリアルなターミナル接続方法である、シリアルコンソールを有効にしておいたほうが、設定ミスに対する回避策が作れて、有効だと思います。

ブート時のコンソール出力も、起動時にリアルタイムに色々と情報が得られて大変有意義です。

共有の空間にシリアル端子がある場合は、セキュリティ上のリスクがあると思います。仮想ターミナル接続と異なり、シリアルを切断してもログオフされない挙動です。(タイムアウトでログオフされますが

そのあたり、しっかりリスク管理した上で、シリアルコンソールを有効にするのも、いろいろと勉強になるのかと思います。[amazonjs asin=”B07BBPX8B8″ locale=”JP” title=”DSD TECH SH-U09C USB – TTLシリアルアダプター + FTDI FT232RLチップ Windows 10 8 7 Mac OS X対応”]

 

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です