第5章 bullseye で注意すべき点

目次

5.1. bullseye へのアップグレード特有の事項
5.1.1. Intel 社製 GPU のデフォルトドライバーが、新しい VA-API になります
5.1.2. XFS ファイルシステムは barrier/nobarrier オプションをサポートしません
5.1.3. セキュリティアーカイブの構成が変更されました
5.1.4. パスワードのハッシュ化に yescrypt がデフォルトで利用されます
5.1.5. NSS NIS および NIS+ 利用に新しいパッケージが必要になります
5.1.6. unbound での分割された設定ファイルの扱い
5.1.7. 非推奨になる rsync のパラメータ
5.1.8. Vim のアドオンについて
5.1.9. OpenStack と cgroups v1 について
5.1.10. OpenStack API ポリシーのファイルについて
5.1.11. アップグレード中の sendmail のダウンタイムについて
5.1.12. FUSE 3
5.1.13. GnuPG オプションファイル
5.1.14. Linux がユーザー名前空間をデフォルトで有効にするようになる
5.1.15. bullseye に redmine がない
5.1.16. Exim 4.94
5.1.17. SCSI デバイスの検出順が決定的ではなくなりました
5.1.18. rdiff-backup は サーバーとクラアントを同時にアップグレードする必要があります
5.1.19. Intel CPU microcode issues
5.1.20. アップグレード後、再起動前にすること
5.2. アップグレード後も影響がある項目
5.2.1. セキュリティサポートにおける制限事項
5.2.2. GNOME の「設定」アプリにマウスを使用せずにアクセスする
5.2.3. root パスワードなしで rescue ブートは使用できません
5.3. 非推奨と時代遅れになった事柄
5.3.1. 特記すべき時代遅れとなったパッケージたち
5.3.2. bullseye で非推奨となったコンポーネント
5.3.3. サポート外となったハードウェア

新しいリリースで導入された変更点には副作用が避けられず、どこか他の場所でバグを出してしまうことがあります。この章では、現時点で私たちが知っている問題点を記載しています。正誤表・関連パッケージの付属文書・バグ報告や、「もっと読みたい」で触れられているその他の情報も読んでください。

5.1. bullseye へのアップグレード特有の事項

この項では buster から bullseye へのアップグレードに関連した項目を取り扱います。

5.1.1. Intel 社製 GPU のデフォルトドライバーが、新しい VA-API になります

Broadwell 以降の Intel 社製の GPU では、ハードウェアによる動画処理のため専用の API (VA-API) intel-media-va-driver がデフォルトになります。従来の va-driver-all がインストールされたシステムでは、新しいドライバーに自動的に更新されます。

レガシードライバーパッケージの i965-va-driver はまだ利用可能であり、Cannon Lake マイクロアーキテクチャまでサポートされます。新しいドライバーではなくレガシードライバーを使用したい場合は、/etc/environment ファイルを変更するなどして、環境変数 LIBVA_DRIVER_NAMEi965 に設定してください。詳細は、wiki のhardware video acceleration のページを参照してください。

5.1.2. XFS ファイルシステムは barrier/nobarrier オプションをサポートしません

XFS ファイルシステムでマウントオプション barriernobarrier がなくなりました。アップデート前に /etc/fstab でそれぞれのキーワードを確認し、削除するのを推奨します。これらのオプションを使用しているパーティションは、マウントできなくなります。

5.1.3. セキュリティアーカイブの構成が変更されました

bullseye ではセキュリティスイートの名前が buster/updates から bullseye-security に変更されます。OS のアップグレード時に、ユーザが自分で APT のファイルのソースリストを更新してください。

例えば APT のセキュリティのソースラインは、以下のようになります。

deb https://deb.debian.org/debian-security bullseye-security main contrib

5.1.4. パスワードのハッシュ化に yescrypt がデフォルトで利用されます

ローカルアカウントに対して、デフォルトのパスワード暗号化が SHA-512 からyescrypt(詳細は crypt(5)) に変更されました。これにより、辞書ベースのパスワード推測攻撃に対して時間と空間計算量の観点からセキュリティの向上が期待されます。

