Ubuntu16.04でGDMが起動途中に死んでしまうのを直した話

Ubuntu16.04(Unity)にGNOME3を入れて、LightDM+GNOME3でしばらく動かしていた。その後にLightDMからGDMに変えたらGDMが起動途中に事切れてログインできなくなってしまったのを直しました。結論から言うと、

$ sudo dpkg-reconfigure gdm3

で直ったんですが、その前に紆余曲折があってどれが主原因だったのかわからないので記録しておきます。

GDM入れた直後の状態

GDMを入れて、「確かArch Wikiにこんなこと書いてあったなー」と思って

$ sudo systemctl disable lightdm
$ sudo systemctl enable gdm

とした所次に再起動した時には死んでいました...。起動画面はBtrfs scanとかなんとか言って止まっていた。TTYを変えるとCUIでログイン可能だったので助かりました。

この段階で、

  • Unity Desktop
  • LightDM
  • GNOME3
  • GDM

がインストールされていました。

CUIログインして startx とすると一応GNOME3が起動することが確認できました。

試行錯誤してみる

とりあえずググるdpkg-reconfigure gdm でLightDMからGDMに切り替わるらしいという情報を得たのでやってみたのですが断念(何故この時駄目だったのか...???)。そこでGDMを入れなおしてみたり、 ubuntu-gnome-desktop パッケージを入れたり、 ubuntu-desktop をpurgeしてみたものの直らず。この段階でgdm.serviceをenableしているにも関わらず、startxしたあとのgdm.serviceはinactive (dead)になっていることが判明。他のUbuntuマシンの状態を確認すると、ログイン後もGDMサービスが起動していたので、このあたりがおかしいらしい?と推理してみました。

そこでCUIログインした状態で systemctl gdm.service start した所GDMのログイン画面が登場。なんもわからん。もちろん再起動しても死んだまま。まじでわからん。

成功する

色々探した結果、また最初のコマンドが現れたのでダメ元で試したところ起動しました。次のコマンドです(最初と同じ)。

$ sudo dpkg-reconfigure gdm3

gdmgdm3 に差があるのかと言われると、 systemctl status gdm3.service としても gdm.service の状態が表示されたので怪しそう。いやちゃんと調べろよという話なんですが。

多分Unity周りのパッケージを消したのが良かったのかな?くらいしかわかりませんでした。というわけで記憶に怪しいコマンドは適当に入力しないようにしましょう。