专利名称:一种修改bios启动项顺序的方法
技术领域:
本发明属于计算机BIOS技术领域,涉及一种修改BIOS启动项顺序的方法。
背景技术:
在基本的服务器系统中,都会有多种不同的可引导设备,例如常用的CD/DVD光驱、软驱、硬盘、可引导USB设备等。所有的可引导设备在BIOS中都会有一个默认的引导顺序,例如第一启动项为CD/DVD光驱、第二启动项为软驱、第三启动项为硬盘。在默认情况下,BIOS会按照这个启动项顺序逐个去试图引导进OS,如果第一个启动项引导失败,则会自动尝试下一个,直到所有的可引导设备都被尝试过。在使用服务器的过程中,有时会为了某种需要去改动BIOS默认的启动顺序。目前比较常见的做法有两种一种是管理人员到机房实地去操作服务器,进入BIOS Setup界面下去修改BIOS启动项顺序,然而该种方法操作起来极其不方便,需要管理人员到机房实地操作;另一种是通过BMC内置的远程监控例如KVM来远程控制服务器进入BIOS Setup界面,修改启动项顺序,而该种方法需要登陆服务器BMC客户端,实现起来不方便。故,针对上述现有技术存在的缺陷,实有必要进行研究,以提供一种方法,可以实现远程修改,且实现时间短,无需登录服务器BMC客户端,无需立即让服务器重启。
发明内容
为解决上述问题,本发明的目的在于提供一种修改BIOS启动项顺序的方法。为实现上述目的,本发明的技术方案为
一种修改BIOS启动项顺序的方法,包括如下步骤
通过IPMI的获得系统引导选项命令(Get System Boot Options Command)向BMC获取是否需要修改BIOS启动项,以及应该修改成何种启动项顺序的数据;
编写代码修改BIOS启动项优先级顺序;
通过IPMI工具向目标系统下设置系统引导选项命令(Set System Boot OptionsCommand),并填好相应的参数。进一步地,在被控制端的BIOS code里面加入已经编写好的修改BIOS启动项优先级顺序的代码。进一步地,把BIOS文件刷写到被控制端的BIOS芯片里。进一步地,控制端在OS下使用Ipmitool工具,向被控制端下达设置系统引导选项命令,并加入相对应的参数。本发明只需在BIOS代码中添加少量的逻辑代码即可实现,且可在远程控制端直接更改Boot选项,而不需要通过登录服务器BMC控制端进行较多步骤的设置,也无需立即让服务器重启,通过IPMI工具直接更改服务器Boot选项后,不会影响服务器系统的正常运行,只有在服务器下一次重新启动的时候才生效。
图1是本发明的方法流程图示。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。BIOS启动项是可以引导进入OS的多个设备组成的一组有先后顺序的可引导设备选项,BIOS在POST过程中创建和维护这个可引导设备的顺序表,在BIOS中称作BootOption。Boot Option是一个指针数组,每个数组项都指向一个可引导设备,BIOS在寻找可引导设备时就是在Boot Option这个数组去依序查找。智能平台管理界面IPMI (Intelligent Platform Management Interface)提供了两个有用的命令可以用来设置和获取BMC芯片里面有关引导启动项的设定,即设置系统引导选项命令(Set System Boot Options Command)和获得系统引导选项命令(Get SystemBoot Options Command),本发明即为通过利用IPMI这两个命令和BIOS里面Boot Option这个指针数组修改BIOS启动项顺序。请参照图1所示,本发明一种修改BIOS启动项顺序的方法,首先,在BIOS POST过程结束前通过IPMI命令“Get System Boot Options Command”向BMC获取是否需要修改BIOS启动项,以及应该修改成何种启动项顺序的数据。在得到这些数据后便可根据得到的数据要求,编写代码修改BIOS启动项优先级顺序。在系统BIOS已经包含以上功能代码的服务器上,当需要目标系统在下一次启动时改变BIOS启动项顺序时,例如需要强制系统从HDD (硬盘)引导时,只需要通过IPMI工具向目标系统下“Set System BootOptions Command”命令,并填好相应的参数即可,本实施例在远端Linux系统下,需要在终端(Terminal)系统下命令ipmitool -H $IP -U $USER -P $PASSWD raw $C0MMAND,其中,$IP为远端BMC管理端口 IP地址;$USER为远端BMC管理端口账号名称;$PASSWD为远端BMC管理端口账号密码;$C0MMAND为具体向远端BMC芯片下的命令。在系统下一次重新启动时,所述已经编写好的修改BIOS启动项优先级顺序的代码便会发挥作用,实现BIOS启动项顺序的修改,把HDD (硬盘)设备设置成第一启动项。具体实现时,首先被控制端的BIOS code里面需要加入已经编写好的修改BIOS启动项优先级顺序的代码。并把此BIOS文件刷写到被控制端的BIOS芯片里。(一般在BIOS的开发阶段即加入此功能代码,客户在使用服务器时不需要做此动作。控制端在OS (DOS或Linux 或Windows)下使用 Ipmitool 工具,向被控制端下达“Set System Boot OptionsCo_and”的命令,并加入相对应的参数即可。例如把第一启动项设为PXE boot。被控制端系统则会在下次重新启动时首先进入PXE Boot选项。本发明只需在BIOS代码中添加少量的逻辑代码,便可实现该功能;Ipmi工具是Intel公开的IPMI规范实现软件,具有DOS、Windows、Linux多个版本,无需重新开发。且无需登录服务器BMC客户端,Ipmi工具可以通过网络向指定的IP地址下达命令,这样便可以在远程控制端直接更改Boot选项,而不需要通过登录服务器BMC控制端进行较多步骤的设置。也无需立即让服务器重启,通过IPMI工具直接更改服务器Boot选项后,不会影响服务器系统的正常运行,只有在服务器下一次重新启动的时候才生效。满足了部分客户不希望立即停止服务器运行的要求。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种修改BIOS启动项顺序的方法,其特征在于,包括如下步骤 通过IPMI的获得系统引导选项命令(Get System Boot Options Command)向BMC获取是否需要修改BIOS启动项,以及应该修改成何种启动项顺序的数据; 编写代码修改BIOS启动项优先级顺序; 通过IPMI工具向目标系统下设置系统引导选项命令(Set System Boot OptionsCommand),并填好相应的参数。
2.如权利要求1所述修改BIOS启动项顺序的方法,其特征在于,还包括在被控制端的BIOS code里面加入已经编写好的修改BIOS启动项优先级顺序的代码。
3.如权利要求2所述修改BIOS启动项顺序的方法,其特征在于,还包括把BIOS文件刷写到被控制端的BIOS芯片里。
4.如权利要求3所述修改BIOS启动项顺序的方法,其特征在于,还包括控制端在OS下使用Ipmitool工具,向被控制端下达设置系统引导选项命令,并加入相对应的参数。
全文摘要
本发明公开了一种修改BIOS启动项顺序的方法,包括如下步骤通过IPMI的获得系统引导选项命令向BMC获取是否需要修改BIOS启动项,以及应该修改成何种启动项顺序的数据;编写代码修改BIOS启动项优先级顺序;通过IPMI工具向目标系统下设置系统引导选项命令并填好相应的参数。本发明只需在BIOS代码中添加少量的逻辑代码即可实现,且可在远程控制端直接更改Boot选项,也无需立即让服务器重启,通过IPMI工具直接更改服务器Boot选项后,不会影响服务器系统的正常运行,只有在服务器下一次重新启动的时候才生效。
文档编号G06F9/445GK102999362SQ20121051129
公开日2013年3月27日 申请日期2012年12月4日 优先权日2012年12月4日
发明者刘冰, 刘宝阳 申请人:浪潮电子信息产业股份有限公司