この改善されたセキュリティ機能の利点を享受するには、ローカルパスワードを変更する必要があります。passwd コマンドを使うなどしてください。

以前のパスワードの生成にどのようなパスワードハッシュ方法で使っていたとしても、そのパスワードは使い続けられます。

yescrypt は Debian 10 (buster) ではサポートされていません。そのため、bullseye システムのshadow パスワードファイル (/etc/shadow) を buster システムにはコピーできません。これらのファイルがコピーされた場合、bullseye システム上で変更されたパスワードは buster システムでは動作しません。同様に、bullseye システムで暗号化されたパスワードは buster システムへカット&ペーストできません。

bullseye と buster 間でパスワードハッシュに互換性が必要な場合、/etc/pam.d/common-password を以下の様に変更してください:

password [success=1 default=ignore] pam_unix.so obscure yescrypt
	

そして、yescryptsha512 に変更してください。

5.1.5. NSS NIS および NIS+ 利用に新しいパッケージが必要になります

NSS NISNIS+ のサポートは、libnss-nislibnss-nisplus という別のパッケージに分けられました。残念ながら、現時点では glibc はそれらのパッケージに依存しておらず、推奨のみしています。

そのため NIS もしくは NIS+ を使用しているシステムでは、OS のアップグレード後にそれらのパッケージがインストールされているか確認することをお勧めします。

5.1.6. unbound での分割された設定ファイルの扱い

DNS リゾルバ unbound は設定のファイルを分割したときの動作を変更しました。分割された複数のファイルを include: ディレクティブを使用して設定を定義している場合、NEWS ファイル を読むのをお勧めします。

5.1.7. 非推奨になる rsync のパラメータ

rsync のパラメータ --copy-devices--noatime--write-devices--open-noatime に変更されました。古い書式のパラメータはサポートされません。これらのパラメータを使用している場合、NEWS ファイルに目を通すのをお勧めします。 異なる Debian のリリースが稼動しているシステム間で通信する場合は、buster 側の rsyncbackports のバージョンにアップグレードする必要があるかもしれません。

5.1.8. Vim のアドオンについて

長らく vim のアドオンは vim-scripts として提供されていました。しかし vim-addon-manager ではなくVim のネイティブなパッケージ機能をそのまま使用するようになります。Vim のユーザーは NEWS ファイル に従いアップグレードの準備をしてください。

5.1.9. OpenStack と cgroups v1 について

(bullseye でリリースとなる) OpenStack Victoria は、QoS ブロックデバイスに cgroup v1 を必要とします。bullseye では cgroup v2 がデフォルトになったため (詳細は 「コントロールグループ v2」)、sysfs ツリー内の /sys/fs/cgroup には/sys/fs/cgroup/blkio などの cgroup v1 の機能が含まれていません。そしてその結果、cgcreate -g blkio:foo が動作しません。nova-computecinder-volume が動作している OpenStack ノードでは、デフォルト設定を上書きして従来の cgroup ヒエラルキーに戻すために、systemd.unified_cgroup_hierarchy=falsesystemd.legacy_systemd_cgroup_controller=false をカーネルコマンドラインに加えることを強く推奨します。

5.1.10. OpenStack API ポリシーのファイルについて

開発元からの推奨事項では、bullseye でリリースされた OpenStack Victoria が新しい YAML フォーマットを使用するため、OpenStack API が更新され互換性がなくなります。その結果、そのままでは Nova, Glance, Keystone を含む policy.json ファイルに全て API ポリシーが明記されているほとんどの OpenStack サービスは動作しません。そのため デフォルトで全てのポリシーが記述された 00_default_policy.yaml を含む /etc/PROJECT/policy.d が配布されるようになります。このファイルは、デフォルトで全てコメントアウトされています。

従来のファイル policy.json が参照されるのを防ぐためにDebian OpenStack はファイル名を disabled.policy.json.old に変更します。policy.json を単純に削除してしまった方が良い場合もあるかもしれません。そのため、アップデート前に policy.json をバックアップしておく事を強く推奨します。

詳細は開発元のドキュメントを参照してください。

5.1.11. アップグレード中の sendmail のダウンタイムについて

