事实上,大多数主板厂商(包括英特尔)都建议不要升级BIOS,除非有特定的问题,可以升级到特定的BIOS来解决。大多数系统管理员也同意“如果没有损坏,不要尝试修复它”。升级BIOS只是为了达到最新的状态,但也可能造成一些以前不存在的问题。

linuxbios系统原理(一个老程序员升级旧Linux电脑BIOS的心路历程)(1)

对于Windows用户而言,这一切似乎是简单的。Windows应用程序可以在Windows运行时在计算机上安装BIOS升级,但这显然不是广大Linux程序员的选择。

目标

最近,当我决定升级我的两个较旧的Linux系统时,这一切都开始了......

我已经运行BOINC很多年了,参与过各种分布式计算环境,并且几乎完全将这两台计算机用作计算平台。我决定要为这些任务提供更好的计算能力,并且相比于再买一台电脑而言,我更倾向于更新一些旧的计算机。毕竟,这些电脑曾经都很完美,并可能具有一些未开发的功能。

使用dmidecode命令查找BIOS信息

上面显示的dmidecode命令的输出显示了BEH6110H.86A.0048.2012.1105.1520的BIOS版本。此信息来自于升级BIOS的主机之一。

我们可以通过假设点是字段分隔符来解码此版本号中的大多数字段。 第一个字段是电路板型号,第二个字段可能是工程版本级别。第三个字段,0048是实际的BIOS版本级别,是Intel网页中出现的内容; 字段四是年份,字段五是以发布BIOS的MMDD格式的月份和日期。 我不知道最后一个字段是什么,但我认为这可能是一个24小时格式的时间,以便最后三个字段代表编译BIOS的日期和时间。

原始的BIOS是23版,根据英特尔网站,最新版本是120。请注意,并不是中间所有BIOS的版本号都公开发布。我下载了最新版本,并尝试在引导时使用F7选项来升级BIOS。这意味着,启动时的初始BIOS显示包括一个F7选项,F2进入BIOS配置,F10进入引导选项菜单。我按F7并选择了我放在FAT格式化U盘上的BIOS文件,但还是失败了。

首先,我的BIOS版本在启动时并不支持F7,尽管该选项确实出现在BIOS屏幕上。 第二,不是所有BIOS版本都可以直接安装,有必要按顺序安装多个BIOS修订版本。如果有一个DOS副本,可以使用一个英特尔的其他程序来更新BIOS,iFlash.exe。为了在不花钱的情况下克服这个问题,我执行了一个无效的搜索,发现我没有DOS副本。

FreeDOS

在这之后,我访问了FreeDOS网站,FreeDOS是开放原始代码的软件,并根据GPL授权。

通过大量的谷歌搜索,我发现可以通过创建可引导的FreeDOS U盘来实现升级,将* .BIO文件复制到USB设备。

linuxbios系统原理(一个老程序员升级旧Linux电脑BIOS的心路历程)(2)

更新

在创建了FreeDOS可启动U盘后,我将BIOS文件复制到U盘,使用启动菜单从USB设备启动,并按照英特尔网站上的说明运行iflash.exe程序。您真正需要从该页面知道的是使用commandIFLASH2.EXE / PF XXX.BIO,其中XXX是BIOS文件的名称。

在开始实际升级之前,先花费几分钟重新启动一下。然后开始升级,我安装了新的CPU并重新启动。BIOS rev 48也是使用F7选项启用进一步BIOS升级所需的版本。即使还有几个较新的版本可用,但我没有进一步升级。英特尔网站以及大多数系统管理员都建议只有绝对必要时才升级BIOS。 英特尔还建议仅升级到解决现存问题所需的最低版本。

最终的想法

我的Chrome浏览器自动将* .BIO文件重命名为* .BIN,我不知道为什么。一定要确保把它们重命名为* .BIO,否则iflash程序不会识别它们。建议广大程序员提前研究任何要用于升级系统的硬件的兼容性,确保足够了解黑客入侵硬件时可能遇到的问题。如果遇到问题,可以先尝试网络搜索,或许可以得到一个解决办法。

最后,当我发现可以通过开源项目解决升级问题时,真的很兴奋,我认为这是一次不错的尝试,你觉得呢?

,