公私共に10年以上 Ubuntu を愛用していますが、昔から憂鬱な作業が2年毎に訪れるメジャーアップグレード。2022年も終わろうとしている現在でも、日頃使っているシステムは全て Ubuntu 18.04 のまま。
今回は実機のアップグレードを前に、PCトラブルレスキュー用にUSBメモリに構築していた Ubuntu 18.04 を 22.04 へアップグレードしてみます。
USB起動メモリ版Ubuntu
システムクラッシュしたPCのファイルレスキューなどのトラブルシューティング用に、Ubuntu 18.04デスクトップを64GBのUSBメモリに入れて携帯しています。

図01.Ubuntu起動システムUSBメモリ
USB3.0対応のこのストレージのパフォーマンスは次の通り。

図02.USBメモリKDiskMark結果
現在のシステム基本情報は次の通り。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 18.04.6 LTS Release: 18.04 Codename: bionic $ uname -a Linux BionicUSB 4.15.0-196-generic #207-Ubuntu SMP Thu Oct 27 21:24:58 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux $ python --version Python 2.7.17 $ python3 --version Python 3.6.9 |
アップグレードに取り掛かる前に、一応、ディスクイメージのバックアップを録っておきます。
1 2 3 4 5 |
$ sudo dd if=/dev/sdd bs=1M status=progress | gzip -c > /str500/backup/BionicUSB_18.04_20221107.img.gz 62162731008 bytes (62 GB, 58 GiB) copied, 3256 s, 19.1 MB/s 59296+0 レコード入力 59296+0 レコード出力 62176362496 bytes (62 GB, 58 GiB) copied, 3257.71 s, 19.1 MB/s |
Ubuntu 18.04→20.04へアップグレード
aptパッケージマネージャでシステムを現時点での最新状態にしたら、次のコマンドでメジャーアップグレードを始めます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
$ sudo do-release-upgrade 新しい Ubuntu のリリースをチェックしています 「focal.tar.gz.gpg」を用いて「focal.tar.gz」の認証を行ないます 'focal.tar.gz' の展開中 パッケージマネージャーをチェック中です パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 Checking for installed snaps Calculating snap size requirements リポジトリ情報のアップデート サードパーティが提供するリポジトリを使わない設定にしました sources.list にあるサードパーティが提供するリポジトリを使わない設定にしました。アップグレード完了後、 'ソフトウェアソース' ツールもしくはパッケージマネージャーを使って再び利用可能な設定にすることができます。 続けるには [ENTER] キーを押してください パッケージマネージャーをチェック中です パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 変更点を確認中 アップグレードを開始しますか? 56 個のインストール済みパッケージは Canonical によってサポートされなくなりました。 ただしコミュニティからのサポートは受けることができます。 61 個のパッケージが削除されます。 360 個の新規パッケージがインストールされます。 1915 個のパッケージがアップグレードされます。 合計 1,671 M をダウンロードする必要があります。このダウンロードは約 9 分 かかります。 アップグレードをインストールするのに数時間かかることがあります。 ダウンロードが完了してしまうと、処理はキャンセルできません。 続行する[yN] 詳細 [d]y 続けるには [ENTER] キーを押してください アップグレード中です |
ここからダウンロード、そしてインストール作業が延々と続きますが、基本的に完走するまで放置。時折、設定ファイルをどうするか聞かれることがあるので、見に覚えのある場合は既存の設定を保持する方向で進めます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
アップグレード中です 設定ファイル '/etc/sysctl.conf' ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。 ==> パッケージ配布元が更新版を提供しています。 どうしますか? 以下の選択肢があります: Y か I : パッケージメンテナのバージョンをインストールする N か O : 現在インストールされている自分のバージョンを残す D : 両バージョンの差異を表示する Z : 状況を調査するためにシェルを開始する デフォルトでは現在使っている自分のバージョンを残します。 *** sysctl.conf (Y/I/N/O/D/Z) [デフォルト=N] ? n 設定ファイル '/etc/gdm3/custom.conf' ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。 ==> パッケージ配布元が更新版を提供しています。 どうしますか? 以下の選択肢があります: Y か I : パッケージメンテナのバージョンをインストールする N か O : 現在インストールされている自分のバージョンを残す D : 両バージョンの差異を表示する Z : 状況を調査するためにシェルを開始する デフォルトでは現在使っている自分のバージョンを残します。 *** custom.conf (Y/I/N/O/D/Z) [デフォルト=N] ? y 処理中にエラーが発生しました: wireguard-dkms アップグレードが完了しました アップグレードは完了しましたが、アップグレード中にいくつかのエラーが発生しました。 続けるには [ENTER] キーを押してください |
以前、試行したことのあるWireguardがコケてしまいましたが、総じて問題無くアップグレードは2時間強の時間を経て完走しました。
再起動後、バージョン情報を確認。Python系にも大きな変化は無し。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.5 LTS Release: 20.04 Codename: focal $ uname -a Linux BionicUSB 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux $ python --version Python 2.7.18 $ python3 --version Python 3.8.10 |
Ubuntu 20.04→22.04へアップグレード
サードパーティレポジトリが無効化されているまま、同じ要領で22.04へアップグレードしようと思うのですが、その前に現システムの更新確認。保留になってしまっているパッケージは、個別にインストールして更新します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ sudo apt update -y $ sudo apt upgrade -y 以下のパッケージは保留されます: nautilus-admin $ sudo apt install nautilus-admin 以下の追加パッケージがインストールされます: python3-nautilus以下のパッケージは「削除」されます: python-nautilus 以下のパッケージが新たにインストールされます: python3-nautilus 以下のパッケージはアップグレードされます: nautilus-admin アップグレード: 1 個、新規インストール: 1 個、削除: 1 個、保留: 0 個。 |
それでは、アップグレード作業開始。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
$ sudo do-release-upgrade 新しい Ubuntu のリリースをチェックしています 「jammy.tar.gz.gpg」を用いて「jammy.tar.gz」の認証を行ないます 'jammy.tar.gz' の展開中 パッケージマネージャーをチェック中です パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 インストールしたsnapパッケージを確認中 必要なsnapの容量の計算をしています リポジトリ情報のアップデート パッケージマネージャーをチェック中です パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 変更点を確認中 アップグレードを開始しますか? 28 個のインストール済みパッケージは Canonical によってサポートされなくなりました。 ただしコミュニティからのサポートは受けることができます。 26 個のパッケージが削除されます。 367 個の新規パッケージがインストールされます。 2141 個のパッケージがアップグレードされます。 合計 1,881 M をダウンロードする必要があります。このダウンロードは約 9 分 かかります。 アップグレードをインストールするのに数時間かかることがあります。 ダウンロードが完了してしまうと、処理はキャンセルできません。 続行する[yN] 詳細 [d]y |
アップグレード作業の途中、Firefoxがdeb版からSnap版へ入れ替えられてしまいます。
それ以外は問題無く、Ubuntu 22.04へのアップグレードはまたしても2時間程度で完走しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
アップグレード中です 設定ファイル '/etc/sysctl.conf' ==> これはインストールしてから (あなたかスクリプトによって) 変更されています。 ==> パッケージ配布元が更新版を提供しています。 どうしますか? 以下の選択肢があります: Y か I : パッケージメンテナのバージョンをインストールする N か O : 現在インストールされている自分のバージョンを残す D : 両バージョンの差異を表示する Z : 状況を調査するためにシェルを開始する デフォルトでは現在使っている自分のバージョンを残します。 *** sysctl.conf (Y/I/N/O/D/Z) [デフォルト=N] ? n snapを置き換えています 古いソフトウェアを検索しています 状態情報を読み取っています... 完了 サポートが中止された(あるいはリポジトリに存在しない)パッケージを削除しますか? 182 個のパッケージが削除されます。 パッケージの削除に数時間かかることがあります。 続行する[yN] 詳細 [d]y システムのアップグレードが完了しました。 再起動が必要です アップグレードを完了するには再起動が必要です。 'Y' を選択すると再起動します。 続行する[yN] |
再起動してバージョン情報を確認します。このアップグレードでデフォルトPythonのリンクが無くなりました。これは後でPython3系へのシンボリックリンクを貼り直して、対処しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.1 LTS Release: 22.04 Codename: jammy $ uname -a Linux BionicUSB 5.15.0-52-generic #58-Ubuntu SMP Thu Oct 13 08:03:55 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux $ python --version コマンド 'python' が見つかりません。もしかして: command 'python3' from deb python3 command 'python' from deb python-is-python3 $ python3 --version Python 3.10.6 |
aptでシステム更新をチェックして、保留パッケージは個別に更新します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ sudo apt update -y $ sudo apt upgrade -y 以下のパッケージは保留されます: gcc-10-base gcc-10-base:i386 ubuntu-advantage-tools 以下のパッケージはアップグレードされます: dh-python libsqlite3-0 アップグレード: 2 個、新規インストール: 0 個、削除: 0 個、保留: 3 個。 $ sudo apt install ubuntu-advantage-tools 以下のパッケージはアップグレードされます: ubuntu-advantage-tools アップグレード: 1 個、新規インストール: 0 個、削除: 0 個、保留: 2 個。 $ sudo apt install gcc-10-base 以下の追加パッケージがインストールされます: gcc-10-base:i386以下のパッケージは「削除」されます: libgcc1 以下のパッケージはアップグレードされます: gcc-10-base gcc-10-base:i386 アップグレード: 2 個、新規インストール: 0 個、削除: 1 個、保留: 0 個。 |
次ページでは、アップグレード後のシステム確認や、サードパーティレポジトリの取捨選択、カスタマイズへと進みます。