カーネルの更新後、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 upgrade
proxmoxからカーネルが更新されたがまだロードされていないという警告が表示されます(再起動が必要)。また、現在有効な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です。これらの更新は手動で更新するまで適用されないようです。私はこれが(現在)無効な正規表現パターンに関連していると思います。正規表現パターンが|
なくなり、アプリが更新されなくなりました。