Raspberry Pi OS を buster から bullseye に dist-upgrade

Raspberry Pi OS bullseye がリリースされていたので手元のRaspberry Pi 3 model B のOS をbuster からbullseye にアップグレードしてみました.

今回の環境は以下のような感じです.

BOARD
Raspberry Pi 3 model B
OS
Raspberry Pi OS buster armhf
OS導入ストレージ
microSD 32GB
主なサービス
OpenSSH, samba
操作
ssh経由

バックアップ

/etc は etckeeper(git) で管理しているのでリモートにpush しておきます./home は手動でバックアップ.
その他必要に応じてバックアップ.

もしくはストレージをまるごとイメージでバックアップ.(SD Card Copier/dd等)

buster を最新にする

Raspberry Pi OS buster を最新の状態します.

$ sudo mount -o remount,rw /boot (1)
$ sudo apt update (2)
$ sudo apt upgrade (3)
$ sudo reboot (4)
  1. 読み取りファイルシステムを書き込み可能に
  2. パッケージ情報の更新
  3. パッケージを最新に
  4. 必要に応じて再起動

操作ログを取得する

script コマンドで操作ログをファイルに書き出すようにしておきます.何か合った時に参照します.(接続元の端末でも保存しておくと例えばdisk fullなどのときにも保存されるので安心)

$ script -a ~/buster2bullseye_$(date +%F-%T).log

パッケージの状態をチェックする

$ dpkg --audit (1)
$ dpkg --get-selections | grep 'hold
  1. エラーのあるパッケージがないか確認
  2. ホールド状態のパッケージがないか確認

APT source-list ファイルの準備

/etc/apt/sources.list を書き換えます.busterbullseye に変更.編集時には apt edit-sources コマンドを使うと文法チェックをしてくれる.

$ sudo apt edit-sources
$ cat /etc/apt/sources.list
deb http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi
deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi

/etc/apt/sources.list.d/ 以下も確認して,Raspberry Pi OS 以外のリポジトリはコメントアウトする.(apt edit-sources ${FILENAME} で編集可能)

パッケージ情報を更新する

$ sudo apt update

アップグレードに必要な容量があるか確認する

$ sudo apt -o APT::Get::Trivial-Only=true full-upgrade

読み込み専用ファイルシステムを書き込み可能にする

$ sudo mount -o remount,rw /boot

OpenSSH Server をアップグレードする

アップグレード中に新規の SSH 接続が出来ない ようなので前もってアップグレードしておく.(トラブルが起きなければ既存のセッションだけで問題ないはずだが念の為)

$ sudo apt install openssh-server

アップグレード後ssh 接続ができることを確認.

システムの最小アップグレード

$ sudo apt upgrade --without-new-pkgs

システムのアップグレード

$ sudo apt full-upgrade

手元の環境では full-upgrade 時に以下のような依存関係のエラーになりました.

$ sudo apt full-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Error!
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libc6-dev : Breaks: libgcc-8-dev (< 8.4.0-2~) but 8.3.0-6+rpi1 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

gcc-8-base パッケージを導入して再度 dist-upgrade を試みることで解決しました.

$ sudo apt install gcc-8-base libc6-dev
$ sudo apt full-upgrade

KMS video driver の設定

/boot/config.txt を編集します.ファイル内の dtoverlay=vc4-fkms-v3d 行をコメントアウトし,[all] セクション内に dtoverlay=vc4-kms-v3d を記述します.

[all]
=vc4-fkms-v3d (1)
dtoverlay=vc4-kms-v3d (2)
  1. コメントアウト
  2. 追記

再起動したら大体終わり.

RaspberryPiOS bullseye

後はサードパーティのAPT source-list ファイルを修正したり,アプリケーションの設定をしたり,bullseyeでサポートされなくなったパッケージを確認したり,アップグレード時に削除されたパッケージを確認したり…….

一通り設定が終わったらここでもバックアップをしておく.

(2)

  1. エラーのあるパッケージがないか確認
  2. ホールド状態のパッケージがないか確認

APT source-list ファイルの準備

/etc/apt/sources.list を書き換えます.busterbullseye に変更.編集時には apt edit-sources コマンドを使うと文法チェックをしてくれる.


/etc/apt/sources.list.d/ 以下も確認して,Raspberry Pi OS 以外のリポジトリはコメントアウトする.(apt edit-sources ${FILENAME} で編集可能)

パッケージ情報を更新する


アップグレードに必要な容量があるか確認する


読み込み専用ファイルシステムを書き込み可能にする


OpenSSH Server をアップグレードする

アップグレード中に新規の SSH 接続が出来ない ようなので前もってアップグレードしておく.(トラブルが起きなければ既存のセッションだけで問題ないはずだが念の為)


アップグレード後ssh 接続ができることを確認.

システムの最小アップグレード


システムのアップグレード


手元の環境では full-upgrade 時に以下のような依存関係のエラーになりました.


gcc-8-base パッケージを導入して再度 dist-upgrade を試みることで解決しました.


KMS video driver の設定

/boot/config.txt を編集します.ファイル内の dtoverlay=vc4-fkms-v3d 行をコメントアウトし,[all] セクション内に dtoverlay=vc4-kms-v3d を記述します.


  1. コメントアウト
  2. 追記

再起動したら大体終わり.

RaspberryPiOS bullseye

後はサードパーティのAPT source-list ファイルを修正したり,アプリケーションの設定をしたり,bullseyeでサポートされなくなったパッケージを確認したり,アップグレード時に削除されたパッケージを確認したり…….

一通り設定が終わったらここでもバックアップをしておく.

コメントを残す

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