11
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2の Ubuntu 20.04 を 22.04 へアップグレードしてみた

Posted at

はじめに

Ubuntu 22.04 Jammy Jellyfishがリリースされました。
自分はいつも業務PCのWSL2上でUbuntuを入れて作業をしています。
Ubuntuのバージョンは20.04で、直近までLTSだったものです。
色々と自分用にカスタマイズしているので、別バージョンを入れ直すのは面倒だなーと感じてましたが、簡単に直接アップグレードできるとの情報を聞いてやってみました。

注意事項

環境によっては正常に動かないケースもあるかもなので、作業は自己責任でお願いします。

現行バージョン確認

アップグレード前に現状のUbuntuバージョンを見ておきます。
VERSION="20.04.3 LTS (Focal Fossa)" とあります。

❯ cat /etc/os-release                                                                                                

NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

パッケージアップデート

インストールされているパッケージのアップデートを実施します。

❯ sudo apt update && sudo apt upgrade
(コマンド出力が多いので割愛)

ひたすらアップデートして2分くらいで終わりました。

補足1

アップグレードするのにdist-upgradeupdate-manager-coreのパッケージが必要です。
自分の環境ではインストール済だったので作業無しですが、パッケージ入ってない人は下記を実行します。

sudo apt dist-upgrade && sudo apt install update-manager-core

補足2

update-managerの設定を必要に応じて変更する必要があります。
WSLのUbuntuのデフォルトは下記のはずですが、Prompt=ltsとなっていない場合はテキストエディタで修正してください。

❯ sudo cat /etc/update-manager/release-upgrades

# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting and upgrade behavior, valid options:
#
#  never  - Never check for, or allow upgrading to, a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the supported release that immediately succeeds the
#           currently-running release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that if this option is used and
#           the currently-running release is not itself an LTS release the
#           upgrader will assume prompt was meant to be normal.
Prompt=lts

アップグレード

ようやく(というほど作業してないが)、アップグレードの準備が完了しました。
下記コマンド実行でアップグレードされるので、早速実行します。

❯ sudo do-release-upgrade -d

Checking for a new Ubuntu release
You have not rebooted after updating a package which requires a reboot. Please reboot before upgrading.

あー、、、さっきパッケージアップデートした後にリブートしてないので怒られました。
wsl上のOSはrebootコマンドとかではリブートできないので、コマンドプロンプトやPowerShellから停止してやります。

↓このコマンドでWSL上のOS名を確認

(コマンドプロンプト or PowerShellから実行)
> wsl -l -v

  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  Legacy                 Stopped         1
  docker-desktop-data    Running         2
  docker-desktop         Running         2

-t で停止。前述コマンドで確認した名称(ここではUbuntu)を引数にしている

(コマンドプロンプト or PowerShellから実行)
> wsl -t Ubuntu

再度Ubuntuを起動し、Ubuntuのプロンプトを表示します。
改めて先程実行できなかったコマンドを実行します。

❯ sudo do-release-upgrade -d

今度はアップグレードの処理が進みました。
しばらくすると下記の確認画面が出ました。

Do you want to start the upgrade?


1 installed package is no longer supported by Canonical. You can
still get support from the community.

5 packages are going to be removed. 148 new packages are going to be
installed. 756 packages are going to be upgraded.

You have to download a total of 499 M. This download will take about
2 minutes with your connection.

Installing the upgrade can take several hours. Once the download has
finished, the process cannot be canceled.

 Continue [yN]  Details [d]

アップグレードが開始したらキャンセルできなくなるよ、処理は数時間かかるかもよ、って言ってます。実行の最終確認ですね。
問題ないのでyで回答します。dで回答すると、インストール/アンイストール/アップグレードされるパッケージ情報が確認できました。

また、処理が進む中、下記のようにパッケージ処理に関する確認が表示されることがあります。
問題なければYes等の選択をして処理を進めます。

pkgconfirm01.png

最終的に処理が完了すると下記の表示が出て完了です。
自分の環境では13分かかりました。

System upgrade is complete.

Restart required

To finish the upgrade, a restart is required.
If you select 'y' the system will be restarted.

Continue [yN]

ちなみに、この問に対してy回答しても、WSLなのでちゃんとリブートできません。
表示が切り替わるので自動再起動したか?って思いがちですが、タブ補完が上手く動かない状態だったので、上述のwslコマンドから停止しましょう。

アップグレード後のバージョン確認

アップグレード後のUbuntuバージョンを見てみましょう。
VERSION="22.04 LTS (Jammy Jellyfish)"となっているので成功ですね!

❯ cat /etc/os-release                                                                                                

PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy

さいごに

実はwindows機は2台あったので、事前に予習で1台アップグレードしてたのですが、少しインストールしたパッケージが異なっていたのか、アップグレード途中で聞かれる問いの状況が違っていました。(1台目は何も聞かれること無く完了した。)
oh-my-zsh入れてますが、zsh環境もそのまま動いており、今のところ問題となるような動作は出ていません。
みなさまの環境でアップグレードされる際の参考になれば幸いです。

参考にしたサイト等

11
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?