首页 > 解决方案 > 启动时为什么我的 USB 密钥被识别为软盘

问题描述

我写了一个小程序集引导加载程序,只是使用 BIOS 中断在屏幕上打印 Hello。我将二进制文件写入 USB 密钥。

当我启动时,系统将我的 USB 识别为软盘。

这是为什么?通常,当我在密钥上安装操作系统时,它不会将其识别为软盘。第一个扇区中是否有某种标志告诉 BIOS 它是 USB 密钥?

标签: assemblybinaryusbbootloaderbios

解决方案


@Peter Cordes 是对的。分区表的存在与否向 BIOS 指示介质是否为 USB 驱动器。

如果没有分区表(即使是未使用的分区表),BIOS 会将密钥识别为软盘。

在此处输入图像描述

当我使用 fdisk 对 USB 密钥进行分区时,我发现了这一点。

这是因为我在启动代码后将 MBR 上的所有内容都替换为 0,因此 BIOS 将密钥识别为软盘(因为我覆盖了分区表)。

在图片中,您可以看到我对 USB 密钥进行分区之前和之后的密钥字节。现在我的 BIOS 将密钥识别为 USB 密钥。


推荐阅读