リモート接続中にUbuntu 26.04へアップグレードしたら、RDPが切れた ― ChatGPTと一緒に復旧した顛末記 ―

執筆者:

カテゴリ:

投稿日:

更新日:

はじめに

以前から使用していたUbuntuサーバーを、Ubuntu 26.04 LTSへアップグレードすることにしました。

今回は、普段使用しているWindows PCからRDP(リモートデスクトップ)でUbuntuに接続した状態のまま、リリースアップグレードを実行しました。

アップグレードは順調に進んでいるように見えましたが、途中で突然RDP接続が切断されました。

「アップグレードによって再起動したのだろう」と考え、その後あらためてRDP接続を試みました。

ところが、思ったように接続できません。

結果的には、アップグレード自体はかなり進んでいたものの、多数のパッケージがまだ設定されていない状態になっていました。

この後、ChatGPTに状況を相談しながら状態を一つずつ確認し、最終的にUbuntu 26.04.1 LTSを正常な状態まで復旧することができました。

今回は、その顛末を記録しておきます。


1.リモートデスクトップからUbuntuをアップグレード

今回の環境は、

  • Ubuntu 25.10系からUbuntu 26.04 LTSへアップグレード
  • GNOMEデスクトップ環境
  • Wayland
  • GNOME Remote DesktopによるRDP接続
  • Windows PCからリモート操作

という構成です。

UbuntuはノートPCにインストールし、直接ノートPCのモニターとキーボードを使用するのではなく、Windows PCからRDPで接続して使用しています。

そこで今回も、リモート接続した状態でUbuntuのリリースアップグレードを開始しました。


2.アップグレード途中でRDPが切断

アップグレード処理は大量のパッケージを更新するため、かなり時間がかかります。

しばらくすると、突然RDP接続が切れました。

ここで、

「アップグレードが終了して再起動したのだろう」

と考えてしまいました。

しかし、これは少し早い判断でした。

アップグレードでは、GNOME、GDM、Wayland、ネットワーク関連など、現在のリモートデスクトップ環境そのものに関係するパッケージも更新されます。

そのため、アップグレード途中でGUIやRDPのセッションが切断されることがあります。

問題は、

「RDPが切れたこと」と「アップグレードが完了したこと」は同じではない

ということでした。


3.再接続できず、アップグレードの状態を確認

RDP接続を再度試みましたが、思ったように接続できませんでした。

そこでChatGPTに状況を説明し、まずシステムのパッケージ状態を確認することにしました。

実行したのが、

sudo dpkg --audit

です。

すると、

展開されましたが、まだ設定されていません

というパッケージが大量に表示されました。

GNOME関連のパッケージをはじめ、デスクトップ環境を構成する多数のパッケージが未設定の状態になっていました。

つまり、

Ubuntuのアップグレードは途中まで進んでいたものの、完全には終了していなかった

ことが分かりました。


4.apt-get -f installで未設定パッケージを処理

次にChatGPTの助言に従い、

sudo apt-get -f install

を実行しました。

すると、大量のパッケージについて、

○○○ を設定しています ...

という処理が始まりました。

GNOME、GDM、polkit、ibus、Remmina、Nautilusなど、デスクトップ環境に関係するパッケージが次々と設定されていきます。

また、カーネルについても、

linux-image-7.0.0-30-generic

が処理され、initramfsの生成やGRUBの更新も行われました。

最終的には、未設定だったパッケージの処理が完了しました。


5.dpkg --auditで状態を確認

修復できたかどうかを確認するため、再度、

sudo dpkg --audit

を実行しました。

今度は何も表示されません。

これは、dpkgから見て未設定のパッケージが残っていないことを意味します。

ひとまずパッケージ管理上は正常な状態に戻ったと判断しました。


6.再起動

その後、システムを再起動しました。

sudo reboot

再起動後、Ubuntuのバージョンを確認すると、

uname -r

の結果は、

7.0.0-30-generic

となっていました。

さらに、

lsb_release -a

では、

Distributor ID: Ubuntu
Description:    Ubuntu 26.04.1 LTS
Release:        26.04
Codename:       resolute

と表示されました。

これで、Ubuntu 26.04.1 LTSへのアップグレードが正常に完了していることを確認できました。


7.ところが、RDPにはもう一つ問題があった

OSのアップグレードは完了しましたが、ここで別の問題が出てきました。

今回の目的は、

Ubuntu本体側でログインしていなくても、Windows PCからRDP接続してUbuntuにログインしたい

というものです。

ところが、通常のユーザーセッション用RDPでは、本体側ですでにUbuntuへログインしていないと、思ったように接続できませんでした。

そこでChatGPTと一緒にGNOME Remote Desktopの状態を確認しました。

grdctl status

と、

sudo grdctl --system status

