如何创建可启动的 USB 盘来刷新 BIOS

如何创建可启动的 USB 盘来刷新 BIOS

我想使用iflash2.exe英特尔提供的名为 的程序升级英特尔主板上的 BIOS,该程序只能在 MS-DOS 上运行。

我没有 Windows 操作系统,我正在尝试创建一个包含 MS-DOS、iflash2.exe和相关文件的可启动 USB 记忆棒。

我尝试了一个名为 UNetbootin 的程序,它使用 FreeDOS 创建了一个可启动的 USB,但我不知道如何以及在哪里添加iflash2.exe相关文件。

你能告诉我怎样做吗?

答案1

我使用以下技术刷新了 HP N54L ProLiant MicroServer 上的 BIOS。我认为它也适用于其他系统,只需在从 USB 启动后运行 MS-DOS 命令即可。

如果出现问题,我不承担任何责任。如果您不理解这些说明的作用,那么您可能不应该尝试。

以下假设您有一组文件或一个存档文件,其中包含新 ROM 以及应用它的脚本或可执行文件。BIOS 可能附带一个可执行文件,用于从头开始创建 USB;如果您已经走到这一步,您可能已经尝试运行它但失败了。您需要找到的是 ROM 文件和脚本或可执行文件。在我的情况下,调用了 ROM 文件,O41072911.ROM调用了脚本FLASH.BAT

创建可启动的 USB 记忆棒

首先,你需要一个以最基本的方式格式化的 USB 盘。这将删除 USB 盘上的所有数据,因此请先备份所有重要数据!

  1. 插入你的 USB 记忆棒。

  2. 选择格式...启动器菜单中的选项:

    格式菜单截图

  3. 选择兼容所有系统 (FAT)作为类型,为其指定一个合理的名称,然后单击格式

    文件系统选项屏幕截图

然后您需要使用 UNetbootin 让 USB 启动到 DOS 提示符:

  1. 使用软件中心或从命令行安装 UNetbootin sudo apt-get install unetbootin
  2. 运行 UNetbootin。选择自由DOS作为分布并确保类型为USB驱动器并选择正确的驱动器。然后单击好的

    UNetbootin 选项截图

  3. 当 UNetbootin 完成后,点击出口

现在您有一个可以启动 DOS 的 USB 记忆棒。

添加您的 BIOS 文件

现在您需要将 BIOS 文件放入 USB 记忆棒中。一般来说,您只需将文件复制并粘贴到卷上即可。

如果它们是自解压.exe文件,则需要运行它才能提取文件。为此,您需要:

  1. 使用软件中心或从命令行安装 Wine sudo apt-get install wine

  2. 找到.exe包含 BIOS 文件的文件,右键单击它并使用 Wine 运行:

    使用 Wine 打开截图

  3. 接下来发生的具体细节取决于您的 BIOS 文件,但请将文件提取到您可以记住的目录中。

提取文件后,将其复制到 USB 记忆棒上。它们可以放在卷的根目录中。

查看文件;可能有一个文件包含新 ROM 本身,以及用于应用它的文件。如果有文件.bat,请查看它并记下它运行了什么命令来更新 ROM。.exeAUTOEXEC.BAT

闪光

现在您已准备好刷新 BIOS。

  1. 从创建 USB 存储设备的计算机上弹出 USB 存储设备。

  2. 将其插入您想要刷新的计算机并重新启动。

  3. 从 USB 启动。您可能需要在 BIOS 中调整启动顺序才能实现此目的。

  4. 你应该看到蓝色的 FreeDOS 引导加载程序出现默认突出显示。请等待 10 秒钟或按Enter

  5. 在 FreeDOS 菜单上,选择第二个选项FreeDOS 安全模式(不加载任何驱动程序)

