2年以上起動していなかった Ubuntu 16.04を20.04にアップデートする。

Windows10とUbuntu 16.04のデュアルブートにしていたのだがそもそもデスクトップをあまり使わなかったので放置されていた。 ゼロからのOS自作入門を始めようと思ったところ、Linux環境が推奨 MacからUbuntuにリモートログインして操作できるようにしたい Ubuntuの環境を最新化しないと

16.04 18.04 20.04 と一つずつアップグレードする。

事前準備

環境

Windows10とUbuntu 16.04のデュアルブート

バックアップ

万が一の失敗に備えてバックアップをとるべきだが、Ubuntuの方には特に大事なものも入っていないので最悪クリーンインストールしてもいいや精神でとらなかった

パッケージアップデート

sudo apt update
sudo apt upgrade

apt udpateで/var/lib/apt/lists/lockが取得できない

$ sudo apt update
E: ロック /var/lib/apt/lists/lock が取得できませんでした - open (11: リソースが一時的に利用できません)
E: ディレクトリ /var/lib/apt/lists/ をロックできません
E: ロック /var/lib/dpkg/lock が取得できませんでした - open (11: リソースが一時的に利用できません)
E: 管理用ディレクトリ (/var/lib/dpkg/) をロックできません。これを使う別のプロセスが動いていませんか?
$ sudo rm /var/lib/apt/lists/lock
$ sudo rm /var/lib/dpkg/lock

apt update GPGエラー

2021年時点で2年以上前のUbuntu 16.04を起動して、updateしようとしたときに発生

$ sudo apt update
W: GPG エラー: http://packages.cloud.google.com/apt cloud-sdk-xenial InRelease: 公開鍵を利用できないため、
以下の署名は検証できませんでした: NO_PUBKEY 6A030B21BA07F4FB

原因確認

$ apt-key list
期限切れ

対応

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <key id>

OSアップデート

sudo apt install update-manager-core
sudo do-release-upgrade

始まってから1時間くらいかかった

なお、途中で設定ファイルの差分表示の画面に入ったときハングしてしまったためCtrl-Cしたところ中断してしまい、再度do-release-upgradeしても「再起動してください」としか言われず、再起動するとKernel Panicが発生して起動しなくなってしまった 重要なものも入っていないし使う機会が減ったので、デュアルブート削除することにした。 Windows10とUbuntu16.04のデュアルブート解除

do-release-upgrade で Please install all available updates for your release before upgrading. と表示

パッケージをすべてアップグレードしないと、OS アップグレードができないということらしい

原因

apt upgrade で保留になっているパッケージがあった。

$ sudo apt upgrade
 
以下のパッケージは保留されます:
  google-chrome-stale

明示的にアップデート

$ sudo apt install google-chrome-stable

必要でなくなったパッケージを削除してreboot

$ sudo apt autoremove
$ sudo reboot

再起動後、 sudo do-release-upgrade したらアップグレードが始まった

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

gdm3かlightdmか

【前】Ubuntu 18.04アップグレード失敗談【アップグレード編】 | 内向型人間の知恵ブログ 【Linux入門】ディスプレイマネージャとは?と3分でわかる変更方法

lightdmにした

grubの設定ファイルについて聞かれる

ローカルで変更加えていると、差分を確認するためにプロンプトが表示される

差分を確認する 新しいバージョンで上書きする 現在のバージョンの設定を引き続き利用する

そのままにしておきたかったので現在の設定を利用するにして続行

状況を検討するための新しいシェルを起動 はCtrl+dで抜けられる

参考