Ubuntuのアップグレードで接続が切れた場合の対処方法

サーバ
2020年08月31日 10:00

概要

Ubuntuのバージョンを18.04LTSから20.04LTSへのアップグレードをしようとしました。

しかし、アップグレードにSSHを使用していたのですが、そのSSHの接続が更新の最中に切れてしまい、どうしようもなくなってしまいました。

ここでは、アップグレードの最中にSSHの接続が切れた場合の対処方法について紹介します。

環境

  • Ubuntu 18.04
  • Ubuntu 20.04

アップグレードの方法

まず、私が実行したアップグレードの方法について説明します。

Ubuntuの場合、do-release-upgradeというコマンドでアップグレードを行うので、最初にこのパッケージをインストールします。

$ sudo apt update
$ sudo apt install update-manager

また、アップグレードをする前に既存のアップデートを適用します。

$ sudo apt dist-upgrade

この後、アップグレードをするコマンドを実行します。
実行後は、指示に従って進めていきます。

$ sudo dist-release-upgrade -d

私はこのコマンドの実行中に接続が切れてしまいアップグレードを進めることができなくなりました。

あくまでも予想ですが、SSHのデフォルトのポートを22番から変えていたため、なにかうまくいかなかったのだと思われます。

試行錯誤

SSHから実行している場合、アップグレード中は1022番ポートからSSHにアクセスできるようになり、緊急事態の時にそこからアクセスします。

私もここからアクセスして試行錯誤してみたのですが、中々うまくいきませんでした。

試したこととして、apt dist-upgradeなどを実行したりしてみたのですが、そもそもaptコマンドがアップグレードのプロセスから実行されているためロックがかかっているために操作を受け付けませんでした。

解決方法

私はここで諦めて、Ubuntuを再起動しました。

運よくUbuntuを起動することができたので、そこから次のコマンドを実行しました

$ sudo apt update
$ sudo apt --fix-broken install
$ sudo apt dist-upgrade

sudo apt dist-upgradeについては更新するものがなくなるまで、何度も実行しました。

最後に再起動すると、うまくアップグレードができたように見えます。

さいごに

SSHから実行するのはあまり進められないというのは分かっていたのですが、実際に面倒なことになってしまいました。

このようなことがあるため、面倒くさがらずにコンソールから実行するのがよいと思われます。