journalctl 特定のエラーレベルのログを抽出したい場合

journalctlコマンドの-pオプションについてググってもあまりヒットしなかったのでmanの出力をメモ


Filter output by message priorities or priority ranges. Takes either a single
numeric or textual log level (i.e. between 0/"emerg" and 7/"debug"), or a range
of numeric/text log levels in the form FROM..TO. The log levels are the usual
syslog log levels as documented in syslog(3), i.e. "emerg" (0), "alert" (1),
"crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6), "debug" (7). If
a single log level is specified, all messages with this log level or a lower
(hence more important) log level are shown. If a range is specified, all
messages within the range are shown, including both the start and the end value
of the range. This will add "PRIORITY=" matches for the specified priorities.


エラーのレベルが高い順(致命的なエラー順)に

  1. emerg
  2. alert
  3. crit
  4. err
  5. warning
  6. notice
  7. info
  8. debug


例)errレベルを抽出して出力する場合
journalctl -p err

【debian10】udisksdがmdraidモジュールが読み込めないエラー

以下のメッセージが表示される。
udisksd[759]: failed to load module mdraid: libbd_mdraid.so.2: cannot open shared object file: No such file or directory

mdraidモジュールがないことが原因らしいが、そもそもmdraidって何?

mdraid
mdraid サブシステムは Linux 向けのソフトウェア RAID ソリューションとして設計され、また Linux 環境のソフトウェア RAID に適したソリューションとなります。このサブシステムでは独自のメタデータ形式を使用します。一般的にはネイティブの mdraid メタデータと呼ばれます。

<引用元:
17.3. Linux RAID サブシステム Red Hat Enterprise Linux 6 | Red Hat Customer Portal

サブシステムという言い方が少し気になるが、LinuxRAIDを使うために必要なソフトウェアなんだろう。
やはりRAIDを付かない環境では必要ないようだ。


試しにmdraidパッケージをインストールしてみる。
sudo apt install libblockdev-mdraid2

ubuntsuのバグフォーラムで以下の投稿がありました。
バグがあるのでlibblockdev-mdraid2はudisksdを使っている環境でインストールしない方が良さそう。
なのでlibblockdev-mdraid2をアンインストール。

libblockdev-mdraid2をインストールすると、RAIDを実装していないシステムではソリューションではないmdadmがプルされます。

このようなシステムでは、udisksdは「mdraid」libblockdevプラグインをロードしようとしないでください。

https://bugs.launchpad.net/ubuntu/+source/udisks2/+bug/1811724

しばらく、このメッセージは出しっぱなしかな。

【debian10】MDS CPU bug present and SMT on, data leak possible.

dmesgでカーネルログを見ると以下のメッセージが表示された。

dmesg | grep bug
[ 0.458806] MDS CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html for more details.


Intel製CPUには「Microarchitectural Data Sampling」という脆弱性があるらしい。
システムがmdsの影響を受けるか調べるには以下を実行する。
cat /sys/devices/system/cpu/vulnerabilities/mds
Mitigation: Clear CPU buffers; SMT vulnerable ←vulunerableと出力された場合、mdsの影響を受ける。
この脆弱性を回避するには、脆弱性対策オプションをカーネルパラメータに与える。

/etc/default/grubに以下の赤字を追記する
GRUB_CMDLINE_LINUX_DEFAULT="quiet mds=full,nosmt"

GRUBの設定を反映させるには以下のコマンドを実施する。
sudo update-grub2

mds=fullはmds対策を有効にする。fullと表現するには正確にはmds緩和をできるだけ実施するということらしいので、このオプションを有効にしたからと言ってmdsの脆弱性が100%回避できるわけではないらしい。そしてこの対策を有効にするとcpuのパフォーマンスが低下する。
nosmtはハイパースレッディングを無効にする。ハイパースレッディングオフにしたほうがより厳密にmdsを対策できるらしい。理由はよくわからん。ちなみに自分の環境ではmds=full,nosmtと両方有効にしないと、カーネルログの警告が消えなかった。

