鲁弗斯开发在这里。这是一个很难解决的问题,但我现在可以为您提供有关该问题的完整答案。它可能有点充满了首字母缩略词和术语,但那是因为我真的不想提供一个如此简单的解释,以至于变得毫无意义。
/efi/boot/
使用一个循环,在其中对缓冲区大小为零的目录发出读取调用,并期望(对于兼容的驱动程序来说应该是这种情况)驱动程序会告诉它:提供的缓冲区太小,同时还返回所需的实际大小。然后它重新进入循环,并使用它期望的更新后的缓冲区大小。然而,虽然驱动程序确实返回一个代码来告诉Shim它请求的缓冲区太小,但它不会更新所需的大小,这意味着Shim不断发出零大小的请求,并且驱动程序永远返回“缓冲区太小” ...显然,我们将在下一版本的 Rufus 中修复有问题的驱动程序,以确保它在列出目录时返回实际所需的大小,正如Shim(正确地)期望的那样。然而与此同时,甚至在我们发现这个问题之前,开发Shim的人 最近也发现一些 UEFI 固件(特别是来自 Dell),并且不使用我们的 NTFS 驱动程序,也无法满足目录列表合规性并遇到问题这个无限循环的问题。因此他们还独立应用了修复程序以避免无限循环。然而,他们的修复是在二月初添加的,而 Ubuntu 用于Shim 的二进制文件是在一月份生成的,因此它没有进入当前的 Ubuntu Studio。话又说回来,如果 Ubuntu Studio 一直使用更新的Shim代码,OP 很可能永远不会遇到启动冻结问题,而且我们也不会发现 Rufus 的 NTFS 驱动程序不是 100% UEFI 兼容。
所有这些意味着,最终,您应该有 4 个选择:
归档时间: |
|
查看次数: |
511 次 |
最近记录: |