通常のアップグレードとは異なり、buster から bullseye への更新中は sendmail が停止し、通常よりも長いダウンタイムを発生します。一般的な対処法ですが、ダウンタイムを縮小するためにはこちらをご覧ください「サービスのダウン期間の準備」

5.1.12. FUSE 3

gvfs-fuse, kio-fuse, sshfs はFUSE 3に移行しました。アップグレード中に fuse3 がインストールされ、fuse パッケージは削除されます。

特別な環境、例えば 4章Debian 10 (buster) からのアップグレード に記述されている推奨されるアップデート手順ではなく、apt-get dist-upgradeのみ実行してアップグレードした場合、fuse3 に依存するパッケージは、アップデート中に更新されない可能性があります。bullseye の apt を使って 「システムのアップグレード」 で説明されている手順を実行する、もしくは手動でアップデートすることで状態が解消されます。

5.1.13. GnuPG オプションファイル

バージョン 2.2.27-1 以降では、GnuPG のユーザー毎の設定が ~/.gnupg/gpg.conf に移動され、そして ~/.gnupg/options は 使用されなくなりました。必要であれば、ファイル名を変更するか、内容を新たな位置に移動してください。

5.1.14. Linux がユーザー名前空間をデフォルトで有効にするようになる

Linux 5.10 より、全てのユーザーはデフォルトでユーザー名前空間を作れるようになりました。これにより、ウェブブラウザやコンテナマネージャーが、ルート権限での実行あるいは setuid-root されたヘルパーを使わずに、信頼できない・信頼性が低いコードに対してより制限されたサンドボックスを作成できるようになりました。

以前の Debian ではこの機能はルート権限で実行されるプロセスのみに制限されていました。なぜなら、この機能はカーネル内のセキュリティの問題をより晒すことになるからです。 しかし、この機能の実装が成熟したことによって、セキュリティよりもこの機能を有効にすることによる恩恵の方が上まわったと確信しています。

この機能を制限したい場合、sysctl を以下のように設定してください:

user.max_user_namespaces = 0
      

ウェブブラウザ、WebKitGTK, Flatpak, GNOME のサムネイル機能などを含む、様々なデスクトップアプリやコンテナの機能はこの制限下では動作しないであろうことに注意してください。

Debian 固有の sysctl 設定 kernel.unprivileged_userns_clone=0 も同様の効果がありますが、非推奨となっています。

5.1.15. bullseye に redmine がない

redmine パッケージは bullseye では提供されません。開発元のサポートが停止した (重大なセキュリティ修正バグのみへの対応を行う) 古いバージョンから bullseye でのバージョンへの rails の移行を行うには遅すぎたからです。Ruby Extras のメンテナらは、開発元の状態を追いかけ、リリース後に動作するパッケージが出来次第、backports 経由でパッケージをリリースする予定です。アップグレード作業までこの動きが待てない場合、特定アプリケーションの隔離用の buster が動作する仮想マシンあるいはコンテナが利用できるでしょう。

5.1.16. Exim 4.94

bullseye の Exim バージョンはメジャーアップデートである、とご理解ください。信頼しないソース (例えば送信者や受信者が信頼できない場合) からの汚染されたデータの読み取りというコンセプトが導入されました。汚染されたデータ (例: $local_part$domain) は、ファイル、ディレクトリ名やコマンド名など他の項目に使用できません。

この変更は、適切にアップデートしていない設定ファイルを破壊します。古い Debian の Exim の設定ファイルは変更なしでは使用できません。ローカルでの修正を加えてから新しい設定をインストールする必要があります。

動作しない例は、以下のような設定を含みます:

  • 格納先のディレクトリを /var/mail/$local_part にしたり $local_part_datacheck_local_user と共に使用する場合などです。

  • 悪い例: 仮想ドメインのエイリアスを直接使用している場合

    data = ${lookup{$local_part}lsearch{/some/path/$domain/aliases}}
    

    良い例: 上記の替わりに

    data = ${lookup{$local_part}lsearch{/some/path/$domain_data/aliases}}
    

    以上、バーチャルドメインのエイリアスファイルの設定例です。

