🪛
Ubuntu 24.04でGDM3がクラッシュしてログインできない問題の備忘録
Ubuntu 24.04でGDM3がクラッシュしてログインできない問題の備忘録
問題の概要
Ubuntu をインストールして環境設定を整えて再起動すると何故かログイン画面までたどり着けなくなったので修復方法を記載します。
結論、Ubuntu 24.04.2 LTSでGDM3(GNOME Display Manager)が壊れていたので、ログイン画面までたどりつけませんでした。
問題の診断手順
1. システムログの確認
まず、GDM3の状態とログを確認します:
# GDM3サービスの状態確認
systemctl status gdm3
# システムログでGDM3関連のエラーを確認
journalctl | grep -i gdm | tail -10
実際の確認結果は以下の通りでした:
$ systemctl status gdm3
○ gdm.service - GNOME Display Manager
Loaded: loaded (/usr/lib/systemd/system/gdm.service; static)
Active: inactive (dead)
$ journalctl | grep -i gdm | tail -10
6月 21 14:06:35 ubuntu-desktop gnome-shell[2393]: Registering session with GDM
6月 21 14:06:35 ubuntu-desktop gnome-shell[2393]: Error registering session with GDM: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.DisplayManager was not provided by any .service files
6月 21 14:29:58 ubuntu-desktop update-notifier-crash[6661]: gdm3
6月 21 14:30:49 ubuntu-desktop update-notifier-crash[7202]: gdm3
6月 21 14:33:49 ubuntu-desktop gnome-shell[2445]: Registering session with GDM
6月 21 14:33:49 ubuntu-desktop gnome-shell[2445]: Error registering session with GDM: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.DisplayManager was not provided by any .service files
6月 21 14:34:17 ubuntu-desktop update-notifier-crash[3776]: gdm3
GDM3サービスが停止状態で、複数のクラッシュレポートが生成されていることが確認できます。
2. クラッシュレポートの確認
Ubuntuではクラッシュが発生すると自動的にクラッシュレポートが生成されます:
# クラッシュレポートの一覧確認
ls -la /var/crash/
# GDM3のクラッシュレポートを解析
sudo apport-unpack /var/crash/_usr_sbin_gdm3.0.crash /tmp/gdm3-crash
cat /tmp/gdm3-crash/SignalName
cat /tmp/gdm3-crash/StacktraceTop
実際の診断結果は以下の通りでした:
$ ls -la /var/crash/
合計 5020
drwxrwsrwt 2 root whoopsie 4096 6月 21 14:34 .
drwxr-xr-x 14 root root 4096 6月 20 00:10 ..
-rw-r----- 1 ubuntu whoopsie 4635914 6月 21 14:34 _opt_Cursor_usr_share_cursor_cursor.1000.crash
-rw-r----- 1 root whoopsie 33972 6月 21 14:30 _usr_bin_add-apt-repository.0.crash
-rw-r----- 1 root whoopsie 454890 6月 21 14:35 _usr_sbin_gdm3.0.crash
$ sudo apport-unpack /var/crash/_usr_sbin_gdm3.0.crash /tmp/gdm3-crash
$ cat /tmp/gdm3-crash/SignalName
SIGTRAP
$ cat /tmp/gdm3-crash/StacktraceTop
?? ()
?? ()
?? () from /lib/x86_64-linux-gnu/libffi.so.8
?? () from /lib/x86_64-linux-gnu/libffi.so.8
ffi_call () from /lib/x86_64-linux-gnu/libffi.so.8
この結果から、GDM3がlibffi.so.8
ライブラリのffi_call()
関数でエラーを起こしていることが分かります。
修復手順
1. libffiライブラリの修復
libffi
ライブラリを再インストールします:
# パッケージリストの更新
sudo apt update
# libffi8ライブラリの再インストール
sudo apt install --reinstall libffi8
2. GDM3の再インストール
GDM3パッケージ自体も再インストールして、破損したファイルを修復します:
# GDM3の再インストール
sudo apt install --reinstall gdm3
3. クラッシュレポートの削除
古いクラッシュレポートを削除して、システムをクリーンな状態にします:
# GDM3のクラッシュレポートを削除
sudo rm /var/crash/_usr_sbin_gdm3.0.crash
4. GDM3サービスの再起動
修復後、GDM3サービスを再起動してテストします:
# GDM3サービスの開始
sudo systemctl start gdm3
# サービスの状態確認
systemctl status gdm3
修復後の結果:
$ sudo systemctl start gdm3
$ systemctl status gdm3
● gdm.service - GNOME Display Manager
Loaded: loaded (/usr/lib/systemd/system/gdm.service; static)
Active: active (running) since Sat 2024-06-21 14:45:00 JST; 30s ago
Docs: man:gdm(8)
man:gdm.conf(5)
Main PID: 12345 (gdm3)
Tasks: 3 (limit: 4915)
Memory: 8.0M
CPU: 120ms
CGroup: /system.slice/gdm.service
└─12345 /usr/sbin/gdm3
GDM3サービスが正常に起動し、アクティブな状態になっていることが確認できます。
備考
ディスプレイマネージャーの切り替え(代替案)
GDM3に問題がある場合は、LightDMに切り替えることも可能です:
# LightDMのインストール
sudo apt install lightdm
# デフォルトディスプレイマネージャーの設定
sudo dpkg-reconfigure lightdm
まとめ
以上、上記の方法でクラッシュログを確認して、ライブラリを修復し、GDM3を修復しました。
誰かの役に立てば光栄です。
Discussion