を比較すると、通常ユーザー用とsystem-wideのRDPが別々に存在していることが分かりました。


8.system-wideのRDPを有効化

そこで、system-wideのGNOME Remote Desktopを有効にしました。

sudo grdctl --system rdp enable

状態を確認すると、

RDP:
    Status: enabled
    Port: 3389

となりました。

一方、通常ユーザー側のRDPについては、

gsettings set org.gnome.desktop.remote-desktop.rdp enable false

として無効化しました。

これは、通常ユーザー用とsystem-wideのRDPが二重に動作して混乱することを避けるためです。


9.ログイン前のRDP接続に成功

ここまで設定したところ、期待していた動作が実現しました。

Ubuntu本体ではログインしていない状態で、

Windows PCからRDP接続。

すると、リモート側からUbuntuへログインできました。

つまり、

Ubuntu本体
    ↓
ログインしていない
    ↓
Windows PCからRDP
    ↓
Ubuntuのログイン
    ↓
GNOMEデスクトップ

という使い方が可能になりました。


10.しかもリモート側は大画面で使用できた

当初は、RDP接続すると本体画面が表示されたままになり、リモート側が「拡張デスクトップ」のようになってしまう問題もありました。

現在の設定を確認すると、

gsettings get org.gnome.desktop.remote-desktop.rdp screen-share-mode

は、

'extend'

となっています。

ところが、system-wideのRDPからログインした場合には、以前とは異なり、リモート側の大きな画面を使って通常のUbuntuデスクトップを操作できるようになりました。

また、

echo $XDG_SESSION_TYPE

は、

wayland
echo $WAYLAND_DISPLAY

は、

wayland-0

となっていました。

結果として、現在はリモート側で快適にUbuntuを操作できています。


11.今回分かったこと

今回のトラブルを通して、いくつか重要なことが分かりました。

① RDPが切断されたからといって、アップグレードが終了したとは限らない

アップグレード中は、GNOMEやGDMなどの更新によってGUIセッションが切断されることがあります。

そのため、

RDPが切れた → アップグレード完了

と判断するのは危険です。


dpkg --auditは非常に有効だった

今回、アップグレードが正常に終了しているかどうかを確認するために、

sudo dpkg --audit

を使用しました。

大量の未設定パッケージが表示されたことで、アップグレードが完全には終了していないことが分かりました。

復旧後に再度実行して何も表示されないことを確認することで、パッケージ管理上の状態を確認できました。


apt-get -f installで未完了の処理を継続できた

今回の復旧では、

sudo apt-get -f install

によって、未設定だった大量のパッケージが順次設定されました。

結果として、GNOMEを含むデスクトップ環境を正常な状態まで戻すことができました。


④ リモート環境では「接続が切れること」を前提にした方がよい

今回もっとも勉強になったのは、この点です。

OSのアップグレードをRDPだけに頼って実行すると、アップグレードによってRDPそのものが切断される可能性があります。

今後、同じような作業を行う場合には、SSHやtmuxなど、GUIとは独立した方法でアップグレードの状態を確認できるようにしておく方が安全だと思います。


12.今回のまとめ

今回のトラブルは、

「リモートデスクトップでUbuntuをアップグレードしていたところ、途中でRDPが切断され、アップグレードが完全に終了していない状態になっていた」

ことから始まりました。

その後、

dpkg --audit
      ↓
未設定パッケージを確認
      ↓
apt-get -f install
      ↓
パッケージ設定を完了
      ↓
dpkg --audit
      ↓
問題なし
      ↓
再起動
      ↓
Ubuntu 26.04.1 LTSを確認
      ↓
system-wide RDPを有効化
      ↓
ログイン前のRDP接続に成功

という手順で復旧しました。

今回の復旧では、ChatGPTに実際のターミナル画面の結果を一つずつ提示しながら、原因を切り分けていきました。

「何となく操作して直す」のではなく、コマンドの結果を確認しながら次の操作を決めることが、今回の復旧につながったと思います。

最終的には、Ubuntu 26.04.1 LTSへのアップグレードを完了し、さらに、

「本体側でログインしていなくても、Windows PCからRDP接続してUbuntuへログインし、大画面で操作する」

という当初の目的も達成することができました。


おわりに

今回の経験から、リモート環境でOSの大きなアップグレードを行う場合には、

「リモート接続が切れる可能性をあらかじめ想定しておく」

ことが重要だと感じました。

また、トラブルが発生したときには、いきなり設定を変更するのではなく、

sudo dpkg --audit

などで現在の状態を確認し、その結果をもとに復旧作業を進めることが大切です。

今回はChatGPTにも協力してもらいながら、最終的に無事復旧することができました。

同じようにリモート環境からUbuntuをアップグレードする方の参考になればと思い、今回の顛末を記録として残しておきます。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です