我正在尝试启用安全启动,这样在通过双启动在 Windows 和 Linux 之间切换时就可以忘记它。但是,grubs 较新版本不允许在启动后插入 mod,因此我需要能够找到 Linux 启动后 grub 使用的模块,以便我可以将它们添加到 grub 编译命令中。我该怎么做?启动 Linux 后我可以返回 grub 命令行运行吗lsmod
?
答案1
安全启动不会阻止启动后加载模块。但是,如果内核注意到它是在启用安全启动的情况下启动的,它可能会坚持要求内核模块通过安全启动测试(即,它们必须经过签名)。
说得更严谨些,grub 没有“编译命令”。但是,当更新驱动程序和内核时,通常会构建一个 initrd,然后将其添加到 grub 配置中。initrd 包含(除其他内容外)必须在启动时加载的驱动程序(通常是需要提前初始化的视频驱动程序和磁盘驱动程序,没有这些驱动程序,启动就无法继续)。
如果您的内核模块随内核一起提供,并且来自主流 Linux 发行版之一,则它们应该已经签名,并且应该可以与安全启动配合使用。如果您使用的是第三方驱动程序,尤其是使用 DKMS 自动构建的驱动程序,则可以创建 MOK(机器所有者密钥),将其注册到您的 BIOS 中,并使用它对驱动程序进行签名,以便可以加载。
请注意,如果驱动程序未签名,则无法将其添加到 initrd 并使用 grub 加载。因此,“返回 grub”使用 lmod 不仅不可能,而且毫无用处,无法满足您的需要。相反,请考虑创建和注册 MOK 并使用它为您的内核驱动程序签名。