<参考文献:MDS攻撃への対応>
https://gihyo.jp/admin/clip/01/ubuntu-topics/201905/17


次にintel cpuのmicro codeもアップデートする。
micro codeは最新のものを使いたいので、buster-backportsをapt-sourceに追加する。
/etc/apt/sources.listに以下を追加。

deb http://ftp.jp.debian.org/debian buster-backports main contrib non-free

その後、apt updateを行い、以下のコマンドでmicro codeパッケージをインストールする。
sudo apt install -t buster-backports intel-microcode


次にMDS脆弱性チェックツールをインストールする。
apt install spectre-meltdown-checker

MDS脆弱性チェックツールを実行
sudo spectre-meltdown-checker

チェッカーツールの結果をmds=full有り無しで比較したら、SMTのオンオフしか差分がでなかったのでカーネルオプションはmds=nosmtだけで良いかも。micro codeをアップデートしたお陰かな?

【debian10】コマンドのシステムコールをトレースする(straceコマンド)

Linux初心者だから知らなかったけど、Straceコマンドなるものがあるらしい。
コマンドのシステムコールを追跡してくれるデバッグツールみたい。

【debian10】Remminaでフォントスムージングを有効にする

リモートデスクトップの設定の「高度な設定」の品質を「最高(最低速)」にすればOK。
ただし、この設定だと影とかアニメーションも有効になってしまうので、フォントスムージングだけ有効にしたい場合は品質の設定を変更する必要がある。品質の設定を変更するにはRemminaメインウィンドウの「Prefereces」→「RDP」タブ→Quality settingsから変更したい品質を選択してフォントスムージングのみチェックを入れる。
その後、リモートデスクトップ設定の「高度な設定」から先程編集した品質に変更すればフォントスムージングのみ有効にすることが可能。

【debian10】NETBIOS名を解決してWIndowsコンピュータ名でリモートデスクトップ接続する

使用するリモートデスクトップクライアントはRemmina

LinuxでNETBIOS名を解決する方法
以下を参考にした。
Rdesktop - ArchWiki

改めてdebian11になったときにsambaをインストールしなくても、NETBIOS名を解決できたので取り消し線部分は実施しなくてもOKです。

1.aptで次のパッケージをインストールする
samba, winbind, libnss-winbind


2. /etc/samba/smb.confを編集
デフォルトのsmb.confには記載がない「wins support = yes」を追記

3. /etc/nsswitch.confを編集
hosts:行にwinsを追加(赤字箇所)
hosts: files mdns4_minimal [NOTFOUND=return] dns wins myhostname

4. smbdとnmbdを再起動する

sudo systemctl restart smbd
sudo systemctl restart nmbd

5. ping <NETBIOS名>をやってみてpingの応答があれば成功

■RemminaでNETBIOS名を解決する方法
上記設定に加えてRDPのアドレスにNETBIOS名.localで接続する

例) windows-pc.local 

【debian10】ロジクールトラックボール(T-BC21) 別名:Marble Mouseを使う

写真のロジクールトラックボールT-BC21でホイールエミュレーションを行う方法
f:id:SuperSecretTech:20210105145659j:plain

1./usr/share/X11/xorg.conf.d に移動

2.sudo touch 50-trackball.conf

3.sudo nano 50-trackball.conf
  以下を記入

Section "InputClass"
        Identifier      "Marble Mouse"
        MatchProduct    "Logitech USB Trackball"
        Driver          "libinput"
        Option          "ScrollMethod" "button"
        Option          "ScrollButton" "8"
        Option     "MiddleEmulation" "on"
EndSection

4.OSを再起動すればホイールエミュレーションが使えるようになります。


■追記
上記設定だと、水平スクロールが効いてしまってウザかったので無効にする方法を探していたら以下のURLにこのトラックボールについて詳しく書かれていた。
正式にはLinuxではMarble Mouseっていうっぽいね。
水平スクロールを無効にするには、以下をトラックボールのセクションに追加する。
Option "HorizontalScrolling" "false"

Logitech Marble Mouse - ArchWiki