【前編】Ubuntu 18.04アップグレード失敗談【アップグレード編】

サムネイル:Ubuntu 18.04デスクトップ

2019年3月2日、今更ながらメインPCのUbuntuを16.04から18.04に切り替えました。
ところが、アップグレードは失敗。翌日にクリーンインストールすることに。
今回は「アップグレード編」「クリーンインストール編」の前後編で、その過程を書こうと思います。

Q. 失敗した話に意味ある?
A. あると思いたい。「何が起きたか」「何をしたか」を残しておくことは、後々役に立つ。

なんでアップグレードするの?

・18.04のメリットが大きくなった
・16.04は3年前のOS
・できれば、ソフトの再インストールなしで18.04にしたい
・SteamPlay(16.04環境ではSteamがインストールできなかった)
・Snapソフトウェア(Kritaの日本語入力目当て)
・Unity3Dが使いたい
・Radeon公式ドライバを使いたい

16.04もマイナーアップデートで現在もサポートされているが、やはり今後のことを考えると、試せること・記事にできることが増やせる。

(インストールできなかったSteamを除いて、SnapもUnity3DもRadeonドライバも16.04で出来るようだけど、今更感がある。)

PC環境

▼アップグレード前
Ubuntu 16.04.05(作業当日の2019年3月2日に16.04.6がリリース)
Cinnamon 3系
ディスプレイマネージャ:LightDM(?)

アップグレード時はUbuntuの入ったSSDと、Windows10の入ったSSDのデュアルブート。
起動はGRUBではなく、UEFIのブートマネージャから。

▼クリーンインストール後
Ubuntu 18.04.2
Cinnamon4.0.9
ディスプレイマネージャ:GDM3

インストール時はSSD1台のみの接続。
CPU:Intel Core i3 6100
SSD:Crucial CT250BX100SSD1 (2015年)
VGA:Radeon Rx480

Fig1.使用しているハードウェア情報(Conky)
Fig1.使用しているハードウェア情報(Conky)

失敗したときに備える

アップグレードは印象が悪い。何かとトラブルが起こる。
万が一、OSが起動できなくなった場合に備えて(インストールも兼ねて)ライブUSBを作成しておく。
(日本語Reminxのisoイメージは18.04.1までしかリリースされていなかった)

また、使っているソフトウェアの一覧をメモしておく。
重要なファイルを外付けハードディスクに逃がしておくのも忘れずに。

アップグレードの実施

Windowsとのデュアルブートのため、OSのクリーンインストールで面倒になることを恐れ、アップグレードを優先した。
ソフトウェアのアップデートから、「18.04へアップグレード」を実行(Fig2)(Fig3)。

Fig2.OSのアップグレードでUbutnu 18.04.2を入手
Fig2.OSのアップグレードでUbutnu 18.04.2を入手
Fig3.アップグレードに伴い追加・削除されるプログラムのリスト
Fig3.アップグレードに伴い追加・削除されるプログラムのリスト

Canonicalによってサポートされなくなったパッケージが11件。
「もう不要なもの」が41件。
アップグレードされるものが1,976件。
インストールされるパッケージが535件。
削除されるパッケージが8件。
(よくよく見返すと、ここでCinnamonは削除されている)

使用するディスプレイマネージャを尋ねられる

GDM3か、LightDMかを訊かれる(Fig4)。
たしか、Ubuntu Dockに興味があってGDM3にしたハズ(←憶えてない)。

GDM…Gnome Display Manager3
LightDM…Cinnamonで採用されている
Unity…Ubuntu12辺りから採用された評判の悪いDM。18.04では標準ではなくなった。

Fig4.アップグレード時、使用するディスプレイマネージャを尋ねられる
Fig4.アップグレード時、使用するディスプレイマネージャを尋ねられる

※使用中のディスプレイマネージャの確認方法

$cat /etc/X11/default-display-manager

今現在使用しているディスプレイマネージャを確認する方法はある。
(これを知ったのは壊した後だったけど。)

