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

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

アップグレード後に、ログインしても3〜5秒ほどでログアウトさせられるトラブルの翌日。
Ubuntu 18.04をクリーンインストールしたときの記録になります。

アップグレードの失敗

動機や環境の情報はこちらに。
前編>>【前】Ubuntu 18.04アップグレード失敗談【アップグレード編】

クリーンインストール編

※homeディレクトリをキレイに引き継ぐテクニック

Windowsだと再インストールするとパーティションを分けておかないと、Cドライブに大事なデータを置いておくとふっ飛ばされます。

Linuxでは分割したパーティションに役割を持つディレクトリを割り当てることができます。
システムとユーザのディレクトリを切り離すことで、OSの再インストールでも影響を受けずに引き継ぐことが可能です。

このSSD(256GB)では「/(ルート)」にシステム用に133GB、ルート直下の「home」に94GBのパーティションを割り当てています(Fig1)。
(LinuxのシステムはWindowsよりも軽量で、いくつかのソフトが入っているのにシステム全体で15GB程度(割り当ての8%)しか使っていません。
ぶっちゃけ30GBくらいの割り当てで良かった)

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

再インストール時にhome用のパーティションに「/home」を割り当てることでデータを維持できますが、もうひと手間かけます。
このままでは、例えばhomeディレクトリの隠しファイルにある「ソフトウェアの設定」も残ります。
アンインストールして使わなくなったソフトのディレクトリは消してしまいましょう。

そのために、ライブUSBから、SSD内のユーザホームディレクトリをリネームしてしまいます。
ディレクトリの階層は、「/(ルート)」>「home」>「ユーザ名ディレクトリ」>「PictureやDouwnloadなど」です。
homeディレクトリに移動して、「mvコマンド」でリネーム + 複製します(Fig2)。

$sudo mv xxxx xxxx.old

再インストール後は、このoldディレクトリから必要な分だけを、クリーンインストールされたユーザディレクトリに移せば完了です。

Fig2.ユーザディレクトリを複製・リネーム
Fig2.ユーザディレクトリを複製・リネーム

【参考:外部リンク】
homeを残して、Ubuntu 16.04LTS をクリーンインストールする – Qiita
(今回は採用しませんでしたが、backupディレクトリに退避させる方法もあるようです)
ファイルを消さずにUbuntu18.04をクリーンインストール – ぷちのいず

ライブUSBからクリーンインストール

最小インストール

Ubuntu 18.04からは、「最小インストール」が可能になったようです。
これは最低限のソフトウェア(ブラウザなど)しかインストールされず、慣れた人にはうれしい選択肢です。
たしかに、これまでのUbuntuではランチャーにAmazonが入っていたり、全然使わないThunderbirdなど、逐一削除する手間もありました。

自分に必要なソフトもわかっているので、今回は「最小インストール」で進めていきます。

【参考:外部リンク】
Ubuntu 18.04 その55 – Ubuntu Desktopの最小インストールが可能に・ブラウザーとユーティリティーのみインストール – kledgeb

homeディレクトリを活かすなら、インストールの種類を「それ以外」に。

(ここは慎重に、戻れないことを意識した方がいい。
以前、ノートPCで失敗したときは間違って進めた時点で中身が吹っ飛んだ気がする。戻ってきても「ときすでに遅し」だった。)
(今回は画像なし。引用してもよかったけど。)

【外部リンク】
ファイルを消さずにUbuntu18.04をクリーンインストール – ぷちのいず

3年前のパーティションと比べる

システム部分、homeディレクトリを割り当てる必要があります。
すでにあるUbuntu 16.04のルートパーティションを初期化、homeディレクトリ領域を「/home」に割り当てて進めます。
(当たり前ながら、homeの領域は初期化してはダメです)

また、マザーボードがUEFI(BIOSの後継)なので、「/efi」パーティションを用意します(Fig3)。
Ubuntuのブートローダーのインストール先になるようですが、よくわかりません。
長いものには巻かれろ。作っておけ。

【参考:外部リンク】
Ubuntu 18.04 インストール(UEFI) その2 – UEFIのPCにUbuntu 18.04をインストールする(パーティションの作成 〜 ブートローダーの設定) – kledgeb

Fig3.efiなどパーティションを見直したあと
Fig3.efiなどパーティションを見直したあと

余談:パーティションを見直す

2016年当時の私は、一時ファイル(tmpディレクトリ)を確保する理由で15GBほどを「/var」に割り当てていました。
ところが、中身は2GBしか使われず、「そもそもパーティションを分ける意味があるのか」と疑問に思ったので削除しました。

初めは「なんのためのパーティションだ?」と思いましたが、過去の自分の記事があったおかげで把握できたり。

【以前書いた記事】
SSDにLinuxMint17.2をフルインストールし、Trimなどの設定をした話
【参考:外部リンク】
Arch Linux を SSD に移した時のメモ _ Basic Werk

もしキーボードを訊かれたら「105」。

