(2024.12.28 記)
Ubuntuは無償OSですが、Windows同様にサポート期限があります(以下表参照)。

現在20.04LTSを利用していますが、会社で利用しているため流石に上げないとマズいと思い、実際にアップグレードを試みた一連の内容をまとめた忘備録になります。
今回は22.04LTSへ上げる訳ですが、こちらも2027年4月には切れてしまうため、程なくして24.04LTSへアップグレードする予定です。
その際はまた記事にして残しておこうと思います。
ちなみに、コマンド1つ打つだけなので、アップグレード自体は簡単でした。
ただ、色々注意点があるので、その点気を付けてください。
後はOS上に載っているソフト次第・・・ですかね。
時間:約2時間
0.実行環境・注意点
■実行環境
・さくらVPN(メモリ:1GB、CPU:2コア、SSD:100GB)→(メモリ:2GB、CPU:3コア、SSD:200GB)
・LinuxOS:Ubuntu20.04LTS
・Apache:2.4
・MySQL:5.7
・PHP:7.4
■注意点
しくじりました。
次の事象が発生、発覚したので、実行環境を1グレード上げ、(メモリ:2GB、CPU:3コア、SSD:200GB)にしました。
テスト環境を仮想マシンで作成する際、誤ってメモリを2GBで設定してた故に以下事象に気づかなかったみたいですね・・・
メモリ2GBにしたら、すんなり両方とも解決しました。
既にサーバが重く、環境のベースアップを打診済みであったのが幸いして、会社から許可がすぐ下りたので良かったですが、これが他社とか上げられないとかだったら大事故でした。アッブネ。
①アップグレード中にフリーズした
後から調べたら、Ubuntu22.04LTSはメモリ2GB以上推奨のようです。
実行環境がぶっ壊れました。
②ReaRからレストア中にフリーズした
後から調べたら、ReaRのレストアを行うにはメモリ2GB以上推奨のようです。
メモリエラーで落ちました。
※バックアップだけなら1GBでも動作する
1.テスト環境構築
既に整備されている方はスキップしてください。
ぶっちゃけ、OSのアップグレードは簡単にできます。
問題は、そこに載ってるソフトウェアが現行通り正常に動作するのかどうか、です。
アップグレードしたら動かなくなっちゃった・・・ではマズいうえ、既に稼働中のサーバともなればすぐに原状復帰させる必要性があります。
ですので、まずはアップグレードして問題ないかを検証するテスト環境を構築する必要があります。
①仮想環境構築
まずは仮想環境を構築します。
当方はWindowsOSの載ったPCにて、さくらVPS上のUbuntuOSを管理しています。
そこで、Windowsに初期搭載しており、私が使い慣れているという理由で、仮想環境「Hyper-V」を選択しました。
Windows11であれば、検索窓に「Hyper-V」と入力すると、アプリケーションが出てくるはずです。

インストールされていなくても表示され、勝手にWindowsUpdateからインストーラが起動し、Hyper-Vマネージャがインストールされます。
趣旨からずれるので、Hyper-Vの操作説明は省きます。
もちろんVMWareでもOKです。
②バックアップ&リカバリ(クローン)環境構築
次に、仮想環境に実環境を載せるため、実環境の情報を抜き取る必要があります。
いくつか方法がありますが、今回は「ReaR」というフリーツールを利用し、ISOファイルにて抽出することにしました。
現行にてバックアップ&レストア(クローン)環境を、この「ReaR」を利用して構築しているのが理由です。
現行環境を抜き取り、先ほど作成した仮想環境に載せて(レストアさせて)あげることで、テストできる環境が構築できます。
趣旨からずれるので、詳細は省きます。
2.アップグレードコマンド実行
まず最初に注意点として、アップグレード中に以下のような注意文が出てくるときがあります。↓
(xscreensaver and xlockmore must be restarted before upgrading)

これは「スクリーンセーバーと画面ロック機能をアップグレード前に再起動させとけよ」という内容で、これがアップグレード中に走っちゃうとフリーズします。
一回環境が壊れたこともあったので、この「xscreensaver」と「xlockmore」は再起動と言わず、以下のコマンドでプロセスを停止しておきましょう。
sudo pkill xscreensaver
sudo pkill xlockmore
エラーが出なかったら停止されているはず。
準備が整ったら、次のコマンドを淡々と打ち込み、アップグレードの前準備を行います。
Yes or No の選択肢は、全て「y」で回答してください。
sudo apt update
sudo apt install update-manager
sudo apt dist-upgrade
最後のコマンドを入力すると、以下のような選択肢が出るので、[y]で返答します。

すると、アップグレードに必要なデータを取得しに行きます。
途中、PHPやMySQL等アプリケーションの最新版のバージョンにアップするかどうか聞いてきます。
これらはデフォルト選択肢の「Keep the local version currently installed」を選択することで、現行バージョンの利用を続ける意思表示ができます。(のはずなのに、勝手に最新版のPHPだけがインストールされた・・・)

上記が完了したら、次のコマンドを入力することで、OSのアップグレードが実行されます。
sudo do-release-upgrade
すると、下図のように”アップグレードする前に再起動してください”みたいな内容が出るので、再起動後にもう一度コマンドを入力します。

sudo reboot
<再起動後>
sudo pkill xscreensaver
sudo pkill xlockmore
sudo do-release-upgrade

始まりましたね。
パッケージをチェック中、下図のように”サードパーティ製のソフトウェアを見つけたので、アップグレード後に消されてないか確認してね?始めるならEnter押してね”ってメッセージが出るので、[Enter]で進めます。

次に、下図のように”アップグレードのインストールに数時間要するかもしれないけど、続ける?”と問われるので、[y]で続けます。

途中、以下のようなインストール済みソフトウェアに対し、”アップデート情報があるとそいつも序にアップデートするかい?”って度々聞いてきますので、環境に合わせて選択しを判断してください。
アップグレード中は全てアップデートせず、アップグレードの正常完了を確認してから、各々のソフトウェアのアップデートを行う方が問題が少ないと思います。
ですので、今回は全て[n]でアップデートしない方向で進めます。

アップグレードが完了すると、再起動が問われます。↓

再起動後、次のコマンドを実行し、OSがアップグレードされていれば完了です。↓
more /etc/os-release

ちなみに、アップグレード自体は何のエラーもなく完了できました。
(そんなに変なソフトウェアを導入してないからだろう・・・)
で、ここで問題が発生。
Apache2が動かない。
これは単純な理由で、別記事で紹介していますので、次のような事が発生した方は参考にしてみてください。
「Ubuntu22.04にバージョンアップ(アップグレード)したらApache2が動かなくなった」
or
「Ubuntu24.04にバージョンアップ(アップグレード)したらApache2が動かなくなった」
原因は、「強制的に最新のPHPをインストールされる」事でした。
PHPには手動でバージョンを切り替えられるので、記事を参考にApache2が動いていたPHPのバージョンに戻してあげてください。
私はこの手順で解決できました。↓
3.最後に
アップグレード中にフリーズして強制再起動し、再びアップグレードコマンドを入力すると以下のようなコマンドを実行しろ!と注意されます。
この時は素直に入力して、再度アップグレードコマンドを入力すると上手くいきます。
apt --fix-broken install
本来ソフトウェアのバージョンアップを行う選択肢を選ばなければバージョンアップされないはずなんですが、なぜかPHPだけバージョンアップさせられたんですね・・・
そのような記事がチラホラ見かけました。
なので基本的にソフトウェアのアップデートを行う選択肢を選ばなければすんなり行くのかと思います。
次は、24.04LTSへのチャレンジですね。
▼オススメ教本▼

コメント