【外部リンク】
Ubuntu 17.04 その127 – 現在利用しているディスプレイマネージャーを調べるには・デフォルトのディスプレイマネージャーを切り替えるには –

sourse.listの変更

サードパーティ製のソフトが動かなくなる可能性アリ。
「またインストールすればいい」とか「Sanp版に乗り換えればいい」と思い実行。

sysconfの上書き

メモリのスワップをしない設定を、当時書き加えていた。
そもそもメモリが16GBあるので、スワップの心配はないだろうと上書き。

アップグレードには30~40分くらいかかった。

Fig5.アップグレードのプロセス
Fig5.アップグレードのプロセス

ログインループ。そして日本語入力がぶっ壊れる

ログイン時のディスプレイマネージャからCinnamonが消えていた。
(アップグレード時に削除済み)
「Ubuntu(デフォルト)」で起動してみると、これがGDM3だった。

「設定」の中にテーマやアイコンの項目がなく、「Gnome Tweaks」をインストールすることで変更できた。

試しで触っていたところ、途中からスクリーンショットが撮れなくなった。
「再起動すれば治るだろう」とアップグレードから30分くらいで再起動したところ、OS起動前に「No symbol table. Press any key to continue…」のエラー。
Enterキーを押せばUbuntu18.04が起動できた。

で、再起動後にログインできなくなった。
ググっていて「ログインループ」という言葉を知ったが、正確な症状は、【ログインはできるが、3~5秒でログイン画面に戻される】
ググったトラブルとはちょっと異なる。
この短い時間でもソフトウェアは起動できるが、何度やっても戻される。

ここでだいぶ焦ってきた。
この時点でまともだったのはUnity環境のみ。

解決を目指して試したこと(実行順)

ログイン画面での仮想コンソールと、Unity環境でググるのを行ったり来たりした。

ここに提示するやり方にはすべて失敗したが、そもそも致命的なミスを犯している
もし、ここにあるような対処法をググって実行する場合、実行後に再起動すること。再起動しなければ反映されない対処法が多い。
(それと、焦ってしまうのは自然なことだけど、できれば2台のPCで、「どのページを見て、何をやろうとしているのか」を把握できた方がいい)

※仮想コンソールの呼び出し方

GUIのログイン画面から、仮想コンソールでCUI操作ができる。
呼び出し方は【Ctrl+Alt+F1】。
ユーザ名、パスワードでログインすること。
(「pwdコマンド」で現在地を表示できる)

また、仮想コンソールから戻る場合は、【Alt+F7】。

(1)ログインに関係する隠しファイルを削除する

$sudo rm .Xauthority .ICEauthority

homeディレクトリ内の2つの隠しファイル(Xauthority、ICEauthority)(authority:オーソリティ・権限)を削除する。
この2つのファイルはログイン時に毎回生成されるらしい

【外部リンク】
Ubuntu 16.04 GNOME ログインループ – ヒラガブログ
Ubuntu Xサーバー その3 – ログインしてもログイン画面に戻される時は –

(2)LightDMを再インストール

$sudo dpkg-reconfigure lightdm
$sudo apt purge lightdm && sudo apt install lightdm

LightDMの再インストールを真似してみても、(再起動しなかったからか)ログイン画面に戻されてしまった。

【外部リンク】
ubuntuでログインループ – tekitoumemo’s diary

(3)Unity環境の初期化

$sudo apt install unity-tweak-tool
$unity-tweak-tool --reset-unity

なぜ正常だったUnity環境を初期化しようとしたんだろうか?
(よくわからないコマンドは実行しない方がいい。←戒め)

【外部リンク】
Ubuntu18.04LTSのログインループへの対処 – Qiita

(4)nVidiaドライバのインストール(?)

$sudo ubuntu-drivers list
$sudo ubuntu-drivers autoinstall

