BIOSアップデートとIntelマイクロコードパッケージにもかかわらず、正誤表のためTSC_DEADLINEは無効になっています。

BIOSアップデートとIntelマイクロコードパッケージにもかかわらず、正誤表のためTSC_DEADLINEは無効になっています。

カーネルの更新後、proxmox(Debianベース)のホームサーバーは起動しません。

ここに画像の説明を入力してください。

# dmesg | grep -i microcode
[    0.080090] [Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x22 (or later)
[    0.200978] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[    1.043840] microcode: sig=0x306c3, pf=0x2, revision=0x19
[    1.043870] microcode: Microcode Update Driver: v2.2.

私が見つけたこれそしてこれ最初の間違った質問にTSC_DEADLINE disabled due to Errata。だから更新しました。バイオス2015年5月19日現在、V1.12の最新バージョンに更新されました。更新プロセス中にエラーが報告されませんでした。適用されたようです。

# dmidecode -t BIOS | grep -E 'Version|Date'
        Version: V1.12
        Release Date: 05/19/2015

しかし、まだエラーが発生します。 5.4.41-1-pveが最新のカーネルであり、正常に起動できることがわかりました。

ここに画像の説明を入力してください。

以前のバージョン(例:5.3)も機能しますが、最新バージョンは機能しません。したがってintel-microcode、パッケージをインストールし、問題を解決するために使用できるBIOSアップデートがない場合は、パッケージをインストールすることをお勧めします。ただし、問題が解決しないため、最新のカーネルバージョンを起動できません。

正規表現エラー

他の正規表現エラーが原因で発生しているようです/etc/lvm/lvm.conf。そこに次のフィルタが構成されています。

global_filter = [ "r|/dev/zd.*|", "r|/dev/mapper/pve-.*|" "r|/dev/mapper/.*-(vm|base)--[0-9]+--disk--[0-9]+|" "r|/dev/sda" "r|/dev/sdd"]

これディスク待機の問題の防止、proxmoxは定期的にディスクから情報(使用量など)を取得し、目を覚まします。

最後に区切り記号を入れなければならないと思います。これはr|/dev/sda|、代わりにr|/dev/sdaこれが過去に許可されており、現在これをテストしていることを意味します。

編集する

update-grub実行して最後にパターンを修正している間に同じ正規表現エラーが発生しました。|それ以降はupdate-grub実行してもエラーは発生しません。しかし、新しいカーネルで再起動してInvalid filter pattern "r|/dev/sda"実行しています|/etc/lvm/lvm.conf

実行中にapt upgradeproxmoxからカーネルが更新されたがまだロードされていないという警告が表示されます(再起動が必要)。また、現在有効な0.19ではないマイクロコードリビジョン0x28が必要だと言います。

ここに画像の説明を入力してください。

ハードウェアの詳細

# dmidecode -t Baseboard | grep -E 'Manufacturer|Product|Version'
        Manufacturer: MSI
        Product Name: Z87-GD65 GAMING (MS-7845)
        Version: 1.0

# grep "model name" /proc/cpuinfo
model name      : Intel(R) Core(TM) i3-4150 CPU @ 3.50GHz

# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

# egrep ^deb /etc/apt/sources.list
deb http://ftp.de.debian.org/debian buster main contrib non-free
deb http://security.debian.org buster/updates main contrib non-free
deb [arch=amd64] https://download.docker.com/linux/debian buster stable
deb http://ftp.de.debian.org/debian buster-backports main

答え1

問題は、/etc/lvm/lvm.conf呼び出しだけでは再ロードされないことですupdate-grubこの記事私に正しいヒントを与えました(後でこれはドイツ語です。):

既存のinitramfsをバックアップして再構築し、再起動時に変更された/etc/lvm/lvm.confファイルが使用されるようにします。

再建するために見つけたinitramfs アップデートコマンドを発行し、次のように実行します。

update-initramfs -u -k all

いくつかのカーネルバージョンがあり、いくつかのカーネルバージョンに問題がある可能性があると予想したので(以前のテストのように)、すべてのカーネルバージョンを再構築しました。通常、切り替えることなく最新バージョンを再構築するだけで十分です-k all

これで、サーバーが問題なく再起動し、マイクロコードが更新されたことを確認できます。

# dmesg | grep -i microcode
[    0.000000] microcode: microcode updated early to revision 0x28, date = 2019-11-12
[    0.200700] SRBDS: Mitigation: Microcode
[    0.929176] microcode: sig=0x306c3, pf=0x2, revision=0x28
[    0.929231] microcode: Microcode Update Driver: v2.2.

以前は0x19がありましたが、今はproxmoxが予想したように0x28です。これらの更新は手動で更新するまで適用されないようです。私はこれが(現在)無効な正規表現パターンに関連していると思います。正規表現パターンが|なくなり、アプリが更新されなくなりました。

関連情報