Ubuntu 22.04で画面が表示されない/真っ暗な問題の解決法
問題
ログイン画面は通過するものの、ログインしたあと、何も表示されない問題(←筆者が遭遇)
ログイン画面すら表示されない(←調べているときに記事がたくさんあった)
結論
問題は以下の3点かも。
1.強制終了した際に、GUIの設定ファイルであるxorg.confが壊れてしまったこと
2.Waylandが手持ちのマシンと合わず悪さをしていたこと
3.gdm3の関連ライブラリが壊れていること
全く知識のない状態から、とりあえず回復したので、備忘録。
なるべく周辺知識も書きますが、正直私の言っていることが正しいか自信がない。
解決策
ともかくターミナルでログイン
まずは、Ctrl + Alt + F3~F6
を押して、CUIにてログインします。なお、普段見ているGUIはCtrl + Alt + F1~F2
なので、GUIに戻りたいときはそのようにします。
gdm3を修復する
まずはgdm3がうまくいっているかどうかを確認します。
# gdm3サービスの状態確認
systemctl status gdm3
ここでdeadしているようであれば再インストールして修復します。
# gdm3の再インストール
sudo apt install --reinstall gdm3
# gdm3サービスを開始
sudo systemctl start gdm3
# サービスの状態確認
systemctl status gdm3
これでまだdeadしているなら追加の調査が必要でしょう。
すくなくともここまでうまくいけば、ログイン画面は表示されるはずです。
WaylandからXorgに切り替え
次にgdm3の設定を修正してWaylandを使わないようにします。
vim /etc/gdm3/custom.conf
この中にWaylandEnable=false
というコメントアウトされた行が存在するので、コメントを消して保存します。そのあとに
sync
reboot
でXorgが使われるようにします。
Xorgの設定ファイルを修復する
最後にXorgの設定ファイルを修正します。suでログインします。
sudo su -
Xorgで新しい設定ファイルを作成し、既存の設定ファイルと入れ替えます。
すでに設定ファイルが存在していても、壊れている可能性があるので入れ替えます。(これで3敗)
Xorg -configure
cp -f /root/xorg.conf.new /etc/X11/xorg.conf
なお、事前にログインを試行したりしてXorgが起動していると、Xorg -configure
でコケます。
以下のようなエラーがでます。
Cannot establish any listening sockets - Make sure an X server isn't already running(EE)
その際はXorgを落とせば良いです。以下のコマンドでPIDが確認できます。
ps c | grep Xorg
以上で直るはずです。
解説
UbuntuのGUIは元々X Window Systemというプロトコルによって実現されており、Xorgが代表的な実装例です。ただし、XorgおよびX Window Systemはあまりに古く、Waylandという後継のプロトコルで代替されつつあります。
X Windows System:
Xorg: Wayland:22.04ではデフォルトでWaylandが使われています。これが機能していないのが問題のようです。
なお、ログイン画面だけはgdm3で管理されているようで、その先はXorgまたはWaylandの領分のようです。
つまり、ログイン画面に入れないならgdm3が悪くログイン後に画面が表示されないならWaylandが悪いようです。
感想
Ubuntuを使っているんですが、よく強制終了する関係で、Xorgが死にがちです。これに取り掛かるのはもう3回目なので、流石に自分で記事を書くことにしました。将来の自分に向けてラブを。
Discussion