この変更に対する基本的な方針は、(リモートから与えられる) そのままの値ではなく、先の処理での参照結果を使用することです。

アップグレードを簡単にするために、一時的に汚染に関するエラーを警告へダウングレードするオプションがメインの設定項目にあります。このオプションにより、古い設定ファイルが新しい Exim でも使用できます。この機能を使用するには、アップグレード前に Exim の設定ファイル (例えば /etc/exim4/exim4.conf.localmacros) に以下を加えてください:

.ifdef _OPT_MAIN_ALLOW_INSECURE_TAINTED_DATA
 allow_insecure_tainted_data = yes
.endif

to the Exim configuration (e.g. to /etc/exim4/exim4.conf.localmacros) before upgrading and check the logfile for taint warnings. This is a temporary workaround which is already marked for removal on introduction.

5.1.17. SCSI デバイスの検出順が決定的ではなくなりました

Linux カーネルの変更により、SCSI デバイスの検出は決定的ではなくなりました。ディスクの検出順に依存するインストールでは問題になる可能性があります。回避方法が2つあり、/dev/disk/by-path をリンクするか、udev のルールを Linux カーネルのメーリングリストで提案されているようにしてください。

5.1.18. rdiff-backup は サーバーとクラアントを同時にアップグレードする必要があります

rdiff-backup ネットワークプロトコルバージョンの 1 と 2 には互換性がありません。これが意味するところは、ローカルとリモートで (1 であれ 2 であれ) 同じバージョンの rdiff-backup プロトコルで動作させる必要があるということです。buster ではバージョン 1.2.8 を、bullseye では バージョン 2.0.5 を提供するため、ローカルもしくはリモートのシステムのみを buster から bullseye へアップグレードすると、2 つのシステム間で実行する rdiff-backup は停止するでしょう。

rdiff-backup のバージョン 2.0.5 は buster-backports アーカイブから利用できます。backports を参照してください。これによりまず buster のシステムの rdiff-backup パッケージのみをアップグレードでき、そのあと状況に応じてシステムを個別に bullseye へアップグレードできます。

5.1.19. Intel CPU microcode issues

The intel-microcode package currently in bullseye and buster-security (see DSA-4934-1) is known to contain two significant bugs. For some CoffeeLake CPUs this update may break network interfaces that use firmware-iwlwifi, and for some Skylake R0/D0 CPUs on systems using a very outdated firmware/BIOS, the system may hang on boot.

If you held back the update from DSA-4934-1 due to either of these issues, or do not have the security archive enabled, be aware that upgrading to the intel-microcode package in bullseye may cause your system to hang on boot or break iwlwifi. In that case, you can recover by disabling microcode loading on boot; see the instructions in the DSA, which are also in the intel-microcode README.Debian.

5.1.20. アップグレード後、再起動前にすること

apt full-upgrade が完了した時点で、正規のアップグレードは完了しています。bullseye へのアップグレードについては、再起動の実行前に必要となる特別な作業はありません。

5.2. アップグレード後も影響がある項目

5.2.1. セキュリティサポートにおける制限事項

Debian がセキュリティ問題に対する最小限のバックポートを約束できないパッケージがいくつか存在しています。これらについては以下の章で触れられています。

[注記]注記

debian-security-support パッケージが、インストールされたパッケージのセキュリティサポート状況を確認するのに役立ちます。

5.2.1.1. ウェブブラウザとレンダリングエンジンにおけるセキュリティ更新の状態

Debian 11 は複数のブラウザエンジンを含んでおり、これらは一定の割合でセキュリティ脆弱性の影響を受けます。高い脆弱性率と一部開発元での長期間サポートブランチの欠落によって、セキュリティ修正をバックポートしてこれらのブラウザならびにブラウザエンジンをサポートする事が難しくなっています。さらに、ライブラリへの内部依存性のため、開発元での新しいリリースへの更新を極めて難しくしています。例えば bullseye に含まれているものの例として webkit や khtml エンジン[6]を使ったブラウザがありますが、これらはセキュリティサポートはされません。一般的にこれらのブラウザを信用できないウェブサイトを閲覧するのに使うべきではありません。webkit2gtk および wpewebkit エンジンはセキュリティサポートの対象です。

