本发明涉及计算机系统的技术领域,特别涉及一种防止板载网卡MAC地址被修改的方法及系统。
背景技术:
在当前的计算机市场,部分网卡芯片既有的设计架构不存在独立的EEPROM,而将网卡的MAC地址模块包在BIOS当中,因此,一旦更新BIOS时,就会对原来MAC地址造成破坏,而在官网下载里的升级BIOS里通常是没有MAC地址模块,在使用AFUDOS更新软件时,附加的/pbnc参数对主板BIOS中的MAC地址模块造成了破坏;上述对MAC地址的破坏是不可逆的,即使后续再次更新BIOS,MAC地址仍然无法修复,如此便会导致出现插网线获取IP地址困难,数据有发送无接收,Ping不通网关的问题,最终造成用户无法上网。
在现有技术中,通常的做法是在升级BIOS之前将MAC地址记下,然后在DOS环境下升级BIOS,升级完毕之后重新进入BIOS,将此前记下的MAC地址写回到BIOS。这种方法靠纯人工手动修改升级后的BIOS的MAC地址,比较繁琐,对于没有计算机基础的人复杂系数相对较高,当在升级BIOS之前未记下原MAC地址极其容易造成MAC地址破坏的严重后果。
综上,在DOS环境下升级BIOS自动化防止板载网卡MAC地址被修改的方案尤为重要,而现有技术中、尤其是在计算机系统领域中缺乏一种自动化防止板载网卡MAC地址被修改的技术。
技术实现要素:
本发明提出了一种防止板载网卡MAC地址被修改的方法及系统,能够自动完成刷新/升级BIOS时板载网卡MAC地址的提取和写回,有效避免因BIOS刷新/升级造成MAC地址被改写而无法使用网络的问题。
本发明采用如下技术方案:
一方面,本发明提供一种防止板载网卡MAC地址被修改的方法,应用于在DOS环境下升级BIOS,包括:
步骤A,制作一个DOS启动U盘,将工具和BIOS刷新脚本拷贝到所述DOS启动U盘中;
步骤B,将所述DOS启动U盘连接至待烧写的终端设备,并开机选择从所述DOS启动U盘启动;所述DOS启动U盘启动后进入执行BIOS刷新脚本;
步骤C,所述BIOS刷新脚本自动从所述板载网卡中读取NIC 1和NIC 2的MAC地址并暂存起来,所述BIOS刷新脚本自动烧写BIOS,烧写完成后提示AC off并断电;
步骤D,重启所述终端设备,重新上电选择从所述DOS启动U盘启动;
步骤E,所述DOS启动U盘启动后再次执行所述BIOS刷新脚本,重新将所述暂存的NIC 1和NIC 2的MAC地址写回所述板载网卡;
步骤F,刷新完成后断电再重启所述终端设备使得MAC地址生效。
其中,所述断电与正常刷新BIOS断电方式相同。
其中,所述读取NIC 1和NIC 2的MAC地址以及写回MAC地址的工具为eeupdate工具。
其中,所述BIOS刷新脚本中使用afudos工具刷新BIOS,刷新BIOS的操作如下:@echo off afudos.exe xxx.bin/P/B/N/X/K/ME,所述xxx.bin为BIOS文件名,/P参数为刷主BIOS,/B参数为刷启动块,/N参数为刷NVRAM,/X参数为不检验ROM ID,/K参数为刷所有非重要的块和ROM孔洞,/ME参数为刷ME整个固件块。
所述BIOS刷新脚本为:
@echo off
if exist fls_bios.flg goto flashmac
cls
echo***********************************************
echo Warning:This script is for JiNan flashing BIOS.
echo Are you sure are going to do this?
echo***********************************************
choice.com
if errorlevel 2 echo Canceled.
if errorlevel 2 goto END
:readmac
cls
echo**********************************
echo Read MAC from System
echo**********************************
if exist temp.dat del temp.dat
if exist mac0.bat del mac0.bat
if exist mac1.bat del mac1.bat
eeupdate/all/mac_dump>temp.dat
if exist out.bat del out.bat
jenv.exe"1:LAN MAC"temp.dat mac0 24 12
copy out.bat mac0.bat
if exist out.bat del out.bat
jenv.exe"2:LAN MAC"temp.dat mac1 24 12
copy out.bat mac1.bat
type mac0.bat
type mac1.bat
delay 3
:flashbis
cls
echo******************************************************
echo Warning:Flashing BIOS,do not power down the system
echo System will reboot automatically when flash complete
echo******************************************************
echo flashbis>FLS_BIOS.FLG
call flashbis.bat
goto END
:flashmac
if exist fls_bios.flg del fls_bios.flg
cls
echo******************************************************
echo Flash MAC back to System
echo******************************************************
call mac0.bat
call mac1.bat
eeupdate/nic=1/mac=%mac0%
if errorlevel 1 echo NIC 1 MAC Flash FAIL
if errorlevel 1 pause
if errorlevel 1 goto flashmac
eeupdate/nic=2/mac=%mac1%
if errorlevel 1 echo NIC 2 MAC Flash FAIL
if errorlevel 1 pause
if errorlevel 1 goto flashmac
echo******************************************************
echo PASS!PASS!PASS!PASS!PASS!PASS!PASS!PASS!PASS!
echo Please AC-off!!!!!!!!!!!
echo******************************************************
if exist temp.dat del temp.dat
if exist mac0.bat del mac0.bat
if exist mac1.bat del mac1.bat
if exist out.bat del out.bat
if exist fls_bios.flg del fls_bios.flg
:END。
另外,本发明还提供了一种防止板载网卡MAC地址被修改的系统,适用于在DOS环境下升级BIOS,所述系统包括启动准备模块、脚本执行模块、地址存储模块、重启模块、地址写回模块以及完成模块:
启动准备模块,用于制作一个DOS启动U盘,将工具和BIOS刷新脚本拷贝到所述DOS启动U盘中;
脚本执行模块,用于将所述DOS启动U盘连接至待烧写的终端设备,并开机选择从所述DOS启动U盘启动;所述DOS启动U盘启动后进入执行BIOS刷新脚本;
地址存储模块,用于所述BIOS刷新脚本自动从所述板载网卡中读取NIC 1和NIC 2的MAC地址并暂存起来,所述BIOS刷新脚本自动烧写BIOS,烧写完成后提示AC off并断电;
重启模块,用于重启所述终端设备,重新上电选择从所述DOS启动U盘启动;
地址写回模块,用于所述DOS启动U盘启动后再次执行所述BIOS刷新脚本,重新将所述暂存的NIC 1和NIC 2的MAC地址写回所述板载网卡;
完成模块,用于刷新完成后断电再重启所述终端设备使得MAC地址生效。
其中,所述断电与正常刷新BIOS断电方式相同。
其中,所述读取NIC 1和NIC 2的MAC地址以及写回MAC地址的工具为eeupdate工具。
其中,所述BIOS刷新脚本中使用afudos工具刷新BIOS,刷新BIOS的操作如下:@echo off afudos.exe xxx.bin/P/B/N/X/K/ME,所述xxx.bin为BIOS文件名,/P参数为刷主BIOS,/B参数为刷启动块,/N参数为刷NVRAM,/X参数为不检验ROM ID,/K参数为刷所有非重要的块和ROM孔洞,/ME参数为刷ME整个固件块。
所述BIOS刷新脚本为:
@echo off
if exist fls_bios.flg goto flashmac
cls
echo***********************************************
echo Warning:This script is for JiNan flashing BIOS.
echo Are you sure are going to do this?
echo***********************************************
choice.com
if errorlevel 2 echo Canceled.
if errorlevel 2 goto END
:readmac
cls
echo**********************************
echo Read MAC from System
echo**********************************
if exist temp.dat del temp.dat
if exist mac0.bat del mac0.bat
if exist mac1.bat del mac1.bat
eeupdate/all/mac_dump>temp.dat
if exist out.bat del out.bat
jenv.exe"1:LAN MAC"temp.dat mac0 24 12
copy out.bat mac0.bat
if exist out.bat del out.bat
jenv.exe"2:LAN MAC"temp.dat mac1 24 12
copy out.bat mac1.bat
type mac0.bat
type mac1.bat
delay 3
:flashbis
cls
echo******************************************************
echo Warning:Flashing BIOS,do not power down the system
echo System will reboot automatically when flash complete
echo******************************************************
echo flashbis>FLS_BIOS.FLG
call flashbis.bat
goto END
:flashmac
if exist fls_bios.flg del fls_bios.flg
cls
echo******************************************************
echo Flash MAC back to System
echo******************************************************
call mac0.bat
call mac1.bat
eeupdate/nic=1/mac=%mac0%
if errorlevel 1 echo NIC 1 MAC Flash FAIL
if errorlevel 1 pause
if errorlevel 1 goto flashmac
eeupdate/nic=2/mac=%mac1%
if errorlevel 1 echo NIC 2 MAC Flash FAIL
if errorlevel 1 pause
if errorlevel 1 goto flashmac
echo******************************************************
echo PASS!PASS!PASS!PASS!PASS!PASS!PASS!PASS!PASS!
echo Please AC-off!!!!!!!!!!!
echo******************************************************
if exist temp.dat del temp.dat
if exist mac0.bat del mac0.bat
if exist mac1.bat del mac1.bat
if exist out.bat del out.bat
if exist fls_bios.flg del fls_bios.flg
:END。
本发明提供的防止板载网卡MAC地址被修改的方法及系统,在刷新/升级BIOS时,先将板载网卡的MAC地址提取出来并保存,然后进行BIOS刷新/升级,BIOS刷新完成后再将保存的MAC地址写回板载网卡,本发明的方法及系统利用脚本自动完成刷新/升级BIOS时板载网卡MAC地址的提取和写回,有效避免因BIOS刷新/升级造成MAC地址被改写而无法使用网络的问题。
附图说明
图1是本发明的方法操作步骤流程图;
图2是本发明的系统结构框图;
具体实施例
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
本发明提供一种防止板载网卡MAC地址被修改的方法,应用于在DOS环境下升级BIOS,图1是本发明的方法操作步骤流程图,如图1所示;
包括:步骤101,制作一个DOS启动U盘,将工具和BIOS刷新脚本拷贝到所述DOS启动U盘中;
准备一个U盘,将choice.com、delay.exe、edit.com、eeupdate.exe、jenv.exe及afudos.exe工具以及BIOS刷新脚本拷贝到该U盘中,留后续步骤使用;在拷贝之前,对U盘进行格式化以保证在使用之前该U盘中不存在任何会对计算机软硬件造成破坏的文件。
步骤102,将所述DOS启动U盘连接至待烧写的终端设备,并开机选择从所述DOS启动U盘启动;所述DOS启动U盘启动后进入执行BIOS刷新脚本;
其中,所述终端设备可以是PC终端,将所述DOS启动U盘通过USB连接该PC终端,启动该PC终端并选择从所述DOS启动U盘启动,由此直接自动运行BIOS刷新脚本;
所述BIOS刷新脚本为:
@echo off
if exist fls_bios.flg goto flashmac
cls
echo***********************************************
echo Warning:This script is for JiNan flashing BIOS.
echo Are you sure are going to do this?
echo***********************************************
choice.com
if errorlevel 2 echo Canceled.
if errorlevel 2 goto END
:readmac
cls
echo**********************************
echo Read MAC from System
echo**********************************
if exist temp.dat del temp.dat
if exist mac0.bat del mac0.bat
if exist mac1.bat del mac1.bat
eeupdate/all/mac_dump>temp.dat
if exist out.bat del out.bat
jenv.exe"1:LAN MAC"temp.dat mac0 24 12
copy out.bat mac0.bat
if exist out.bat del out.bat
jenv.exe"2:LAN MAC"temp.dat mac1 24 12
copy out.bat mac1.bat
type mac0.bat
type mac1.bat
delay 3
:flashbis
cls
echo******************************************************
echo Warning:Flashing BIOS,do not power down the system
echo System will reboot automatically when flash complete
echo******************************************************
echo flashbis>FLS_BIOS.FLG
call flashbis.bat
goto END
:flashmac
if exist fls_bios.flg del fls_bios.flg
cls
echo******************************************************
echo Flash MAC back to System
echo******************************************************
call mac0.bat
call mac1.bat
eeupdate/nic=1/mac=%mac0%
if errorlevel 1 echo NIC 1 MAC Flash FAIL
if errorlevel 1 pause
if errorlevel 1 goto flashmac
eeupdate/nic=2/mac=%mac1%
if errorlevel 1 echo NIC 2 MAC Flash FAIL
if errorlevel 1 pause
if errorlevel 1 goto flashmac
echo******************************************************
echo PASS!PASS!PASS!PASS!PASS!PASS!PASS!PASS!PASS!
echo Please AC-off!!!!!!!!!!!
echo******************************************************
if exist temp.dat del temp.dat
if exist mac0.bat del mac0.bat
if exist mac1.bat del mac1.bat
if exist out.bat del out.bat
if exist fls_bios.flg del fls_bios.flg
:END。
步骤103,所述BIOS刷新脚本自动从所述板载网卡中读取NIC 1和NIC 2的MAC地址并暂存起来,所述BIOS刷新脚本自动烧写BIOS,烧写完成后提示AC off并断电;
其中,NIC 1、NIC 2即Network Interface Card网络适配器,也叫网卡,网卡是局域网中最基本的部件之一,它是连接计算机与网络的硬件设备。无论是双绞线连接、同轴电缆连接还是光纤连接,都必须借助于网卡才能实现数据的通信;BIOS刷新脚本使用eeupdate工具从板载网卡中读取NIC 1和NIC 2的MAC地址,然后刷新BIOS,BIOS刷新脚本中使用afudos工具刷新BIOS,刷新BIOS的操作如下:@echo off afudos.exe xxx.bin/P/B/N/X/K/ME,所述xxx.bin为BIOS文件名,/P参数为刷主BIOS,/B参数为刷启动块,/N参数为刷NVRAM,/X参数为不检验ROM ID,/K参数为刷所有非重要的块和ROM孔洞,/ME参数为刷ME整个固件块;烧写完成之后进行断电,断电与正常刷新BIOS断电方式相同。
步骤104,重启所述终端设备,重新上电选择从所述DOS启动U盘启动;
断电之后重新启动PC终端,从DOS启动U盘启动,重新对板载网卡上电,进入第二次执行BIOS刷新脚本。
步骤105,所述DOS启动U盘启动后再次执行所述BIOS刷新脚本,重新将所述暂存的NIC 1和NIC 2的MAC地址写回所述板载网卡;
再次执行BIOS刷新脚本,使用eeupdate工具将暂存的NIC 1和NIC 2的MAC地址写回主板板载网卡。
步骤106,刷新完成后断电再重启所述终端设备使得MAC地址生效。
其中,断电与正常刷新BIOS断电方式相同,重启完成之后写回MAC地址生效,且BIOS刷新也完成。
本发明提供的防止板载网卡MAC地址被修改的方法,在刷新/升级BIOS时,先将板载网卡的MAC地址提取出来并保存,然后进行BIOS刷新/升级,BIOS刷新完成后再将保存的MAC地址写回板载网卡,本发明的方法及系统利用脚本自动完成刷新/升级BIOS时板载网卡MAC地址的提取和写回,有效避免因BIOS刷新/升级造成MAC地址被改写而无法使用网络的问题。
本发明的实施例还提供了一种防止板载网卡MAC地址被修改的系统,如图2所示,该系统适用于在DOS环境下升级BIOS,所述系统包括启动准备模块、脚本执行模块、地址存储模块、重启模块、地址写回模块以及完成模块:
启动准备模块201,用于制作一个DOS启动U盘,将工具和BIOS刷新脚本拷贝到所述DOS启动U盘中;
准备一个U盘,将choice.com、delay.exe、edit.com、eeupdate.exe、jenv.exe及afudos.exe工具以及BIOS刷新脚本拷贝到该U盘中,留后续步骤使用;在拷贝之前,对U盘进行格式化以保证在使用之前该U盘中不存在任何会对计算机软硬件造成破坏的文件。
脚本执行模块202,用于将所述DOS启动U盘连接至待烧写的终端设备,并开机选择从所述DOS启动U盘启动;所述DOS启动U盘启动后进入执行BIOS刷新脚本;
其中,所述终端设备可以是PC终端,将所述DOS启动U盘通过USB连接该PC终端,启动该PC终端并选择从所述DOS启动U盘启动,由此直接自动运行BIOS刷新脚本;
所述BIOS刷新脚本为:
@echo off
if exist fls_bios.flg goto flashmac
cls
echo***********************************************
echo Warning:This script is for JiNan flashing BIOS.
echo Are you sure are going to do this?
echo***********************************************
choice.com
if errorlevel 2 echo Canceled.
if errorlevel 2 goto END
:readmac
cls
echo**********************************
echo Read MAC from System
echo**********************************
if exist temp.dat del temp.dat
if exist mac0.bat del mac0.bat
if exist mac1.bat del mac1.bat
eeupdate/all/mac_dump>temp.dat
if exist out.bat del out.bat
jenv.exe"1:LAN MAC"temp.dat mac0 24 12
copy out.bat mac0.bat
if exist out.bat del out.bat
jenv.exe"2:LAN MAC"temp.dat mac1 24 12
copy out.bat mac1.bat
type mac0.bat
type mac1.bat
delay 3
:flashbis
cls
echo******************************************************
echo Warning:Flashing BIOS,do not power down the system
echo System will reboot automatically when flash complete
echo******************************************************
echo flashbis>FLS_BIOS.FLG
call flashbis.bat
goto END
:flashmac
if exist fls_bios.flg del fls_bios.flg
cls
echo******************************************************
echo Flash MAC back to System
echo******************************************************
call mac0.bat
call mac1.bat
eeupdate/nic=1/mac=%mac0%
if errorlevel 1 echo NIC 1 MAC Flash FAIL
if errorlevel 1 pause
if errorlevel 1 goto flashmac
eeupdate/nic=2/mac=%mac1%
if errorlevel 1 echo NIC 2MAC Flash FAIL
if errorlevel 1 pause
if errorlevel 1 goto flashmac
echo******************************************************
echo PASS!PASS!PASS!PASS!PASS!PASS!PASS!PASS!PASS!
echo Please AC-off!!!!!!!!!!!
echo******************************************************
if exist temp.dat del temp.dat
if exist mac0.bat del mac0.bat
if exist mac1.bat del mac1.bat
if exist out.bat del out.bat
if exist fls_bios.flg del fls_bios.flg
:END。
地址存储模块203,用于所述BIOS刷新脚本自动从所述板载网卡中读取NIC 1和NIC2的MAC地址并暂存起来,所述BIOS刷新脚本自动烧写BIOS,烧写完成后提示AC off并断电;
其中,NIC 1、NIC 2即Network Interface Card网络适配器,也叫网卡,网卡是局域网中最基本的部件之一,它是连接计算机与网络的硬件设备。无论是双绞线连接、同轴电缆连接还是光纤连接,都必须借助于网卡才能实现数据的通信;BIOS刷新脚本使用eeupdate工具从板载网卡中读取NIC 1和NIC 2的MAC地址,然后刷新BIOS,BIOS刷新脚本中使用afudos工具刷新BIOS,刷新BIOS的操作如下:@echo off afudos.exe xxx.bin/P/B/N/X/K/ME,所述xxx.bin为BIOS文件名,/P参数为刷主BIOS,/B参数为刷启动块,/N参数为刷NVRAM,/X参数为不检验ROM ID,/K参数为刷所有非重要的块和ROM孔洞,/ME参数为刷ME整个固件块;烧写完成之后进行断电,断电与正常刷新BIOS断电方式相同。
重启模块204,用于重启所述终端设备,重新上电选择从所述DOS启动U盘启动;
断电之后重新启动PC终端,从DOS启动U盘启动,重新对板载网卡上电,进入第二次执行BIOS刷新脚本。
地址写回模块205,用于所述DOS启动U盘启动后再次执行所述BIOS刷新脚本,重新将所述暂存的NIC 1和NIC 2的MAC地址写回所述板载网卡;
再次执行BIOS刷新脚本,使用eeupdate工具将暂存的NIC 1和NIC 2的MAC地址写回主板板载网卡。
完成模块206,用于刷新完成后断电再重启所述终端设备使得MAC地址生效。
其中,断电与正常刷新BIOS断电方式相同,重启完成之后写回MAC地址生效,且BIOS刷新也完成。
本发明提供的防止板载网卡MAC地址被修改的系统,在刷新/升级BIOS时,先将板载网卡的MAC地址提取出来并保存,然后进行BIOS刷新/升级,BIOS刷新完成后再将保存的MAC地址写回板载网卡,本发明的方法及系统利用脚本自动完成刷新/升级BIOS时板载网卡MAC地址的提取和写回,有效避免因BIOS刷新/升级造成MAC地址被改写而无法使用网络的问题。。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是符合与本文所公开的原理和新颖特点相一致的最宽的范围。