2014-07-04

Ubuntu 14.04のUnityの設定をぶっ壊した場合の修復方法

今朝、コンピューターを起動して、Ubuntu 14.04にログインしようとしたら、なぜか画面が固まってしまった。

まあ、この程度は情報強者たる筆者にとっては、造作もないことだ。Ctrl+Alt+F1で華麗に仮想コンソールに切り替えて、Upstartのinitctlを使ってlightdmを再起動させた。

$sudo restart lightdm

カチャカチャ・・・ターンッ!

restartは、initctl restartの代わりに使えるinitctlへのシンボリックリンクだ。おそらく、Ubuntuも将来的にはsystemdに移行するであろうから、いずれはsystemctlを使う必要があるであろう。だが、それはまだ先の話だ。

Ctrl+Alt+F7で戻ったところ、無事にlightdmによるログイン画面が表示された。さっそくログインしなおしたが・・・Unityがぶっ壊れていた。

背景とマウスポインターは表示される。右クリックするとメニューも表示される。しかし、それ以外のUIが一切ない。ランチャーもメニューバーもないので、このままではGUI作業ができない。GNOMEターミナルを開くキーボード・ショートカットも動かない。

仕方がないので、情報弱者らしく再起動をしてみたが、

$sudo shutdown -r now

Unityは壊れたままだった。

やってしまった。これはおそらく、無理やりlightdmを再起動させたので、どこかの設定ファイルが壊れてしまったのだろう。試しに別のユーザーでログインしてみると、ランチャーもメニューバーも通常通り表示される。しかし、Unityの設定ファイルをぶっ壊してしまったので別ユーザーを使います、というのは情報弱者にもほどがある。さて、どうやって復旧しようか。

あるいは、この機会に、別のWMを試してみるという手もある。しかし、何はともかく、Unityを復旧させたい。

まず、Compizの設定をリセットしようと思い立った。Compizの設定をリセットするには、CompizConfig Settings ManagerというGUIのソフトウェアを使う必要がある。しかし、ランチャーもターミナルもないと、起動することができない。

調べたところ、DISPLAY変数を適切に設定することで、仮想コンソールからプログラムを起動してそのウインドウを望みのディスプレイに表示できるようだ。

$sudo apt-get install compizconfig-settings-manager
$export DISPLAY=:0
$ccsm

無事に起動できたので、Unityプラグインを設定しなおしたり、デフォルトの設定を読み込ませたりしてみたが、残念ながら、これでは直らなかった。さて、どうするか。

さらに調べたところ、unityを起動するラッパーである/usr/bin/unityに、--resetオプションを指定すると、設定ファイルをリセットしてくれるという。

$man unity
unity(1)                              Linux User's Manual                              unity(1)

NAME
       unity - wrapper for starting the unity shell and handling fallback

SYNOPSIS
       unity [options]

DESCRIPTION
       The  unity program can be used to start the Unity shell as a compiz module, and to spec‐
       ify how to handle logging, debugging, as well as how to deal with the user's profile.

OPTIONS
       --advanced-debug
              Runs unity under debugging (using GDB or another debugger tool) to help  tracking
              issues. Should only be used on request from a developper following a bug report.

       --log filename
              This  parameter,  followed  by a path or filename, tells the Unity shell to store
              logs in the specified file.

       --reset
              This option allows the user to reset profile parameters in compiz and restart the
              Unity shell with default settings.

       --verbose
              This  option turns on displaying additional debugging output for the Unity shell.
              It can be used by the user to debug configuration issues. This  option  is  often
              used along with the --log option to save output to a file.

SEE ALSO
       unity-panel-service (1)

                                        9 December 2010                                unity(1)

なるほど、ではさっそく

$ unity --reset
ERROR: the reset option is now deprecated

なんだと。

さらに調べたところ、Ubuntu 14.04では、unity-tweak-toolが公式なレポジトリに入っていて、これにはUnityの設定をリセットする機能があるようだ。

$sudo apt-get install unity-tweak-tool
$man unity-tweak-tool

unity-tweak-tool(1)                   Unity User's Manual                   unity-tweak-tool(1)

NAME
       unity-tweak-tool - configuration manager for Unity desktop environment

SYNOPSIS
       unity-tweak-tool [options]

DESCRIPTION
       The unity-tweak-tool program can be used to tweak Unity desktop environment. Unity Tweak
       Tool is a one-stop settings manager for Ubuntu Unity.

OPTIONS
       -u     Starts unity-tweak-tool in Unity section.

       -w     Starts unity-tweak-tool in Window Manager section.

       -a     Starts unity-tweak-tool in Appearance section.

       -s     Starts unity-tweak-tool in System section.

       --reset-unity
              Reset Unity, wiping all changes to configuration.

BUGS
       Please report any bug you may experience to the unity-tweak-tool developers, who can  be
       reached at https://launchpad.net/unity-tweak-tool.

AUTHOR
       unity-tweak-tool was written by Freyja Development Team and this manual page by Barneed‐
       har Vigneshwar <barneedhar@ubuntu.com>.

       Both are released under the GNU General Public License, version 3 or later.

                                        11 February 2013                    unity-tweak-tool(1)

これを使ってみよう。

$unity-tweak-tool --reset-unity

これはうまくいった。無事に、Unityが復旧した。

たまに環境が壊れると、刺激があって面白い。動かないものを動くように直す作業は楽しい。しかし、それは危険な誘惑である。

xkcd: Cautionary

Linux: 実際にあった話:第一週

もしもし、あたしあたし、姪だけど。新しいパソコン手に入れたんだけどさ、Windowsとか入れたくないのよ。Linuxとかいうやつのインストール手伝ってくれない?

いいよ

第二週

XORGが壊れたって。XORGって何? どうすればいいの
「manページ教えるよ」

第六週

autoconfigがうまくいかないんでUbuntuからDebianに変えることにする
「えっ」
Gentooにするかも
「やばい」

第十二週

「最近電話に出ないけど」

寝らんない。カーネル、コンパイル、しなきゃ。

「手遅れか」

親に告ぐ:誰か他人に教わる前に、子供にLinuxを教えるべきである。

ドワンゴ広告

この記事はドワンゴ勤務中に書かれた。

昨日、いつも通り午後2時頃にドワンゴに出社したところ、ACアダプターを家に忘れたことに気がついたので、その日はバッテリーが切れる前にさっさと退社した。今日は朝からネタができたので、午前11時に出社した。

ドワンゴは本物のC++プログラマーを募集しています。

採用情報|株式会社ドワンゴ

CC BY-ND 4.0: Creative Commons — Attribution-NoDerivatives 4.0 International — CC BY-ND 4.0

3 comments:

宮崎三樹 said...

私も同じ症状に悩まされてました。私は情弱なのでlxdeを使うことで妥協しましたが。

Anonymous said...

助かった!
情弱で横着なのでそのままなぞらせてもらいました。
ありがとうございます。

Blendy said...

助かりました!ありがとうございました!