いつもは、Windows用の日本語キーボードは106か109が選択肢にあって見慣れいてるのだが、今回は見当たらなかった。
代わりになるのが「105-key (Intl) PC」(Fig4)。

こうして記事を書きながらキーボードを使っているが、問題なく動いている。

Fig4.キーボード設定に105番を指定
Fig4.キーボード設定に105番を指定

やはりきたか、”grub rescue”

「OSをクリーンインストールしたら、それだけで起動しろよ」と思うのだが、(Linuxを普及させたいのに、残念ながら)初回起動もできずにトラブルに遭うこともある。

真っ黒な画面に「grub rescue>」なんて表示されても、素人にはマジでわからない。
(ライブUSBで解決策を探したが、こういうときにPCが2台あるといい)

前回は、bootのあるディレクトリを探し出して指定してあげたような気がする。(当時の私はこの部分だけ「書く書く詐欺」で書き残してなかった。
/(^o^)\)

うちの環境では、こんな感じに作業した。
エラーでダメだったけど。

#"boot/"を探す(hd0),(hd1)...
rescue> ls (hd0)/

#"boot/"が見つかる
#イコールの前後にスペースは入れない
rescue> set prefix=(hd1,msdos6)/boot/grub
rescue> set root=(hd0,msdos6)
rescue> insmod normal
#エラー:'/boot/grub/i386-pc/normal.mod' not found

このとき、キーボード配列が若干異なっていて、「(」左カッコ、「)」右カッコが一つずつ右にズレていた
ちょっと手探りで該当するキーを探す必要がある。
正しく作業できれば、この後にUbuntuが起動できるらしい。

【参考:外部リンク】
Ubuntu 14.04起動時にgrub rescueが表示された – ksino’s diary
Linux 上の GRUB 2 がブートできなくなったときの対処方法

そこでGRUBをインストールすることで解決するのだが、今回はエラーで中断。
正常な環境を取り戻すまでは余裕がないので、ライブUSBからGRUBをインストールする強硬手段をやってみた(Fig5)。

#UbuntuをインストールしたストレージをライブUSBにマウント
$sudo mount /dev/sda6 /mnt

$sudo grub-install /dev/sda --root-directory=/mnt
# Installing for i386-pc platform.
# Installation finished. No error reported.
#うまくいったらしい
Fig5.ライブUSBからSSDのシステムにGRUBをインストール
Fig5.ライブUSBからSSDのシステムにGRUBをインストール

これで再起動するとSSDにインストールしたUbuntuが起動。
忘れずにGRUBをインストールする

$sudo grub-install /dev/sda

【参考:外部リンク】
grub rescueでnormal.modがnot foundですとか言われた話 – ひびっちぇ どっとこむ

LinuxはWindowsからの乗り換えやデュアルブートなどがオススメされるが、GRUBの情報はマジで少ないと思う。
情報が少ないというか、関係している意識が薄い感じ。

インストール後:18.04の使い心地

GDM3はFedora20のときにほんのちょっとだけ触ったことがある。
不評なUnityよりかは使用するメモリも少ない。

Ubuntu Dock

WindowsやLinuxMint(Cinnamon)にあるようなスタートメニューがない。
ソフトウェアの一覧がほしければ、アプリボタン「︙︙︙(機種依存文字)」を押すとアルファベット順に出てくる。

これが使いづらい。
Mintメニューのようなカテゴリ分けのほうが好きだ。

テーマやアイコンの変更には「gnome-tweaks」が必要

16.04のUnityのことはもう憶えてない。
Cinnamonの設定にはテーマやアイコンの変更が可能になっていた。
GDM3の設定を開いても、テーマやアイコンの変更はできない。
Ubuntuソフトウェア(旧ソフトウェアセンター)から「gnome-tweaks」をインストールしよう(Fig6)。

……こんなの調べないとわからないんだから、Ubuntuに関係するなら内包しておいてほしい。
(ただ、そうして肥大化したのがWindowsだと考えると、Linuxの軽さは捨てがたい)

Fig6.Ubuntuソフトウェアからgnome-tweaksをインストールする
Fig6.Ubuntuソフトウェアからgnome-tweaksをインストールする

※Cinnamon 4.0.9の不具合

ログイン時にCinnamonを指定して起動できたが、「設定」がバグってた。
「戻るボタン」を押しても、一瞬だけスライドした感じになるだけ。
各種設定ができないので、GDM3で現在も作業中。

システムモニターなど、一部がSnapアプリになった

SnapソフトウェアはOSに依存しない代わりに、ライブラリも個別に持っている(重複する分だけ容量を食う)。
起動には以前より時間がかかるが、起動してしまえばその他の処理が遅いということはない。

【外部リンク】
第515回 Ubuntu 18.04 LTSとSnapパッケージ:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

ファイルや設定を戻す

最初にhomeディレクトリをリネームしておいたおかげで、「新規インストール時のhomeディレクトリ」と「リネームした過去のhomeディレクトリ」の2つが存在する。
必要なファイルをまるっと動かしても、処理はすぐに終わる。
そして、リネームした方のディレクトリを削除すれば完了。

