![当 UEFI/(主板固件)设置为 UEFI(非旧版)时,无法检测到 USB](https://linux22.com/image/1475484/%E5%BD%93%20UEFI%2F%EF%BC%88%E4%B8%BB%E6%9D%BF%E5%9B%BA%E4%BB%B6%EF%BC%89%E8%AE%BE%E7%BD%AE%E4%B8%BA%20UEFI%EF%BC%88%E9%9D%9E%E6%97%A7%E7%89%88%EF%BC%89%E6%97%B6%EF%BC%8C%E6%97%A0%E6%B3%95%E6%A3%80%E6%B5%8B%E5%88%B0%20USB.png)
当 UEFI/(主板固件)设置为 UEFI(非旧版)时,无法检测到 USB
当设置为旧版时,它会被检测到。
不用说,当 UEFI 处于 UEFI 模式时,我无法从它启动。甚至检测不到 USB。
这里有一些照片。
硬盘现在没有分区(因为我用分区向导删除了它们),但它确实有 Windows 8。
注意-这与这个问题不同 Windows 转 USB 3.0 启动问题因为我的 USB 3.0 和 USB 2.0 端口都无法使用。任何 USB 端口都无法使用。而那个被接受的答案表明另一个端口可以工作。不过,正如我评论的那样,我注意到我的 USB 2.0 棒在任何端口都可以工作,甚至在我的 USB 3 端口中也可以。所以我遇到的问题是 USB 3 棒。但我遇到的问题是,除了仅使用 USB 2 棒之外。我如何获得 USB 3 支持,有可能吗?
进一步补充说明 - 我尝试过的 USB2 棒上有最新的 Macrium 反射。我刚刚尝试了带有 Windows 10 ISO 的 USB 3 棒(使用 rufus 制作,GPT、FAT32),它在 UEFI 下被检测到。相同型号的棒在包装中,在 UEFI 下检测不到。当我使用该 USB 3 棒制作 Windows 7 ISO 时,在 rufus 中即使使用 GPT、FAT32,也无法在 UEFI 中检测到它,所以也许它必须是 Win10.. 或最新的 macrium 反射,因为 UEFI 才能被 USB 支持甚至被检测到。此外,为了查看何时检测到它,我认为没有必要从 UEFI 设置切换到 UEFI,而不是将 UEFI 设置为传统,以查看 USB 是否已被 UEFI 检测到,因为无论哪种方式它都会列在 EFI 下。如果设置了传统,它也会在那里列出。
并更新了注释 似乎只要格式化为 GPT、FAT32 并且上面有 EFI 文件夹,它就可以工作。BIOS 需要的文件是\efi\boot\bootx64.efi
文件名可能仅建议 64 位。如果您告诉 rufus 制作一个 usb GPT、FAT32,那么它还没有该文件,但如果您下载该文件或从 win7 64 位复制它,那么它就会工作。所以这是一种快速测试和缩小范围的方法……对于 win7 32 位,rufus 似乎默认为 ntfs,并且不允许选择“带 UEFI 的 GPT”。此外,虽然 ISO 是一个文件系统,但我认为在写入 USB 时它不是,因为 USB 上的文件系统例如是 FAT32 和 NTFS。
win7 32位确实有一个EFI文件夹。所以我猜rufus说它不是一个EFI映像是错的
所以也许 win7 下载工具就是为此而准备的。或者,只需使用 rufus 格式化并复制文件即可。虽然我的笔记本电脑是 64 位的。所以测试 32 位 ISO 可能毫无用处。/毫无意义。
https://technet.microsoft.com/en-au/library/hh824898.aspx “在 UEFI 模式下,Windows 版本必须与 PC 架构相匹配。64 位 UEFI PC 只能启动 64 位版本的 Windows。32 位 PC 只能启动 32 位版本的 Windows。在某些情况下,在旧版 BIOS 模式下,您可能能够在 64 位 PC 上运行 32 位 Windows,前提是制造商支持 PC 上的 32 位旧版 BIOS 模式。适用于:Windows 8、Windows 8.1、Windows Server 2012、Windows Server 2012 R2”
虽然我的问题不是 Windows 有多少位,而是检测,但为了避免进一步的问题,我认为在 64 位笔记本电脑上使用 64 位 Windows 是值得的
答案1
事实证明……首先,UEFI 处于哪种模式对于检测来说并不重要。因此,在 EFI 下检测到的 USB 将显示在 EFI 下,如果选择了 Legacy,则在重新启动时,USB 将同时显示在 EFI 和 Legacy 下。
但要想在 EFI 下列出,USB 必须针对 EFI 进行适当的设置。
问题是如何设置 USB 以使其显示在 EFI 下(然后您有机会在它不处于传统模式时启动它,即当 UEFI 处于 UEFI 模式时)。以下是如何使 USB 棒显示在 EFI 下的答案。
Rufus 提供了多种选择
注意 - MBR 和 GPT 的总称是“分区格式”。
可能所有 3 个选项都可以工作,只要它们有 UEFI。它们对我来说都有效。这些说明http://www.eightforums.com/tutorials/15458-uefi-bootable-usb-flash-drive-create-windows.html 说你应该选择“GPT with UEFI”
对于文件系统.. 显然 UEFI 需要支持 FAT32,而不一定支持 NTFS。因此,这里最好的选择是 FAT32
不过,还有一件事是必需的。特定文件夹中的“引导加载程序文件”,通常是 \efi\boot\
Debian 的这个页面提到了这些文件的名称。但它仍然与 Windows 相关,因为例如,Windows 7 64 位使用 \EFI\boot\bootx64.efi 的路径和文件名
amd64 \EFI\boot\bootx64.efi
i386 \EFI\boot\bootia32.efi
arm64 \EFI\boot\bootaa64.efi
我发现在 64 位笔记本电脑上进行测试。如果我的 USB 上有 bootia32.efi 文件,那么它将无法被检测到(可能是因为笔记本电脑是 64 位的),但使用 bootx64.efi 文件,即使文件中有垃圾并且它不是一个合适的引导加载程序,它也可以检测到。当然,毫无疑问它不会正常启动或无法启动。但我的观点是,要被检测到,您需要该文件。检测是启动的先决条件。如果它是正确的文件,那么它也会启动。当我发现我不必将整个 Windows ISO 刻录到 USB 上来测试这个/那个时,我可以更快地解决问题。
我看过的 win7 32 位 ISO 有 EFI 文件夹 win7 64 位 ISO 也有一个 EFI 文件夹。我不确定默认值,但看起来 USB 可能不是 EFI,它有一个 EFI 目录但没有 EFI\boot,所以不是 bootx64.efi,而且我笔记本电脑上的 UEFI 主板固件也没有将它视为 EFI,所以不仅仅是 Rufus 将它视为非 EFI,而且我笔记本电脑上的 UEFI 也没有将 Win7(即使是 64 位)视为 EFI。
虽然 \efi\boot 中的文件名与操作系统无关,但文件的内容很可能与操作系统有关。例如,此链接 http://www.nextofwindows.com/how-to-make-uefi-bootable-usb-flash-drive-to-install-windows-8 提供文件下载,并表示“如果您准备安装 64 位版本。您需要将源文件夹中 install.wim 文件中的 bootmgfw.efi 文件复制到 USB 闪存驱动器上的 efi\boot 文件夹中,并将其重命名为 bootx64.efi...[或]...您可以直接下载此文件(http://www.nextofwindows.com/download/bootx64.efi) 并复制到你的 efi\boot 文件夹。" 并且可能还有一些支持文件以实现正确启动。
所以你应该检查
分区格式
文件系统
EFI 文件夹与相关文件共存(这些也将存在于任何旨在从设置为 UEFI 的 UEFI 启动的 OS ISO 中 - 而不是设计为从 BIOS 启动的 OS 或设置为旧版的 UEFI)
EFI 文件夹是必需的。但除非您正在试验或知道自己在做什么,否则不要手动写入文件夹。它将与 OS ISO 一起。
显然 Win7 在 USB3 方面存在一些问题,尽管这不是这里的问题。这会导致其他症状。
也可以使用 Windows 10“媒体创建工具”而不是 rufus 来制作 Windows 10,尽管我发现 rufus 还可以。Macrium 反射启动的原因是,当前版本基于 WinPE 10 64 位,即适用于 Windows 10 的 WinPE。Windows 10 64 位具有 EFI 文件夹。(我无法评论 Windows 10 32 位)当 Macrium 程序制作 USB 时,它必须为其提供支持 UEFI 的分区格式,例如 GPT 或支持 UEFI 的 MBR 形式,并且 USB 将具有 EFI 文件夹。
添加
UEFI 有两种模式。一种是传统 BIOS 模式,称为 CSM(其中模拟 BIOS)。还有一种完整模式(即传统/csm 被禁用)。许多旧版 UEFI(例如 2000-2010 年)没有完整模式,因此没有提到任何传统/csm 模式,而是传统/csm 模式。
如果您启动的操作系统或其他东西(例如 Windows PE 环境),那么截至撰写本文时,如果您使用 UEFI 模式制作 USB,则分区样式必须是 GPT。由于 Windows 系统不支持/仍然不支持带 UEFI 的 MBR。因此在 Windows 上只有两个相关选项。带 UEFI 的 GPT,或带 UEFI-CSM/BIOS 的 MBR。
我使用了一个 UEFI,当从 USB 启动时,如果将 USB 设置为 UEFI(而不是 CSM),则在 UEFI 的“启动设备选项”中,您实际上可以将 UEFI 指向 .efi 文件,以便它可以从该文件启动。或者它可以尝试自动找到它,但如果找不到它,它会说“未找到映像”或您需要为 UEFI-CSM 制作 USB,然后就不需要 EFI 映像甚至 EFI 目录了。
您可以在 USB 上尝试使用“Hirens 启动 CD”,它有一个 WinPE 版本和一个图形化程度较低的 15.2 版本。Macrium Reflect 有一个用于传统启动媒体或 UEFI 启动媒体的选项。虽然 macrium 可能不会这样称呼它,但它可能会将其称为早期 winpe 和后期 winpe。
答案2
如果将 BIOS 设置从传统设置为 UEFI 会改变结果,那么这(几乎)肯定不是驱动程序问题。
NTFS / FAT / HFS 等文件系统处于比您目前需要排除故障的更高级别。
如果主板固件设置为 UEFI 而不是传统模式时未检测到任何启动盘(无论是否 USB),则这是分区表问题。请注意,我说的是分区表,而不是分区。
分区表包含分区,您完全有可能删除了 USB 设备上的所有分区,从而留下一个实际上为空的分区表。但是,分区表仍会存在,如果它是 MBR(主引导记录)分区表,则需要将其替换为 GPT(GUID 分区表)分区表。
MBR 分区表是一种传统格式的分区表,除非固件启用了传统支持,否则您的计算机将看不到它。
传统的操作系统需要传统的分区表格式,但您提到的 Windows 8 具有完整的 UEFI / GPT 支持,所以这应该不是问题。
更多信息:
通用服务协议(GPT):https://en.wikipedia.org/wiki/GUID_Partition_Table
主引导记录(MBR):https://en.wikipedia.org/wiki/Master_boot_record
使用 Microsoft 的方法将 MBR 磁盘转换为 GPT:
https://technet.microsoft.com/en-gb/library/dn336946.aspx
MS 页面中的一些术语使用在技术上是不正确的(尽管非常常见),但如果这是您的背景,这可能会有所帮助。如有需要,请随时使用评论询问详细信息
barlop 添加的注释
ms 链接有一些很好的修正,david 在评论中发布了修正,不幸的是,版主删除了它们,而不是将它们移到聊天链接中。我会在这里列出我记得的 David 说过的话。
MS 链接使用术语“分区样式”,正确的术语是分区格式。
MS 链接指出 MBR 有 4TB 的限制,这是不正确的,因为有一种方法可以通过 MBR 超越这个限制。也许 David 可以重新编辑一些细节,但我看到这里有一些讨论https://serverfault.com/questions/590524/why-are-there-only-four-primary-partitions-on-an-mbr-disk MS 链接还说很难超过 4 个分区,这是不正确的。您可以有多个逻辑分区(正如另一个 Ms 链接明确指出的那样,众所周知)。正如该 serverfault 链接所述,MBR 限制为 4 个主分区。
他可能还提到了其他事情,但我不记得了。