一般的なウェブブラウザ利用として我々は Firefox または Chromium を推奨しています。安定版向けに現行の ESR リリースをリビルドすることで最新を維持します。同じ手法が Thunderbird にも適用されます。

5.2.1.2. OpenJDK 17

Debian bullseye には、煩わしいブートストラップ問題を回避するために OpenJDK 17 が採用されます。 (このバージョンは次期 OpenJDK 11 後のOpenJDK LTS の候補です) OpenJDK 17 の更新計画では、2021 年 10 月に開発元からのアップデートが完了する予定です。その間、ベストエフォートでセキュリティの更新をする予定ですが、四半期ごとの開発元によるセキュリティに関するアップデートを確実に提供できるとは考えないでください。

5.2.1.3. Go 言語ベースのパッケージ

現在、Debian のインフラは静的リンクを行うパッケージをリビルドすることに問題を抱えています。Buster より前は、問題ではありませんでした。しかし、Go 言語で書かれたパッケージが増えたため、インフラが強化されメンテナンスが行き届くようになるまでは、限定的なセキュリティのアップデートしか提供しません。

アップデートが保証されている Go の開発用ライブラリならば、定期的なポイントリリースでのみ提供されます。更新は他のパッケージよりも遅いかもしれません。

5.2.2. GNOME の「設定」アプリにマウスを使用せずにアクセスする

ポインティングデバイスなしで、gnome-control-center で提供される GNOME の「設定」アプリで直接を直接変更する方法はありません。回避方法として、右カーソルを 2 回押下するとサイドバーからメインコンテントに移ることができます。サイドバーに戻るには、Ctrl+F で検索を開始して、何か打ちこんでください。そして、Esc で検索をキャンセルします。そうしたら、上カーソル下カーソルでサイドバーを操作してください。検索結果をキーボードだけで、選択する方法はありません。

5.2.3. root パスワードなしで rescue ブートは使用できません

buster より使用されている sulogin により、rescue オプションでブートする場合、常にパスワードが必要になります。もし、未設定ならば、レスキューモードでのブートが使用できなくなります。しかし、カーネルパラメータの init=/sbin/sulogin --force により、このモードを使用することができます。

systemd をレスキューモード (シングルユーザーモードとも呼ばれています: systemd(1) 参照) と同じ環境にするには、sudo systemctl edit rescue.service を実行してファイルを生成し、下記の様にしてください:

[Service]
Environment=SYSTEMD_SULOGIN_FORCE=1
      

emergency.service ユニットも便利かもしれません。このユニットは、特定のエラー時 (systemd.special(7) 参照) か、emergency がカーネルコマンドラインに追加されている場合 (レスキューモードが使えない時など)、自動的にシングルユーザーモードを起動します 。

背景とセキュリティに関する考察については、 #802211 を参照してください。

5.3. 非推奨と時代遅れになった事柄

5.3.1. 特記すべき時代遅れとなったパッケージたち

以下は、よく知られていて特に時代遅れとなってしまったパッケージの一覧です (説明については 「利用されなくなったパッケージ」 参照)。

