签署 vmmon 和 vmnet 后无法在 RHEL 8 上运行 VMware

签署 vmmon 和 vmnet 后无法在 RHEL 8 上运行 VMware

使用所需的库安装 RHEL 8 并签署 vmmon 和 vmnet,然后导入 mok 后,我仍然无法在 VMWare Workstation 中运行虚拟机(VMWare Player 也是如此)这就是我签署 vmmon 和 vmnet 的方式:

openssl req -new -x509 -newkey rsa:2048 -keyout VMWare.priv -outform DEF -out VMWare.der -nodes -days 36500 -subj "/CN=VMware/"

/usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./VMWare.priv ./VMWare.der $(modinfo -n vmmon)
/usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./VMWare.priv ./VMWare.der $(modinfo -n vmnet)

mokutil --import VMWare.der

我在重新启动时成功导入 VMWare.der,但仍然收到以下错误:

无法打开 /dev/vmmon:没有这样的文件或目录。请确保加载了内核模块“vmmon”。

谢谢

格雷厄姆·哈里斯

更新1:

我已恢复到 RHEL 7.8,更新并签署了 VMMON 和 VMNET 文件,得到“无法读取私钥”,导入了 MOK,安装失败。

更新2:在启动屏幕上系统显示

Red Hat Enterprise Linux Server (3.10.0-1127.e17.x86_64) 7.8 (Maipo)

如果我更新到最新版本,系统将无法通过 UEFI 启动屏幕。

更新2

切换回 RHEL 8,导入 MOK 后,我运行 mokutil -l ,但找不到密钥。

然而最近在 git 上搜索发现了这篇文章MOK 注册默默失败 #105

问题摘要:

当使用EFI_VARIABLE_APPEND_WRITE写入MokList时,某些HP笔记本电脑可能只是返回EFI_SUCCESS而没有将内容写入闪存,因此我们无法检测MokList是否更新。现在我们总是先读取 MokList,然后将新内容写回。

答案1

经过多次尝试(甚至在查看了 MOKUTIL 的源代码之后),我在计算机上的 UEFI 启动设置上禁用了安全启动,并且 VMWare 可以正常工作。这是允许我在 RHEL 8 上运行 VMWare 的配置。使用 BIOS 模式启动仍然需要对驱动程序进行签名,但是,禁用 UEFI 启动模式的安全模式vmmon并且vmnet不需要签名。

对于那些想了解 BIOS 信息的人来说,为了获取这些信息,我使用了sudo dmidecode

# dmidecode 3.2
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
---%<-------------

BIOS Information
    Vendor: Dell Inc.
    Version: A05
    Release Date: 07/26/2012
    Address: 0x00000
    Runtime Size: 64 kB
    ROM Size: 8 MB
    Characteristics:
        PCI is supported
        BIOS is upgradeable
        BIOS shadowing is allowed
        Boot from CD is supported
        Selectable boot is supported
        BIOS ROM is socketed
        EDD is supported
        5.25"/1.2 MB floppy services are supported (int 13h)
        3.5"/720 kB floppy services are supported (int 13h)
        3.5"/2.88 MB floppy services are supported (int 13h)
        Print screen service is supported (int 5h)
        8042 keyboard services are supported (int 9h)
        Serial services are supported (int 14h)
        Printer services are supported (int 17h)
        ACPI is supported
        USB legacy is supported
        BIOS boot specification is supported
        Targeted content distribution is supported
        UEFI is supported
    BIOS Revision: 4.6

    ---%<-------------

答案2

我运行的是 Fedora 36,并且我能够让 VMware 启动虚拟机,而无需禁用安全启动。

我按照这个步骤操作VMware 知识库文章

但是,我无法按照步骤 2 进行操作,因为我没有按照步骤 2/usr/src/linux-headers的建议安装了“开发工具”和“开发库”这个答案

相反,我向下滚动到Related InformationVMware 知识库文章中的部分,并在 处签署了内核文件/usr/src/kernels/

对于 mokutil 公钥导入步骤,我需要超级用户权限。请注意,此步骤涉及创建新密码。

最重要的是,为了在 UEFI 控制台中显示 MOK 注册屏幕,我需要使用reboot终端中的命令,而不是从开始菜单重新启动计算机。我按照 UEFI 控制台中的步骤进行操作,该控制台提示输入我将公钥导入到系统的 MOK 列表时创建的新密码。这些步骤最终促使我再次重新启动计算机,我这样做了。

瞧!我现在可以在 VMware 上运行我的 Kali 虚拟机了。

相关内容