在此处输入图片描述

  1. 您将看到A:/>提示符。输入C:然后Enter切换到 C 盘。

  2. 输入dirEnter你就会看到你复制到 USB 记忆棒上的所有文件。

  3. 运行您之前确定的脚本或可执行文件以应用 BIOS 更新。就我而言,我只需键入FLASH即可Enter运行该FLASH.BAT文件。

  4. 您应该会看到刷新脚本正在应用您的 BIOS 更新。不要关闭电源或中断此过程;请等待,直到它完成。它应该会返回到提示符C:\>

  5. 然后,您可以移除 USB 记忆棒并关闭计算机电源。

  6. 祈祷能使用新 BIOS 启动。或者,如果您的计算机坏了,那就哭吧。

答案2

我花了一上午的时间,想办法刷新 Zotac 主板上的 BIOS。Unetbootin 创建了可以启动的 MS-DOS 映像,但它们无法在我的 USB 拇指驱动器上找到刷新文件(在我的情况下是 awdflash 和 N0422_ZA.bin)。

最终奏效的是创建一个终极启动 CD 并从该 CD 启动 FREEDOS(不是 MS-DOS)。然后是装有我闪存文件的 USB 拇指驱动器曾是可见,并且 BIOS 更新工作正常。

答案3

您应该做的第一件事是检查您的闪存驱动器上是否有分区表。(即/dev/sdX1,不在/dev/sdX您的输出中mount

这实际上是一件大事,因为有些平台需要这个,而有些平台则不需要……以至于我曾经遇到过一个脚本来创建一个“通用 UDF 格式的 USB 棒”,它必须做一些技巧才能使该棒同时保持原始状态和分区状态,因为 Windows UDF 驱动程序想要一种方式,而 macOS UDF 驱动程序想要另一种方式。

我有一台旧的瘦客户端,我将一个更大的模块磁盘插入其中,并将其重新用作复古电脑,有时需要恢复驱动器映像,当我弄乱了东西时,它确实显示了 BIOS 对此的特殊性。

它并不关心是从基于 PXELINUX 的“用于基于 BIOS 的 PC 的 Apple Internet Restore”网络启动菜单中启动 UNetbootin 提供的 FreeDOS 还是其中一个磁盘映像(例如“PowerQuest Drive Image 2.0 启动盘”)。BIOS 的 USB 存储设备支持并不关心所暴露的 USB 设备是否是启动映像的来源。如果它能正常工作,那就没什么区别了。

DOS 引导环境注意 USB 驱动器是否使用其可以理解的文件系统进行格式化(例如,除非启动盘理解 FAT32 的-F16选项mkfs.vfat),并且它确实要求 USB 驱动器上有一个 MS-DOS(而不是 GPT)分区表。(我可以确认 UNetbootin 安装的 FreeDOS 也会遇到这个问题,我认为这是一个通用的“如果它不是软盘,则需要分区表”规则。)

如果这两者都不满足,那么 USB 设备的内容将不会出现在D:

我不知道 GNOME 的 libparted 前端是什么样子的,但是在 Kubuntu 上,最简单的解决方案是启动“KDE 分区管理器”,选择闪存驱动器,选择“设备 > 新建分区表”,选择 MS-DOS 并单击确定,然后右键单击该unallocated空间,选择“新建”,将“文件系统”设置为fat16,单击确定,然后单击“应用所有待处理操作”复选标记。

这应该可以消除按照其他答案创建可启动 USB 棒的最大变量,其中启动映像可以看到该棒的内容。

(我可以确认,当 UNetbootin 安装 FreeDOS 时,它会默默接受缺少分区表的情况,相信你知道自己在做什么。)

如果您的 BIOS 由于某种原因需要另一种方式,那么擦除分区表并直接格式化设备的最简单解决方案可能是这样的,/dev/sdX您在输出中看到的设备节点在哪里mount

sudo sh -c 'umount /dev/sdX && mkfs.vfat -F16 -I /dev/sdX && eject /dev/sdX'

相关内容