Proxmox: Aktuelle CA im EFI NVRAM für alle VMs

6.Februar 2025

In einem früheren Artikel habe ich beschrieben, wie man in Proxmox ein Windows-Betriebssystem installiert und dabei das EFI mit einer aktuellen Certificate Authority (CA) versieht. Nun stellt sich die Frage: Muss ich diesen Prozess für jede neue VM wiederholen?

Zum Glück gibt es eine einfachere Lösung! In diesem Artikel erkläre ich, wie ihr ein aktualisiertes EFI-NVRAM für alle eure virtuellen Maschinen wiederverwenden könnt.

Hinweis:
Diese Anleitung geschieht auf eigene Verantwortung. Bitte sichert eure Daten, bevor ihr Änderungen am System vornehmt!


Proxmox und EFI-Varianten

Proxmox liefert standardmäßig zwei Varianten des UEFI-Bootloaders mit:

  1. EFI ohne Microsoft-Zertifikate
  2. EFI mit der vorkonfigurierten Microsoft CA 2011

Das Problem ist, dass diese Versionen nicht automatisch mit den aktuellen Microsoft 2023-Zertifikaten ausgestattet sind. Um nicht bei jeder neuen VM das EFI manuell zu aktualisieren, gibt es einen Trick: Wir erstellen eine VM mit aktuellem EFI und nutzen das NVRAM als globale Vorlage.


Schritt-für-Schritt-Anleitung

1. Eine neue VM mit speziellem EFI-Speicher erstellen

  • Erstellt eine neue VM in Proxmox.
  • Achtet darauf, dass das EFI-Image nicht in einem LVM oder CEPH-Storage gespeichert wird, sondern auf einem Storage mit Verzeichnisstruktur (z. B. /mnt/pve/prox/images/).
  • Wählt das RAW-Format für die EFI-Disk.

Proxmox VM-Erstellung

2. Betriebssystem installieren & EFI aktualisieren

  • Installiert das gewünschte Betriebssystem.
  • Führt ein Update des EFI durch, indem ihr die neuen 2023-Zertifikate importiert und die Microsoft CA 2011 auf die Revocation List setzt.
  • Stellt sicher, dass das Update tatsächlich übernommen wurde (z. B. mit mokutil --sb-state in Linux).

3. EFI-NVRAM-Datei sichern und ersetzen

Das EFI-NVRAM ist als Datei in Proxmox gespeichert und kann als Vorlage für neue VMs genutzt werden. Die relevanten Dateien befinden sich hier:

Standard-OVMF-Dateien in Proxmox:

  • /usr/share/pve-edk2-firmware/OVMF_CODE_4M.secboot.fd → Das eigentliche UEFI-BIOS
  • /usr/share/pve-edk2-firmware/OVMF_VARS_4M.ms.fd → Die NVRAM-Datei (unsere Zieldatei)

Backup der Original-NVRAM-Datei

Bevor wir unsere eigene Version einfügen, sichern wir das bestehende NVRAM:

1cp /usr/share/pve-edk2-firmware/OVMF_VARS_4M.ms.fd /usr/share/pve-edk2-firmware/OVMF_VARS_4M.ms.fd.backup

Ersetzen mit unserer eigenen EFI-Datei

Die Datei, die unser aktualisiertes EFI enthält, liegt beispielsweise hier:

1/mnt/pve/prox/images/108/vm-108-disk-0.raw

Nun kopieren wir sie an die richtige Stelle:

1cp /mnt/pve/prox/images/108/vm-108-disk-0.raw /usr/share/pve-edk2-firmware/OVMF_VARS_4M.ms.fd

4. Neue VMs mit dem aktualisierten EFI erstellen

Ab jetzt können wir neue VMs mit dem aktuellen EFI starten:

  • Bei der Erstellung der VM einfach EFI als Firmware wählen.
  • Den Pre-Enroll Key aktivieren, wenn Secure Boot genutzt wird.
  • Fertig! Jede neue VM verwendet nun das aktualisierte EFI mit den Microsoft CA 2023-Zertifikaten.

Selbsterstellte OVMF_VARS einzelnen Maschinen zuweisen

Man muss nicht zwingend das OVMF_VARS_4M.ms.fd von Proxmox überschreiben. Stattdessen kann man das selbst erstellte OVMF_VARS zur Maschine hinzufügen. Dies geht am einfachsten, indem man die vorhandene EFI-Disk in der Proxmox-UI löscht oder per CLI:

Weitere Details zur ursprünglichen Einrichtung und zur Aktualisierung des EFI findet ihr in meinem früheren Artikel.

1qm disk unlink 199 --idlist efidisk0

Dann kann man über folgendes Kommando unser EFI-NVRAM importieren:

1qm set 199 --efidisk0 local-zfs:0,efitype=4m,pre-enrolled-keys=1,import-from=/share/OVMF_VARS_mycustom.fd

Wichtiger Hinweis zur Persistenz bei Updates

Man sollte bedenken, dass bei einem Proxmox-Update das EFI-NVRAM überschrieben werden kann. Um sicherzugehen, dass unsere Konfiguration erhalten bleibt:

  1. Backup der angepassten NVRAM-Datei anlegen:
    1cp /usr/share/pve-edk2-firmware/OVMF_VARS_4M.ms.fd /root/OVMF_VARS_4M.ms.fd.custom
    
  2. Falls ein Update das NVRAM ersetzt, einfach wiederherstellen:
    1cp /root/OVMF_VARS_4M.ms.fd.custom /usr/share/pve-edk2-firmware/OVMF_VARS_4M.ms.fd
    
  3. Nach jedem Update kurz prüfen, ob das EFI noch aktuell ist.

Fazit

Mit dieser Methode müssen wir nicht für jede neue VM Secure Boot und die EFI-Updates manuell durchführen. Stattdessen können wir eine einmal aktualisierte NVRAM-Datei als Standard in Proxmox hinterlegen.

Falls ihr Probleme oder Fragen habt, schreibt es in die Kommentare! 😊


Hat dir dieser Guide geholfen? Lass es mich wissen! 🚀