時代遅れとなったパッケージの一覧には以下が含まれます:

  • lilo は bullseye から削除されました。lilo の後継のブートローダーは grub2 です。

  • Mailman メーリングリストマネージャはバージョン3のみが使えます。Mailman は複数のコンポーネントへと分割されました。コアとなるのが mailman3 パッケージで、すべてをインストールするには mailman3-full メタパッケージによりインストールできます。

    Mailman バージョン 2.1 はインストールできません。(以前は mailman として使われていたパッケージです) Debianではインストールできなくなっている Python 2に依存しているためです。

    アップグレード手順については、プロジェクトの移行ドキュメント を参照してください。

  • Linuxカーネルは isdn4linux (i4l) のサポートを提供しません。結果として、関連するユーザーランドのパッケージである isdnutilsisdnactivecardsdrdslibod パッケージはアーカイブから削除されました。

  • libappindicatorライブラリは提供されません。結果として libappindicator1libappindicator3-1libappindicator-dev も提供されません。システムトレイやインジケータサポートのためにサードパーティーのソフトウェアが依然としてlibappindicatorへ依存しているなど、依存関係のエラーが発生することが予期されます。

    Debian は libayatana-appindicator をlibappindicatorの後継として採用しています。技術的な背景については、アナウンスを参照してください。

  • Debian では chef を提供しません。もしChefを構成管理に使っているなら、最も良い移行先は Chef Inc の提供するパッケージに切り替えることです。

    削除の背景については、該当する削除リクエストを参照してください。

  • Python 2 はEOL をすでに過ぎており、セキュリティアップデートも受けられません。Python 2 はサポートされていないので、実行しているアプリケーションや、それが依存しているパッケージは Python 3 に移行するか削除すべきです。しかしながら、Debian bullseye では Python 2.7 を依然として含んでいます。これは python-setuptools のようにPython 2 に依存しているビルドツールがあるためです。これらは Python 3 への移行がすすんでいない、ごくわずかなアプリケーションをビルドするために必要とされています。

  • aufs-dkms は bullseye にありません。aufs-dkms ユーザーのほとんどは、overlayfs に移行できるはずです。overlayfs は kernel のサポートと共に同じような機能を提供します。xfsd_type 設定なしの様にoverlayfs に合致しないファイルシステムとしてインストールすることもできます。aufs-dkms のユーザーは bullseye へのアップグレード前に aufs-dkms から移行しておくことをお勧めします。

5.3.2. bullseye で非推奨となったコンポーネント

次のリリースである Debian 12 (コードネーム bookworm) では、いくつかの機能が非推奨となります。12 へ更新する際にトラブルを防ぐためには、ユーザーは他の選択肢へ移行する必要があります。

これには以下の機能が含まれます:

  • 歴史的な経緯から、/usr 配下とは別に /bin/sbin/libがあるのはもはや妥当ではありません。Freedesktop.org 要約を参照してください。Debian bullseye がディレクトリ構成が統合されていない最後のリリースとなります。再インストールすることなく既存のディレクトリ構成を変換するためにusrmerge パッケージがあります。

  • bullseye はapt-key コマンドを提供する最後のリリースとなります。鍵は /etc/apt/trusted.gpg.d にファイルとして管理されるべきです。バイナリ形式なら gpg --export コマンドで .gpg 拡張子のファイルにし、テキスト形式なら ASCII armored と呼ばれる.asc 拡張子の形式にします。

    手動でキーリングを調べるのに apt-key list を使っていましたが、代替手段は計画されているもののまだ開発が行われていません。

  • slapd データベースのバックエンドである slapd-bdb(5), slapd-hdb(5) および slapd-shell(5) は退役しており、Debian 12 には含まれない予定です。bdb もしくは hdb バックエンドを使っている LDAP データベースは slapd-mdb(5) バックエンドへ移行すべきです。

    加えて、slapd-perl(5) および slapd-sql(5) バックエンドは非推奨になり、将来のリリースで削除されるかもしれません。

    OpenLDAP プロジェクトは退役・非推奨となったバックエンドをサポートしません。Debian 11 におけるこれらのバックエンドのサポートは基本的にベストエフォートになります。

5.3.3. サポート外となったハードウェア

buster では数々の armel ベースの機器がサポートされていましたが、ハードウェアの制限のために必要な Linux カーネルをビルドすることができなくなったため、Debian では利用できなくなっています。サポートされないデバイスは以下です:

  • QNAP TS-109/TS-209, TS-119/TS-219 および TS-409

  • HP Media Vault mv2120

これらのプラットフォームを使用しているが bullseye にアップデートしたいユーザーは buster の APT ソースを有効にしておいてください。また、アップグレード前に APT の優先度ファイルに以下を追加しておくべきです:

Package: linux-image-marvell
Pin: release n=buster
Pin-Priority: 900
	

これらの設定へのセキュリティサポートは、buster のサポート期間内しか提供されません



[6] これらのエンジンは、異なるソースからパッケージが提供されているので、懸念が付きまといます。これらの懸念について、webkit2gtk および新しい wpewebkit 以外のレンダリングエンジンについては特筆しません。