Ubuntu Desktop 22.04 の起動が毎回ハングする: Zeroconf の依存関係?

Ubuntu Desktop 22.04 の起動が毎回ハングする: Zeroconf の依存関係?

Ubuntu Desktop 22.04 の起動プロセスは特に脆弱で、構成中に常にハングアップしていることがわかりました。まだ原因を突き止められていないので、デバッグを続ける中で、何が起こっているのか誰かにわかるか聞いてみようと思いました。おそらく、私たちの知る範囲にはまだ届いていない、一般的な知識が何かあるのでしょう。

Ubuntu 22.04の起動プロセスは、iptables DROPルールによるZeroconfトラフィックの拒否やavahi-daemonパッケージの不在に特に敏感であるように思われます。特に物理ネットワーク接続が存在する場合です。Ubuntu 20.04 LTSでは、このような動作は見られません。また、システムは最初の起動を通過できません。

# apt update && apt upgrade

そのプロセスはハングせず、その後の再起動もハングしません。したがって、原因は特定されたようですが、ブートハングの様相は特定されていません。

ブートハングはさまざまな形で発生しますが、最も一般的なのは systemd の順序付けサイクルまたはパーティションのマウント失敗であり、これらが関連している可能性があります。これがどこをたどるのかは明らかではありません。

  • ここでは何も明らかではありませんが、ユニットの順序である可能性があります。
  • おそらくユニットの順序は、zeroconfネットワークトラフィックの不在によって影響を受けている(つまり(ターゲットに到達できないようにすることで)しかし、ローカル プロセスが d-bus 経由で通信しない理由は明らかではありませんが、tcp-ip 経由で通信する場合、ブロードキャスト トラフィックよりも安全な名前解決を実装しないのはなぜでしょうか。基本的に、このようなトラフィックが存在する理由、そのソース、または宛先はまったく明らかではありません。
  • また、パージ後のパッケージ依存関係が満たされていない可能性もあります。エラー メッセージでは漠然と snapd が示唆されていますが、単に別の被害者である可能性もあります。逆依存関係分析では、gnome (vanilla-gnome-desktop または gnome-shell) (おそらく libapache2-mod-dnssd 経由)、systemtap、telepathy-salut、またはその他の何かが示唆される可能性がありますが、これらがどのように組み合わさっているか、またはハングの具体的な様相が何であるかは、少なくとも私 (せいぜい素人のシステム管理者) には明らかではありません。

私たちは、avahi-daemon、network-manager、ufw、netplan.io、ModemManager、fprintd、ppp、linux-ppp などのあらゆる種類の無関係または不要なゴミを消去し、systemd-networkd を介してネットワークを構成し、ネットワークが起動する前に起動時に iptables を実行できるようにする、通常のインストール スクリプトをデバッグしています。デバッグ プロセスは、最初は消去なしで開始され、パッケージ単位での消去後に再起動されます。

iptables ルールは、すべてのブロードキャストおよび zeroconf トラフィックを含む、明らかに不良なパケットをドロップします。カーネルはパケット転送用に構成されているため、これらの DROP ルールは mangle テーブルの PREROUTING チェーンにあり、フィルター テーブルの INPUT および FORWARD チェーンに到達する前にスクラブされます。おそらく、これによりループバック インターフェイスへのトラフィックもスクラブされます。INPUT、OUTPUT、および FORWARD ルールは、それぞれの場合でデフォルトの DROP ルールの前に適切なトラフィックを受け入れます。ここでのデバッグには、zeroconf DROP ルールのコメント アウトが関係しており、これにより場合によってはブートが復元されますが、理由は不明です。

不思議なことに、マシンのイーサネット ケーブルが取り外されている場合、この構成はいずれもブート プロセスに何の影響も与えません。

デバッグは継続中ですが、何が機能しているのか、また安定したインストールを実現する方法についての建設的なご意見をいただければ幸いです。この問題が解決されるまで、私は仕事をしません。

関連情報