homeディレクトリにある「ドットから始まる隠しディレクトリ」はソフトウェアの設定で、これも移動させるだけで設定を維持できた。

今回、私は汎用エディタのAtomで試してみた(「.atom」ディレクトリを同じ階層関係に置く)。
Atomには日本語やミニマップなどいくつかの拡張機能を導入していたが、Atomのインストールさえすれば、拡張機能はインストール済みになっていた
こいつぁすげぇや。

当初の目的

当初の目的を忘れてはいけない。18.04に乗り換えることで得られるメリットを見返してみる。

Krita(Snap版)の日本語入力は結局できない

Snapソフトウェアの実行環境は、16.04でも利用できるが、18.04では標準でインストールされる。

Kritaはdeb版がバージョン4に上がっていたが、英語以外選択肢なし。
このあたりはバージョンやインストール方法で差異がある。

Snap版の最新版は4.1.7。日本語化ができていたが、やはりQt5のバグのせいか日本語入力ができない(これはappimage版と同じ)。
ファイル名やレイヤー名はコピペすれば、使えないことはない。

また、バージョン4系から実装されたPython Plugin Managerが見当たらなかった。
調べても情報がなく、2019年5月にリリース予定の4.2を待っている状態。

Steamのインストール

Windows向けの(DirectXの)ゲームをLinuxのSteamから動かすことができるProtonという仕組みがある。
VulkanでDirectX11、DirectX12を再現しているため、割と最近のビッグタイトルであるNieR:Automata(ニーア オートマタ)も動くという。
こいつぁすげぇ。

16.04環境ではSteamがインストールできなかったのだが、今回はすんなりインストールできた
(インストール時にnVidiaのドライバがインストールされたのだが。なぜ?)

で、Steamのインストールはできたが、Left4Dead2を試そうとしたところ12GB要求された。
パーティションの切り方が下手くそだったため、ディスク容量に余裕がなく、未だにテストできてない。
空きを作って試したい。
(WindowsのProgramFilesのように、システム側にゲームを置いていいものだろうか)

【外部リンク】
Steam、Linuxゲームサポート強化の新「Steam Play」発表!DX12_OpenVR対応の新システム公開へ _ Game_Spark – 国内・海外ゲーム情報サイト
初動のゲームタイトルはニュースとして取り上げられたけど、後続の発表がない。
みんなもこれ以外の対応リストが見たいと思う。

AMDのRadeonドライバは見送り

PCゲームを試すならAMDのドライバを試したかったが、Steamのインストールがオープンソースドライバで出来たため見送っている。
ベンチマーク性能はゲームタイトルやドライバー、さらにLinuxカーネルのバージョンでも優劣が変わるという。
「オープンソースだから性能が良い」「公式だから良い」とは一概に言えないのが現在のRadeonドライバ。

【参考:外部リンク】
How to Install The Latest AMD Radeon Drivers on Ubuntu 18.04 Bionic Beaver Linux – LinuxConfig.org
Radeon その12 – fglrxプロプライエタリードライバーとradeonオープンソースドライバーの性能比較 – kledgeb

Unity3Dは後回し

LinuxOSでもUnity3Dが動くのは話に聴いていた。
「同じコードで複数のOS向けに出力できる」というクロスプラットホームにはLinuxも含まれている。
なのに、Linuxで開発ができないというのは、おかしな話だから。
(カナダのゲーム会社のデスクがテレビに映ったとき、OSがUbuntuだった。それは2012年頃だったけど、Unity3DのためにWindowsを導入するのは考えづらい。)

やることが多くて後回しになっているが、調べてみるとインストールが少し難しいようだ。
それと、起動したあとも使えない機能があるなど。
3Dのアバターが完成したらボーンを埋め込んで動かしたいので試すと思う。(全然情報がないから、自分が開拓者人柱になるんだろうなぁ……)

【参考:外部リンク】
UbuntuでUnity3D – Seamark Engineers’ Blog
Unity3DゲームエンジンをUbuntu16.04にインストール – Qiita

(終)18.04の感想

18.04に乗り換えられたけど、快適度はプラマイゼロにはならず、若干マイナス。
PCゲームのテストができれば、もっと加点ができたと思う。
Kritaはどちらにせよ日本語入力できなかったし。

それ以外は、普段遣いだとCinnamonを使いたい。
スタートメニューが使いづらいし、Nautilus(ファイルマネージャ)は欠点が目立つ。
「アイコンの表示幅が狭い」「アイコンを大きくするとデスクトップのアイコンも大きくなる」のは困り者。

アップグレードで壊れた環境を直すための時間や労力より、翌日にクリーンインストールした方が圧倒的に簡単だった。
「アップグレードは不安定説」はしばらく続きそうだ。
(MacOSもWindowsも、OSはそのままでアップデートを提供するスタイルになった。UbuntuなどLinuxディストリビューションはどうなるんだろう)