UbuntuのGUIが死んだ日
はじめに
先日,仙台CTFというイベントに参加したのですが,その際VirtualBoxに入れてある普段本当によく使うUbuntu16.04が,GUIが死んで画面が真っ暗になるという事故が起きていました.
このイベントでは仮想マシンが事前に配られてそれを使うのですが,CTF中は使い慣れたマシンも使いたいという思いがあったので,焦りました.
なんでこんなことが起きたのかというと,自分はWindows10でVirtualBoxを使っているのですが,会場でPCを1度シャットダウンする機会があったんですね.そこで,よく「起動中のプログラムがありますが,本当にシャットダウンしますか?」みたいにOSが気をきかせて言ってくることがあると思うんですけど,その際VirtualBoxが起動していたのですがそのまま気にせずシャットダウンしてしまいました.
今までもそれで不都合が起きたことはなかったので気にはしていなかったのですが,再びWindowsを起動し,VirtualBoxも起動してUbuntuを立ち上げてみたら,
真っ暗なんですね.
流石に焦ったのですが,「Ubuntu 真っ暗」とかで検索かければまぁいろいろ出てくる出てくるで,いくつか試せば簡単に直るやろ!wと思って試してみるも全く直る気配なし.
結局,Ubuntu14.04も入れてあったので,そちらを使ってなんとか乗り切りました.
その後
頑張って直しました.
試したことを時系列順に書こうかと思ったのですが,3つのカテゴリーに分けて箇条書きにしました.
役に立ったこと
/sbinへのPATHが通っておらず,upstart-udev-bridgeがないというエラーが出ていたので,/etc/environmentにPATHを書いた
.xsession-errors
を見てみると,以下のようなエラーが出ていました.
そこで, /etc/environment
に
PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/games:/usr/local/games"
という, .zshrc
に書いていたPATHをこちらにも書きました.
これが一番の原因だったっぽい.
lightdmのログを見てみる
/var/log/lightdm/lightdm.log
を見てみて,どれが原因なのかわからなかったけど,確かここで上記の .xsession-errors
という単語を知ったので,一応は役に立った?
役に立ったのか不明なこと
デスクトップ環境をUnityからGnomeに変更
ディスプレイマネージャーであるlightdmの原因かな?と思い,再インストールやらなんやらやっても直らなかったので,Unityの問題である可能性を考えて,Gnomeを入れてみた.
sudo apt-get install ubuntu-gnome-desktop
か sudo apt-get install gnome
どっちか(それとも両方?)実行した気がする.
(他にも tasksel 使って入れてみたりしたかな?覚えてない)
結局これだけでは直らなかったので,不明.
自動ログインをやめる
自動ログインするように設定していると,デスクトップ環境を選べないため.
これを行ったところ,ログイン画面では止まるようになったが,ログイン後なにも出てこず.
無駄だったこと
unity --reset
コマンドを打つととりあえずGUI環境は出てくるが,全画面表示にならないので,Ctrl + Alt + F7で全画面表示.
再起動するとダメだった.
startx
コンソールから startx
を入力することによって,とりあえずGUIは使えるようになったけど,根本的な原因が解決することはなかった.
/var/log/Xorg.0.logにfbdevのエラーが出ていたので,fbdevを入れてみる
GUIが死んだときに真っ先に Xorg.0.log
を見て,怪しそうなところを対処してみたやつ.
sudo apt-get install xserver-xorg-video-fbdev
直らない.却下.
sudo apt-get purge xserver-xorg-video-fbdev
compizの問題を疑い,これを初期化してみる
- 起動後,Ctrl + Alt + F1でコンソールに入る
DISPLAY=:0.0 gnome-terminal
を入力- Alt + F7でデスクトップ画面に復帰すると,新しい端末ウィンドウが出ているので,
dconf reset -f /org/compiz/
を入力 sudo shutdown -r now
これもダメだった.
ubuntu-desktopの再インストール
sudo apt-get install --reinstall ubuntu-desktop
これもダメ.
ディスプレイマネージャーの故障を疑い,初期化
/etc/X11/default-display-manager
には /usr/sbin/lightdm
とあったので,
dpkg-reconfigure lightdm
ダメ.
ディスプレイマネージャーの故障を疑い,再インストール
sudo apt-get purge lightdm
からの sudo apt-get install lightdm
ダメ.
lightdmがダメなのかと考え,gdmに変更してみる.
/etc/X11/default-display-manager
の内容を /usr/sbin/gdm3
に変更.
すると,起動時に The system is running in low-graphics mode
というエラーが出てきて論外.
この後,いろいろやってみてもgdmがダメそうなので,lightdmに戻した.
xorg.confがなかったので,/etc/X11に配置してみる
最初は拾ってきたものを配置してみたけどダメなので,ちゃんとしたものを配置してみる.
Xorg -configure
で自分の環境に合った xorg.conf
を自動生成してくれる便利コマンドがあるのですが,確かそのまま実行しようとするとエラーを吐かれるので,
sudo systemctl stop lightdm
sudo systemctl disable lightdm
で,ディスプレイマネージャーであるlightdmを止めてから無効化する.
すると, Xorg -configure
が通るので,生成された xorg.conf
を /etc/X11/
以下に配置.
再起動してみるも,変わらず.ダメ.
VirtualBoxのGuest Additionsを入れなおす
どこかで見かけてやってみたけどダメ.
まとめ
OS入れ直したほうが早いんじゃね?とか思った時もあったので,直ってよかった.
GUIが死んだときに真っ先に見るべき場所としては, /var/log/Xorg.0.log
と $HOME/.xsession-errors
だと思う.
なんのイジメなのか2点ほど新しくバグが出ていて,1つは PrtSc
を押すとフリーズするってやつと,もう1つは2回に1回ぐらいログイン画面でフリーズしてコンソールにも入れなくなるというバグ.
そろそろ他のLinux使えっていうことなんですかね.
参考
Linuxをインストールしたのに画面が黒いままで起動しないときの対処例
本の虫: Ubuntu 14.04のUnityの設定をぶっ壊した場合の修復方法
Ubuntu 16.04 LTS : GNOMEデスクトップ環境 : Server World
Ubuntu Unity その4 - Unity(Compiz)の設定を初期化する - kledgeb
Ubuntu 16.04 Unityが死亡したときの復旧メモ - ばずなダイアリー
Ubuntu 12.10 をインストールしたら low graphics mode になった話 - ぼくたち宇宙人
Ubuntuを起動したら「The system is running in low-graphics mode」と表示され、GUI環境が立ち上がらない - ITに疎いけど興味ある人のブログ
Ubuntu 14.04でログイン後ランチャーもツールバーも表示されない問題の復旧 - M12i.
Ubuntu系でGUIログイン出来ないのファイル破損かもよ - ぷちてく - Petittech
X Window が起動しなくなった! – KUJIRA note
Blank screen at boot - errors from Upstart on 16.04 - Ask Ubuntu