2013年5月31日星期五
今天应朋友F的邀请,去帮他修复了一台IBM X3650服务器的win2003系统。我觉得这个问题比较常见,所以想着记录下来,或者有备于自己将来参考。
首先,介绍一下系统出现的问题。此服务器上有一个财务系统,不知是何原因出现故障,显示软件为试用版本,经软件供应商查看之后,供应商要求朋友重启下服务器。这样问题就出现了,服务器启动不来了,显示“ntldr is missing”。这是很常见的系统启动文件损坏,windows系统经常会这样。最主要的问题是服务器都用RAID的,普通win2003系统安装盘没有此阵列卡驱动,无法识别硬盘来修复系统。用IBM自带的系统启动盘,会要求重新格式化,也就是刚安装使用的时候可用,现在硬盘上有重要数据,不能格式化安装。朋友F经验不足,一看要格式化就傻了,数据丢失就有大灾难了。于是向另一位我们共同好友M求助。【写到这里,突然想到一个问题,我没有试过按F8加载最近良好配置,不知另外一个朋友M试过没有……】【后来又想了下,这种情况应该进不到那个画面,或按F8也是不起作用】。
M因为不在本地,所以只能远程操作或者讲解,M教F用nlite整合一个带RAID卡驱动的启动盘。F从IBM附送的驱动光盘中提取了驱动,然后整合到WIN2003系统盘中,可能是驱动不对,试了几次都不行,无法识别到RAID阵列。M因为没在现场,一时也不知道怎么帮F,于是想到了我,我虽然也不在F所在城市,但是并不算太远,一天可以两个来回,特别是现在交通越来越发达。M在网上找到了一个此服务器阵列卡驱动,是在51CTO上的资料,M竟没有下载豆。我感觉正是自己体现价值的时候,我因为经常混迹51CTO,虽然较少评论回复,但是一早就发现51CTO上存在很多有价值的资料,在上面甚至能找到其它网站没有的资料,我要下载这些资料就需要下载豆,所以也共享过一些资料供下载。
M推荐了我,正好我又有空。于是,我坐了近3小时的车程,转了三趟车,终于到了F的公司。由于F的工作比较忙碌,于是就单刀直入,跟F了解故障产生的原因,以及他自己所做的努力,因为我对详情没了解,只是知道系统损坏无法启动。大概了解之后,我就着手制作整合RAID驱动的启动盘。
第一步,下载RAID驱动。
通过服务器开机画面可以看到阵列卡型号是ServerRaid-M5014
根据M提供的链接http://down.51cto.com/data/639034,下载好驱动。选择合适的win2003-32bit解压出来。
第二步,先安装nlite1.4.9
(我给个菲凡软件站下载地址:http://www.crsky.com/soft/3562.html),这个很容易可以下载到。
朋友F已经使用过一次了,也就是安装好了,这一步省了。
第三步,复制win2003启动盘的所有安装文件到硬盘的一个文件夹中。
可以用UltraISO先将光盘制作成ISO镜像,再解压到硬盘上。也可以直接复制光盘中的文件。建议先制作原始ISO,以便一次整合不成功时,可以直接解压ISO再整合。
第四步,开始整合驱动。运行nlite软件,
1、选择软件语言,我选简体中文
2、选择系统文件所在文件夹,就是第三步做好的文件夹。选择了文件夹后,就会自动读取文件夹内的系统版本信息,显示在下面。
3、这里是加载预设信息或者之前做过的设置保存显示在这里,如果不需要加载旧的设置,可以不用管。
4、这里开始选择需要的操作,我选择整合驱动程序,以及制作ISO镜像。其它的操作,有兴趣的同学可以去了解一下。
5、插入要整合的驱动文件。
6、选择合适的驱动程序。
7、还可以继续添加更多的驱动,这里我继续前进。
8、开始整合处理。
9、完成之后,点击创建ISO镜像,选择路径存放ISO镜像文件。
10、ISO镜像制作完成,继续前进将结束。将镜像刻录成光盘,就可以使用了。
整个ISO的整合制作过程是很快的,因为工作量不是很大。
第五步,测试新制作的启动光盘。
为了保险起见,可以先在虚拟机测试下新制作的ISO镜像是否能够正常,但一般是没有问题的。我是直接放到服务器光驱,启动主机。能够正常启动系统光盘,并且已经可以识别到了原有系统分区,也就是说阵列卡驱动正确加载了。
进入安装或者修复选择画面,这里我就没有图了,没有拍照,大家应该都知道的。第一次我们选择修复,然后进入了命令行,我不想在命令行下操作,因为我想起来以前做WINDOWS XP 修复时是选择安装,然后系统自动搜索到原有系统并修复到原始状态,修复之后可能还要安装驱动。于是直接按了回车ENTER,主机重启。我们这一次选择了安装,直接到显示选择系统分区的画面,没有出现识别到旧系统,是否需要修复的提示。这就怪了,难道是系统盘与服务器系统版本不一致,怎么会识别不到原有系统呢?
我们发现这是个问题,首先要知道原来系统是什么语言、什么版本。因为我们刚制作的这个是用win2003R2繁体中文标准版。然后F查看资产管理资料,幸好不久前安装了360企业版,能够自动检测硬件和软件保存在服务端。发现原系统是win2003 sp2简体中文企业版,又去找企业版启动光盘,刚开始没找到,想下载网速超慢,好不容易找到了一张。
按照上述步骤重新制作了一张整合RAID驱动的启动光盘,正常启动,正确识别到了阵列卡驱动。但是又出现一个问题,在安装选择画面没有修复系统选项,安装时也只是说检测到旧的系统文件夹,是格式化删除,还是保留?这真他妈的,坑爹呀!当然不能删除,也不能重装,因为有几个软件朋友F不知道怎么装呢。
F手头打印了一份修复winXP的步骤,是进入修复模式的命令行操作,也是朋友发给他的。我们只能试试这个步骤了,但是企业版无法进入修复模式,又不清楚企业版与标准版的启动文件是否通用?与F简单讨论了下,决定先用标准版光盘启动进入修复模式,再更换成企业版光盘。
选择修复系统,再选择数字1(不选择直接回车,系统会重启),输入管理员Administrator密码,顺利进入了修复模式(也就是故障修复控制台),换好企业版光盘。接着执行以下步骤,
1、输入fixboot,系统提示是否确认写入MBR扇区,再输入Y确认。
2、输入map查看所有识别到的分区盘符。
3、输入copyX:\i386\ntldr C:\ (X是光驱盘符,C是系统所在分区,不知道光驱盘符是什么,可以输入map查看)
4、输入copyX:\i386\ntdetect.com C:\
(如果这两个文件出现文件拒绝访问,无法覆盖,先去除文件的只读属性)
至此,操作完成,重新启动服务器,看到熟悉启动画面,心情真舒畅,F更是无比激动。顺利进入系统,查看了一下基本正常,驱动都有,软件也都在。我们觉得应该没什么问题了。F找用户测试了一下软件系统,发现有个软件运行不起来,这又把他急坏了。
我仔细看了下错误提示,是程序路径下缺少了一个WS2_32.dll的文件,并且使用正确的安装盘。在路径下找到这个文件,怎么是0 kb?很明显,文件损坏了,我想既然要求安装盘,应该是系统文件。于是找到系统安装盘,在i386下找到一个文件WS2_32.dl_,我知道是一个压缩文件,需要的就是它了,复制到任意位置,在命令行下进入到文件所在路径,输入expand WS2_32.dl_ WS2_32.dll将文件解压,得到正常的文件,再复制到程序路径下。F再次运行软件系统,已经可以正常启动了。
最后,整个过程基本结束,系统、软件都正常运行。我也是功成身退啊,搭车返回。
写在后面的话:在处理这个问题的过程中,也许我走了很多弯路,或是一开始就应该进入命令行修复,或是应该先尝试按F8。我这个人比较谨慎,我无法确定标准版与企业版的启动信息文件是否可以通用,而且我比较倾向于,如果系统能够自动识别修复,就让系统自动完成,我怕自己一时疏忽,造成数据的丢失。有了不同的尝试,才会积累不同的经验。