結果は、「No drivers found」。
nVidiaのドライバをインストールするコマンドの一部らしい。といっても、うちはRadeon一筋
nVidiaドライバの必要性がわからない。
(状況を理解しきれない最初のうちは、直そうとして見境なくコマンドを試しがち)

【外部リンク】
Ubuntuでnvidiaドライバをインストールしたらログインループにorz.. – ひよこや日記

(5)GUI環境とセッションマネージャの再インストール

$sudo apt install --reinstall ubuntu-desktop
$ sudo apt install --reinstall ubuntu-session

上はGUI環境、下はログインに関するセッションマネージャらしい。
(サーバ版のCUIをGUIにするために1行目を使ったりする)

失敗した後だから言えるんですが、「何のコマンドか」曖昧なままネット上に広まってます。
「これで治るよ」って渡されて、それっきり。
ubuntu-desktopだったり、ubuntu-gnome-desktopだったり。
「え? それUnityなの? Gnomeなの?」って、裏付けをとるためにググっててもわからない。

【外部リンク】
[SOLVED] Login Problem in Ubuntu 16.04
Ubuntu 16.04 GNOME ログインループ – ヒラガブログ

(6)没コマンド

$sudo apt install –reinstall gnome
$sudo apt quiet gnome

おそらく、GDM3が死んでいるであろうことから、再インストールしようとした模様。
ググったハズなのに、コマンドが載ったページが出てこない。

しかも、quietは「–quiet」オプションで使うもの。
なぜ進捗状況の省略をするオプションがこんなメモになっていたのか。

【外部リンク】
なし

(7)Cinnamonを改めてインストール

$sudo apt install cinnamon

アップグレード時にCinnamonがなくなっていたので、再インストールすれば正常になると思った。
結果は変わらず、数秒でログイン画面に戻されてしまう。
(最新版をインストールしたい場合はリポジトリの登録をしよう)

【外部リンク】
How to Install Cinnamon Desktop 4.0 via PPA in Ubuntu 18.04 _ UbuntuHandbook

(8)GNOMEのインストール

$sudo apt install ubuntu-gnome-desktop
$sudo dpkg -reconfigure gdm3
エラー:gdm3, action "reload" failed.

GDM3を復活させようとしたが、失敗。

【外部リンク】
Ubuntu 16.04 LTS DesktopでGNOMEを使用する! – LAB4ICT

(9)ログファイルを覗いてみる

ログインループが生じた時間のログを読んでみるが、全然わからん(Fig6)。
(冷静な判断力が失われてる)
/var/log/syslogに、起動に失敗したであろう周辺のログに「nvidia」の文字。
なぜ?

Fig6.ログインループした時間のログファイル
Fig6.ログインループした時間のログファイル

(10)ディスプレイマネージャ以外からGUIを起動してみる

$startx

これもダメ。10秒ほどで戻された。

【外部リンク】
Linuxでよく聞く「Xとは?」とX11のインストール方法

で、Unity環境でログインしてググろうとしたところ、この段階で日本語入力(全角切り替え)ができなくなり再インストールが確定
どう見ても失敗です。本当にありがとうございました( ‘A`)。

あれもこれもぶち込んだおかげで、ログイン時のデスクトップ環境も管理できなくなってしまった。

Fig7.めちゃくちゃになったデスクトップ環境
Fig7.めちゃくちゃになったデスクトップ環境

後編>>【後】Ubuntu 18.04アップグレード失敗談【クリーンインストール編】

前編の終わり

全然有用なことが書けてない。
これまでもトラブルはどうにか出来ていたが、深夜までかかって、かつPCが1台のためUnityでログインしないと調べられないのもストレスだった。
(やっぱPCは2台以上ほしい)

それでも言いたいことは、「OSのアップグレードは未だに不安定」ということ。
クリーンインストールについては後編で書くけど、「homeディレクトリを維持しつつ、不要な設定ファイルを捨てる方法がある」ので、大人しくクリーンインストールをした方が早いし、キレイになる。