很奇怪的一个。
我有一个装有 Server 2008 R2 的域控制器。虽然有点简陋,但很可靠。
AMD 系统。AM2 6000+ Asus Crosshair MB。
该服务器使用 5 个 Sata 端口来连接不同大小的硬盘。未配置 raid。这主要用于随机存储和备份 DC
当我们尝试在重新启动时升级其中一个驱动器时,我们收到“未检测到操作系统,请插入系统磁盘并按 ENTER”错误。我们四处摸索,发现只有当系统磁盘和其中一个存储磁盘(我们移除以进行升级的磁盘...)在启动时连接时,计算机才会启动。
这是怎么回事?我该如何修复这个问题?我希望能够移除该驱动器。
运行 BCDEDIT
我明白这个问题。建议使用命令来最好地解决它。我们希望所有内容都放在 C: 上。
C:\Windows\system32>bcdedit
Windows 启动管理器 -------------------- 标识符 {bootmgr} 设备
分区 = H: 描述
Windows 启动管理器 区域设置
en-US 继承
{globalsettings} 默认
{current} resumeobject
{c7cb3484-5288-11e0-a6a3-b7c0d75655a0} displayorder {current} toolsdisplayorder {memdiag} 超时 30Windows 启动加载程序 ------------------- 标识符 {current} 设备
分区 = C: 路径
\Windows\system32\winload.exe 描述 Windows Server 2008 R2 区域设置 en-US 继承
{bootloadersettings} recoverysequence {c7cb3486-5288-11e0-a6a3-b7c0d75655a0} recoveryenabled 是 osdevice
分区 = C: systemroot
\Windows resumeobject
{c7cb3484-5288-11e0-a6a3-b7c0d75655a0} nx OptOutC:\Windows\system32>
这是情况的屏幕截图。驱动器 7 无关紧要,因为其外部不需要再次截取屏幕截图来适应它。
更新
Boot\BCD 不在 H: 上,有什么想法吗这是我的输出
H:\Boot>xcopy /e h:\boot c:
H:\boot\memtest.exe
H:\boot\cs-CZ\bootmgr.exe.mui
H:\boot\da-DK\bootmgr.exe.mui
H:\boot\de-DE\bootmgr.exe.mui
H:\boot\el-GR\bootmgr.exe.mui
H:\boot\en-US\bootmgr.exe.mui
H:\boot\en-US\memtest.exe.mui
H:\boot\es-ES\bootmgr.exe.mui
H:\boot\fi-FI\bootmgr.exe.mui
H:\boot\Fonts\chs_boot.ttf
H:\boot\Fonts\cht_boot.ttf
H:\boot\Fonts\jpn_boot.ttf
H:\boot\Fonts\kor_boot.ttf
H:\boot\Fonts\wgl4_boot.ttf
H:\boot\fr-FR\bootmgr.exe.mui
H:\boot\hu-HU\bootmgr.exe.mui
H:\boot\it-IT\bootmgr.exe.mui
H:\boot\ja-JP\bootmgr.exe.mui
H:\boot\ko-KR\bootmgr.exe.mui
H:\boot\nb-NO\bootmgr.exe.mui
H:\boot\nl-NL\bootmgr.exe.mui
H:\boot\pl-PL\bootmgr.exe.mui
H:\boot\pt-BR\bootmgr.exe.mui
H:\boot\pt-PT\bootmgr.exe.mui
H:\boot\ru-RU\bootmgr.exe.mui
H:\boot\sv-SE\bootmgr.exe.mui
H:\boot\tr-TR\bootmgr.exe.mui
H:\boot\zh-CN\bootmgr.exe.mui
H:\boot\zh-HK\bootmgr.exe.mui
H:\boot\zh-TW\bootmgr.exe.mui
30 File(s) copied
H:\Boot>bcdedit -store C:\boot\BCD -enum all
The boot configuration data store could not be opened.
The system cannot find the file specified.
H:\Boot>dir
Directory of H:\Boot
03/19/2011 11:28 PM <DIR> cs-CZ
03/19/2011 11:28 PM <DIR> da-DK
03/19/2011 11:28 PM <DIR> de-DE
03/19/2011 11:28 PM <DIR> el-GR
03/19/2011 11:28 PM <DIR> en-US
03/19/2011 11:28 PM <DIR> es-ES
03/19/2011 11:28 PM <DIR> fi-FI
03/19/2011 11:28 PM <DIR> Fonts
03/19/2011 11:28 PM <DIR> fr-FR
03/19/2011 11:28 PM <DIR> hu-HU
03/19/2011 11:28 PM <DIR> it-IT
03/19/2011 11:28 PM <DIR> ja-JP
03/19/2011 11:28 PM <DIR> ko-KR
11/20/2010 11:24 PM 485,760 memtest.exe
03/19/2011 11:28 PM <DIR> nb-NO
03/19/2011 11:28 PM <DIR> nl-NL
03/19/2011 11:28 PM <DIR> pl-PL
03/19/2011 11:28 PM <DIR> pt-BR
03/19/2011 11:28 PM <DIR> pt-PT
03/19/2011 11:28 PM <DIR> ru-RU
03/19/2011 11:28 PM <DIR> sv-SE
03/19/2011 11:28 PM <DIR> tr-TR
03/19/2011 11:28 PM <DIR> zh-CN
03/19/2011 11:28 PM <DIR> zh-HK
03/19/2011 11:28 PM <DIR> zh-TW
1 File(s) 485,760 bytes
24 Dir(s) 177,605,242,880 bytes free
答案1
计算机从您移除的其中一个磁盘启动,并从操作系统磁盘(显然是单独的磁盘)启动操作系统。当有人粗心地安装操作系统时,就会发生这种情况。
您需要获取 OS 磁盘上的 BCD 并更正其新位置。您可能能够启动安装磁盘并修复安装以再次启动。
更新-修复:
- 首先备份:运行
bcdedit -export C:\bcd.backup
,可能应该将其复制到另一台计算机或拇指驱动器。 - 打开驱动器管理,将启动分区(应为 100 或 300 MB)挂载到驱动器号,记下该字母。
mkdir C:\boot
xcopy /e x:\boot c:\boot
(其中 x:是您刚刚安装的驱动器)bcdedit -export C:\boot\BCD
bcdedit -store C:\boot\BCD -enum all
请注意第二列中任何行的条目标识符和属性partition=x:
例如:
Windows Boot Loader ------------------- identifier {current} osdevice partition=x:
对于每个注意到的事件执行以下操作;要特别小心,不要搞砸了!
bcdedit -store c:\boot\BCD -set {current} osdevice partition=c:
注意:更改
{current}
为您要更改的属性的部分标识符。然后只需在其后跟上属性和新值即可。还请注意新值c:
而不是x:
。此外,标识符可能是/将是 GUID。一旦一切正常,再次启动驱动器管理,从另一个驱动器中删除驱动器号,使其恢复原状。标记
C:
分区Active
。
现在您应该能够移除另一个磁盘并从系统分区启动。如果这不起作用,则表示您没有弄乱另一个磁盘,可以将其放回去。
更新 2:
看起来您已经安装了其他分区h:
,因此请忽略安装和卸载操作,直接进入复制、编辑等等操作。
答案2
如果这只是辅助 DC(没有备份 DC 这样的东西),为什么不直接将其 dcpromo 掉,删除操作系统并重新开始呢?
答案3
首先,了解一点历史,这样才能清楚地明白到底发生了什么。
过去,在 Server 2003 及之前的基于 NT 的操作系统(不是 9x 操作系统)中,您有一个 boot.ini,其中有一行类似以下内容: default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 。这告诉 NT 加载程序从哪里找到要启动的操作系统。
因此,如果您有一个从分区 (2) 启动的 boot.ini,但您删除了分区 (1),因为它位于不同的磁盘上(甚至在 BIOS 中更改了磁盘的启动顺序),则在启动时,它仍在寻找分区 (2),但实际上它已被移动并重命名为分区 (1),因此它无法启动,因为所需的文件不在该位置。更改磁盘号也是如此。
在 Server 2008 中,boot.ini 已被 BCD(启动配置数据)取代,需要使用 BCDEdit 工具进行编辑。这里有一个关于如何使用它的很好的教程:http://www.computerperformance.co.uk/Longhorn/server_2008_bcdedit.htm
当您移除该磁盘时,您更改了分区和/或磁盘,并且您的服务器没有查看要从其启动的正确分区/磁盘。当您修复启动配置数据以查看正确的磁盘和分区时,它将启动。
答案4
Windows 2008 R2(实际上 Vista 之后的每个 Windows)都采用了 Linux 的方法,将引导加载程序与操作系统分离,将其存储在单独的分区中;如果你拿一个空磁盘并告诉 Windows 安装程序在其中创建一个大分区并在其中安装 Windows,它将自动在驱动器的开头创建一个小的(~100 MB)分区来保存引导管理器,然后它将实际将 Windows 安装在第二分区填充磁盘的剩余空间。这将自动发生,您甚至无法避免:Windows能将启动管理器和操作系统放在同一个磁盘上,但实现这一点的唯一方法是将其安装在已经分区的磁盘上。
好的,这有点题外话;无论如何,看起来在您的情况下,保存引导管理器的分区最终位于与保存操作系统的分区不同的驱动器上;但是我们无法从您的问题中知道实际的磁盘布局:我们只知道引导管理器存储在 H: 上,而操作系统在 C: 上,并且从您对问题的描述来看,H: 似乎位于您试图删除的磁盘上。
您应该发布一些来自diskpart
命令的输出,或者更好的是,发布一些来自磁盘管理管理单元的屏幕截图。
至于移动启动管理器,是的,能可以做到,但有点棘手的因此,请发布有关您的实际磁盘布局的更多信息,然后我们才能为您提供解决方案。