Om VMware Workstation Pro-kernelmodules te kunnen laden op Linux-systemen met UEFI Secure Boot, moet u ze handmatig ondertekenen. Niet-ondertekende VMware Workstation Pro-kernelmodules worden niet geladen, waardoor de VMware Workstation Pro-services niet kunnen starten.
Zoals u kunt zien, konden de VMware Workstation Pro-services niet starten nadat de VMware Workstation Pro-kernelmodules met succes waren gecompileerd.
De vmware systemd-service kon ook niet worden gestart.
$ sudo systemctl-status vmware
Een oplossing voor dit probleem is om schakel UEFI Secure Boot uit via de BIOS/UEFI-firmware van uw moederbord . Maar als u UEFI Secure Boot op uw computer niet wilt uitschakelen, moet u een ondertekeningssleutel voor de kernelmodule genereren en de VMware Workstation Pro-kernelmodules ondertekenen met behulp van de gegenereerde sleutel.
In dit artikel laat ik u zien hoe u een ondertekeningssleutel voor de kernelmodule kunt genereren en de VMware Workstation Pro-kernelmodules ermee kunt ondertekenen, zodat de VMware Workstation Pro-kernelmodules correct worden geladen op UEFI Secure Boot-compatibele Linux-systemen.
Inhoudsopgave
- Een ondertekeningssleutel voor de UEFI-kernelmodule genereren
- Het volledige pad van het kernelscript met tekenbestand vinden
- Ondertekening van de VMware Workstation Pro Kernel Modules voor UEFI Secure Boot
- De UEFI Kernel Signing Keys toevoegen aan de shim
- De UEFI-kernelondertekeningssleutels registreren
- Controleren of VMware Workstation Pro Kernel Modules zijn ondertekend voor UEFI Secure Boot
- Conclusie
- Referenties
Een ondertekeningssleutel voor de UEFI-kernelmodule genereren
Om een nieuw handtekeningsleutelpaar voor de UEFI-kernelmodule te genereren en deze op te slaan in de ~/.VMware-MOK.priv En ~/.VMware-MOK.der bestand, voert u de volgende opdracht uit:
$ openssl req -new -x509 -newkey rsa:2048 -keyout ~/.VMware-MOK.priv -outform DER -out ~/.VMware-MOK.der -nodes -days 36500 -subj '/CN=VMware/'
Zoals u kunt zien, is er een nieuw ondertekeningssleutelpaar voor de UEFI-kernelmodule .VMware-MOK.priv En .VMware-MOK.der wordt aangemaakt in de thuismap van mijn inloggebruiker.
$ ls -lh ~/.VMware*
Het volledige pad van het kernelscript met tekenbestand vinden
Om de VMware Workstation Pro-kernelmodules te ondertekenen met het gegenereerde sleutelpaar, hebt u de tekenbestand kernel-script. De tekenbestand kernelscript is beschikbaar in verschillende paden in verschillende Linux-distributies.
Om het volledige pad van de tekenbestand kernelscript op uw Linux-distributie, voert u de volgende opdracht uit:
$ sudo find /usr/src -wholename '*/scripts/sign-file'
Op mijn Ubuntu 24.04 LTS-systeem bevindt het sign-file-kernelscript zich in het pad /usr/src/linux-headers-6.8.0-31-generic/scripts/sign-file .
Ondertekening van de VMware Workstation Pro Kernel Modules voor UEFI Secure Boot
Om de VMware Workstation Pro-kernelmodules te ondertekenen vmmon En vmnet met behulp van de sleutelparen ~/.VMware-MOK.priv En ~/.VMware-MOK.der met de tekenbestand kernelscript, voert u de volgende opdrachten uit:
$ sudo /usr/src/linux-headers-6.8.0-31-generic/scripts/sign-file sha256 ~/.VMware-MOK.priv ~/.VMware-MOK.der $(modinfo -n vmmon)$ sudo /usr/src/linux-headers-6.8.0-31-generic/scripts/sign-file sha256 ~/.VMware-MOK.priv ~/.VMware-MOK.der $(modinfo -n vmnet)
De UEFI Kernel Signing Keys toevoegen aan de shim
Zodra de VMware Workstation Pro-kernelmodules zijn ondertekend met de gegenereerde sleutelparen ~/.VMware-MOK.priv En ~/.VMware-MOK.der , moet u het ~/.VMware-MOK.der bestand naar de UEFI-shim en registreer het vanuit de UEFI-firmware van uw computer.
Om het ~/.VMware-MOK.der bestand naar de UEFI-shim, voert u de volgende opdracht uit:
$ sudo mokutil --import ~/.VMware-MOK.der
Voer een wachtwoord naar keuze in en druk op
Typ het wachtwoord opnieuw en druk op
De UEFI-kernelondertekeningssleutels registreren
Om de sleutel te registreren ( ~/.VMware-MOK.der ) geïmporteerd in de UEFI-shim, start u uw Linux-systeem als volgt opnieuw op:
$ sudo opnieuw opstarten
U zult een soortgelijk UEFI-sleutelbeheervenster zien.
Druk op een willekeurige toets om MOK-beheer uit te voeren.
Selecteer IOC inschrijven en druk op
Selecteer om te zien welke sleutel wordt geregistreerd Sleutel bekijken en druk op
De sleutel die u gaat registreren, moet worden weergegeven.
Om terug te gaan, drukt u op
Selecteer om de sleutel te registreren Doorgaan en druk op
Selecteer Ja en druk op
Typ het wachtwoord dat u hebt ingesteld tijdens het toevoegen van de gegenereerde sleutel aan de UEFI-shim en druk op
Selecteer Opnieuw opstarten en druk op
Controleren of VMware Workstation Pro Kernel Modules zijn ondertekend voor UEFI Secure Boot
Zodra uw Linux-systeem opstart, kunt u verifiëren of de VMware Workstation Pro-kernelmodules zijn ondertekend door eenvoudigweg te controleren of ze tijdens het opstarten zijn geladen met de onderstaande opdracht:
$ lsmod | egrep 'vmmon|vmnet'
Als de vmmon En vmnet kernelmodules worden geladen, waarna de VMware Workstation Pro-kernelmodules met succes worden ondertekend voor uw UEFI Secure Boot-enabled Linux-systeem.
Als de VMware Workstation Pro-kernelmodules zijn ondertekend, wordt de vmware systemd service zou op uw Linux-systeem moeten draaien.
$ sudo systemctl-status vmware
Conclusie
In dit artikel heb ik je laten zien hoe je de VMware Workstation Pro-kernelmodules kunt ondertekenen, zodat ze kunnen worden geladen op Linux-systemen met UEFI Secure Boot. Zonder ondertekende VMware Workstation Pro-kernelmodules werkt VMware Workstation Pro niet op UEFI Secure Boot-systemen.