古いUbuntuのアップグレード方法&トラブルシュートのリンクまとめ


# 環境

```
2020/6/30現在
PC Let's note CF-SX2
現在のversion 15.04 (Vivid Vervet)
現在サポートされているversion 16.04(Xenial Xerus) LTS 〜
最新のversion 20.04 (Focal Fossa)
```

# version確認

→ [Ubuntuのバージョン確認](https://qiita.com/glires/items/a2a07565207509af0e83)

もしくは、以下のコマンドでもversionを確認できる。

```
$ lsb_release -a
```

# Upgradeのやり方

→ [Ubuntuのアップグレードのやり方](https://kaworu.jpn.org/ubuntu/Ubuntu%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89%E3%81%AE%E3%82%84%E3%82%8A%E6%96%B9)

```
$ sudo apt update
$ sudo apt upgrade
$ sudo do-release-upgrade
```

ただし、いろいろサイトをまわると`-d`は開発versionを含めることを意味していてあまりオススメされていない。

# エラー別対応方法

## `sudo apt-get update`

### (a) 何かと404返ってくる。

#### エラーケース1

> 〇〇の取得に失敗しました 404 Not Found

人によっては503返ってくることもあるらしい。
→ [Ubuntu で apt-get update が404になる問題](https://qiita.com/nyanchu/items/a8cfc5cf627d70d798bf)

<サマリ>

* `/etc/apt/source.list`の`jp.archive.ubuntu.com`と`security.ubuntu.com` を `old-releases.ubuntu.com`に書き換える。(jpはついてる人とついてない人がいる?)
* キャッシュ`/var/lib/apt/lists/*`をクリアする。

ただその前にOldリリースに含まれているかを確認したほうが良さげ。 → [Old Ubuntu Releases](http://old-releases.ubuntu.com/releases/)

#### エラーケース2

> http://ppa.launchpad.net/(コードネーム)/~~ 404  Not Found

→ [【Ubuntu】apt updateで404 not found](http://smot93516.hatenablog.jp/entry/2019/01/16/114815)
→ [Ubuntuアップデートしようと思ったら404だと!?[解決編]](https://blog.adachin.me/archives/973)  
GUIからは以下
→ [apt-get updateでエラーが出た（Ubuntu）](https://hombre-nuevo.com/linux/linux0020/)


### (b) 公開鍵の期限切れ

> 公開鍵を利用できないため、以下の署名は検証できませんでした

→ [apt-get update時に「公開鍵を利用できないため、以下の署名は検証できませんでした」と出た場合](https://qiita.com/ReoNagai/items/777885f8e704028f3ab9)
→ [【Ubuntu】 apt update時のＧＰＧエラー対処](https://hibiki-press.tech/dev-env/apt-update-gpg/1976)

<サマリ>

```
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys エラー時に表示された文字列
```

* 公開鍵が期限切れらしい。更新というか追加すれば治る。
* `apt-key list`で新しい鍵が足されたかが確認できる(期限がいつまでかも見れる)。

### (c) Chromeのなんかでエラー

> http://dl.google.com/linux/chrome/deb/dists/stable/InRelease の取得に失敗しました  期待されるエントリ 'main/〜〜' が Release ファイル内に見つかりません

→ [apt-get update時にChromeが原因でエラー](https://ksino.hatenablog.com/entry/2016/03/23/233556)

<サマリ>

* ` [arch=amd64] `を書き加える。

なお今回実施していないが、他にも`sources.list`に記述することで解決した例もあるらしい。
→ [ubuntuがapt-get updateに失敗するのを直したメモ](https://qiita.com/micchy326/items/d8ef3e930962a9ceb4a8)

## `sudo apt update`

多分上と同じ方法で解決できると思う。特にエラーしなくなった。

## `sudo apt upgrade`

> 新しいバージョンの設定ファイル/ etc / default / grubが利用可能ですが、現在インストールされているバージョンはローカルで変更されています
> 変更された設定ファイル grub について何か行いたいですか

→ [新しいバージョンの設定ファイル/ etc / default / grubが利用可能ですが、現在インストールされているバージョンはローカルで変更されています](https://www.it-swarm.dev/ja/grub/%E6%96%B0%E3%81%97%E3%81%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB-etc-default-grub%E3%81%8C%E5%88%A9%E7%94%A8%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%99%E3%81%8C%E3%80%81%E7%8F%BE%E5%9C%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AF%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A7%E5%A4%89%E6%9B%B4%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99/960816040/)

あまり参考となる記事がない。
差分を見てみて、差分が少なければメンテナのパッケージをインストールで良いと思われる。それ以外はわからない。

## `sudo do-release-upgrade`

```
An upgrade from 'vivid' to 'xenial' is not supported with this tool.
```

→ [How to upgrade from 18.10 to 19.10, using the command line?](https://askubuntu.com/questions/1208109/how-to-upgrade-from-18-10-to-19-10-using-the-command-line)

<サマリというか翻訳>  
英語厳しい。Cosmic → Eoanへのケース

* このブログに書いてあるよ→[Nelson's log](https://nelsonslog.wordpress.com/2020/02/21/upgrading-from-an-unsupported-ubuntu/)
* このツールはメタデータファイルを書き換えるものだよ。
* ルートユーザで`/var/lib/update-manager`の`meta-release`をコピーして`meta-release2`としてね。(2がついてるファイルがこのツールで作られるファイル。)
* `meta-release2`を編集して、eoanのエントリをまるごと削除して、Discoのエントリの`Supported: 0`を`Supported: 1`に書き換えて。 →注1
* `/usr/lib/python3/dist-packages/UpdateManager/Core/MetaRelease.py`の`self.metarelease_information = open(self.METARELEASE_FILE, "r")`を`self.metarelease_information = open(self.METARELEASE_FILE + "2, "r")`に書き換えて。
* `do-release-upgrade`でアップグレードできるようになったよ。アップグレードあとは`meta-release2`を削除してね。
* そのあとのアップグレードはサポートされてるからもう一回アップグレードしたらeoanにできるよ。


注1)
[versionの履歴](https://www.ubuntulinux.jp/ubuntu)からわかるようにCosmic → Eoanへは次のDiscoが飛んでいるためいけないと思われる。今回の自分のケースはVivid → Xenialにいけてないので、同じように間のWilyへ一度移動させることとした。
そのため、`meta-release2`ではWilyのサポートフラグをたて、それ以降のversionの情報をすべて削除して行った。
仮に複数versionを飛ばないとUpgradeできない状況では1つ1つ移動していく必要があるのかもしれない。

上記対応で更新可能に。
「めっちゃ時間かかるけどいい？」みたいに聞かれるのでYes。更新が始まり、再起動後に無事Wilyへ。
`meta-release2`を削除してもう一度アップグレード。→16.04へのアップグレード成功

___

#### 余談

欲張って18.04までアップグレードしたところ16.04 → 18.04の時にはこんなメッセージが出た。

> Lock screen disabled 
>
>Your lock screen has been disabled and will remain disabled until you 
reboot. 

→[【Ubuntu】Ubuntuを19.04にアップグレードしてみた](https://www.poly-rhythm.com/upgrade-to-ubuntu-1904/)

スクリーンのロックは再起動するまで無効になるらしい。enterでOK

___

#### 追記 20/07/18

##### スピーカーの設定

```
$ sudo alsactl init
Found hardware: "HDA-Intel" "Realtek ALC269VC" "HDA:10ec0269,10f70200,00100202 HDA:80862806,80860101,00100000" "0x10f7" "0x8338"
Hardware is initialized using a generic method
```

参考）
https://qiita.com/PopularHero/items/5fda32b42f772061eb2c