MILY: 宋体">一、Alarm! Disaster is Fall……
糟糕的事情总是在人们最不想它出现的时候出现。这天,那台4400的服务器,就这样忽然死亡了……
据在现场的同事描述,服务器忽然变慢,停止了网络服务,直到停止一切响应。
为了恢复服务,他们只有重新启动该服务器。强制重新启动服务器后,出现蓝屏,系统报告stop: 0x0000007b错误,inaccessable_boot_device。一开始我以为只是MBR坏了或者ntldr及NTdetect.com坏了,那样的话我只需要在故障恢复台里面使用fixmbr和fixboot来修复。由于服务器使用的是硬件RAID,只能在光盘启动时使用F6加载RAID的启动,然后进入故障恢复台,看看是否能否访问系统分区。进去后大惊,用diskpart可以看到系统分区,但是系统分区不再可读了,dir命令无法枚举任何文件和目录。
说到这里,要介绍一下该服务器的环境了。这台Windows 2000 Advanced Server是这个域(下文使用domian.com命名)的第一台Domain Controller,五个操作主机角色(FSMO)都在上面。限于条件,上面运行了Exchange Server 2000,也用作了File Server/Printer Server。另外还有DHCP/WINS/DNS。备份的磁带,容量不足以完成完整备份……所以说,服务器的退出服务,对于我们是一场真正的灾难。如果没有其他的Domain Controller,可能我们要忙上好长时间了。就是因为还有其他Domain Controller,我们还有一线希望!
二、Mission Impossible? Impossible is Nothing!
0、使用其它服务器替代网络服务
客户所受的影响必须降到最小。由于网络中使用DHCP服务器为客户机分配地址和提供网络信息,我们必须先解决客户机DHCP租约到期更新的问题。
原先我们只有这一台DHCP服务器,而现在它坏掉了。于是我们在另外的Server上安装了DHCP,划分的地址范围是原先的20%。这样做的理由是到期更新租约的客户机毕竟不是很多,当然也可以根据租约时间长短和客户机的数量自行调整,更新越快,划分的地址越多。
同时,我们安装了WINS和DNS,并且为DNS添加了原先手动设置的区域和记录。
1、恢复域控制器
Active Directory是基于Windows 2000网络环境的基石。有太多的信息保存在这里,有了Active Directory,我们可以恢复相当多的服务器配置信息,比如DNS的配置之类。所以我们首先要考虑的,就是恢复主机角色。
顺便介绍一下主机角色。Active Directory 定义了五种操作主机角色(FSMO):
架构主机 schema master
域命名主机 domain naming master
相对标识号(RID)主机 RID master
主域控制器模拟器 PDCE
基础结构主机 infrastructure master
架构主机是可以更新目录架构的唯一域控制器。架构更新会从架构主机复制到活动目录森林中的所有其它域控制器。整个森林中只有唯一一台架构主机。
域命名主机是可以执行以下任务的唯一域控制器:在森林中添加或删除域,添加或删除描述外部目录的交叉引用对象。
相对标识号(RID)主机是负责向其它域控制器分配RID池的唯一一台服务器。在创建安全主体(例如用户、组或计算机,也可以理解成账号)时,需要将RID与域内的标识符结合来创建唯一的安全标识符(SID)。每一个域控制器都会收到用于创建对象的RID池(默认为512)。RID主机通过分配不同的池来确保这些ID在每一个域控制器上都是唯一的。通过RID主机,还可以在同一森林中的不同域之间移动对象。
域命名主机是基于森林的,整个森林中只有一个域命名主机。相对标识号(RID)主机是基于域的,森林中的每个域都有自己的相对标识号(RID)主机。
主域控制器模拟器(PDCE)主要实现向后兼容低级客户端和服务器,也就是允许在Windows 2000域中使用Windows NT备份域控制器(BDC)。本机模式Windows 2000环境里会将密码更改转发到PDCE。域控制器验证密码失败后,会与PDCE联系,以检查该密码是否可以通过验证。因为也许密码的更改还没有被复制到当前验证登录的域控制器中。森林中各个域的PDCE都会与森林的根域中的PDCE进行同步。PDCE是基于域的,森林中的每个域都有自己的PDCE。
基础结构主机确保所有域间操作对象的一致性。当引用另一个域中的对象时,此引用包含该对象的全局唯一标识符(GUID)、安全标识符(SID)和可分辨的名称(DN)。如果被引用的对象移动,则在域中担当结构主机角色的域控制器会负责更新该域中跨域对象引用中的SID和DN。基础结构主机是基于域的,目录林中的每个域都有自己的基础结构主机
默认的,这五种FSMO存在于森林根域的第一台域控制器(主域控制器)上,而子域中的相对标识号(RID)主机、PDCE 、基础结构主机存在于子域中的第一台域控制器。
[1] 清除原有Domain Controller的信息
因为这台服务器已经不再可用,我们必须重新安装,所以需要将原来的服务器的数据从ACTIVE DIRECTORY中删除。
完成这个目标,需要使用ntdsutil这个工具。(为便于阅读,这些命令已折行,粗斜体为输入内容)
c:\>CChar>ntdsutil ntdsutil: metadata cleanup metadata cleanup: select operation target select operation target: connections server connections: connect to domain domain.com select operation target: list sites Found 1 site(s) 0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com select operation target: select site 0 Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com No current domain No current server No current Naming Context select operation target: list domains in site Found 1 domain(s) 0 - DC=domain,DC=com select operation target: select domain 0 Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com Domain - DC=domain,DC=com No current server No current Naming Context select operation target: list servers for domain in site Found 2 server(s) 0 - CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=domain,DC=com 1 - CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=domain,DC=com select operation target: select server 0 select operation target: quit metadata cleanup: remove selected server |
出现对话框,询问你是否确定删除该DC。按“确定”删除DC1主控服务器。
metadata cleanup: quit ntdsutil: quit |
从Active Directory users and computers中删除Domain controllers中DC1服务器对象,可以使用ADSI EDIT工具。ADSI EDIT是Windows 2000 support tools中的工具,你需要安装Windows 2000 support tool,安装程序在windows 2000光盘中的support\tools目录下。在DC2上打开ADSI EDIT工具,展开Domain NC[DC2.domain.com],展开OU=Domain controllers,右击CN=DC1,然后选择Delete,把DC1服务器对象删除。
在Active Directory Sites and Service中删除DC1服务器对象,可以打开Administrative tools中的Active Directory Sites and Service,展开Sites,展开Default-First-Site-Name,展开Servers,右击DC1,选择Delete,单击“确认”按钮确认。
[2] 在额外域控制器上通过ntdsutil.exe工具夺取五种FMSO
(为便于阅读,这些命令已折行,粗斜体为输入内容)
c:\>ntdsutil ntdsutil: roles fsmo maintenance: select operation target select operation target: connections server connections: connect to domain domain.com select operation target: list sites Found 1 site(s) 0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com select operation target: select site 0 Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com No current domain No current server No current Naming Context select operation target: list domains in site Found 1 domain(s) 0 - DC=domain,DC=com select operation target: select domain 0 Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com Domain - DC=domain,DC=com No current server No current Naming Context select operation target: list servers for domain in site Found 1 server(s) 0 - CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=domain,DC=com select operation target: select server 0 select operation target: quit fsmo maintenance: seize domain naming master |
出现对话框,按“确定”
fsmo maintenance: seize infrastructure master |
出现对话框,按“确定”
fsmo maintenance: seize PDC |
出现对话框,按“确定”
fsmo maintenance: seize RID master |
出现对话框,按“确定”
fsmo maintenance: seize schema master |
出现对话框,按“确定”
fsmo maintenance: quit ntdsutil: quit |
(注:Seize用于原FSMO不在线时操作,如果原FSMO在线,则需要使用Transfer操作)