ncyu_phyedu 板


桌面档案 Windows XP 和 Windows PE 2.0 双重开机 Wes Miller 下载本文程式码: Desktop2008_02.exe (151KB) 在上一期的《桌面档案》中,我曾提到 Windows PE 已变成一种修复工具,另外也说明了如何从第二个磁碟分割来使用它。我最近收到的疑问,让我联想到将这进一步发扬光大的作法,可能值得探讨一番,那就是并用 Windows PE 2.0 和 Windows XP。 毕竟,诸位读者中很多人使用 Windows XP 已有一段时间,而 Windows PE 是 Microsoft 未来继续支援的版本 (请注意,Windows PE 1.x 将不再有後续的更新)。 Windows PE 1.x 与 2.x 之间重要的差异在於,Windows PE 2.x 可以透过标准开机介面来开机 (Windows PE 1.x 则采用专门的方法)。虽然您可以从第二个磁碟分割来启动 Windows PE 1.x 或 2.x,但是从您安装作业系统的同一个开机磁碟分割来启动,所带来的便利性有很多潜在的优点,这稍後就会讨论到。 Windows 双开机 Windows NT 对於双重开机向来采取相当开放的态度。但是随着以可延伸韧体介面 (EFI) 为基础的电脑开始取代旧式 IBM PC AT BIOS 的地位,Microsoft 也跟着改变了 Windows 的开机机制,除了希望与 EFI 更顺利搭配运作之外,也希望有一套所有架构通用的开机机制。这套全新的 Windows 开机机制,自 Windows Vista 开始称为开机设定资料库 (Boot Configuration Database),或 BCD (请参阅 microsoft.com/whdc/system/platform/firmware/bcd.mspx)。不过无论您指的是旧版的 boot.ini 或是新的 BCD 机制,Windows 通常都可以启动其他作业系统,即使是要将开机处理序交由其他开机载入器进行。 开始前,一定要记住 Windows PE 2.0 只能在同时具有完整进阶组态与电源介面 (ACPI) 功能且 384MB (理想是 512MB) RAM 的系统上运作。如我在五月号的专栏 (technetmagazine.com/issues/2007/05/DesktopFiles) 中提到的,非 ACPI 系统将无法启动 Windows PE 2.0,而且因为 Windows PE 2.0 必须开机到 RAMDisk,所以它需要有足够的 RAM 来容纳 RAMDisk、任何涂销空间,以及所有的 RAM 工作组。如果您系统的 RAM 低於 384MB,那麽根本不必考虑这种作法,请改用 Windows PE 1.6。即使是有技巧地手动减少 Windows PE 的大小,它也无法在 256MB 上顺利运作。 喔,您能解决的问题 我们现在来讨论一下,从 Windows XP 的同个磁碟分割启动 Windows PE 2.0 可以解决哪些问题。 完整系统复原 这只是直接从 Windows XP 磁碟分割启动 Windows PE 其中一项可行的工作。既然 Windows PE 2.0 (跟它之前的 Windows PE 1.6 一样) 可以完全开机至 RAMDisk,您便可以重新制作整个磁碟的映像 — 或是使用 ImageX 让 Windows XP 档案自行还原,因为没有必要重新制作整个磁碟分割的映像。 容许使用者在启动时开机到 Windows PE,他们便能复原自己的系统,甚至是从远端工作时也可以。这个映像可以来自第二个磁碟分割、网路共用 (适用於非行动使用者)、复原 DVD 或 USB 硬碟,或者若您使用 ImageX 的话,甚至可以将它存放到要复原的磁碟分割上。这类的磁碟上 (on-disk) 复原是许多问题的最佳解决方案 (除了实体磁碟损毁例外)。但除非资料原先有受到保护,然後作为复原的一部分进行还原,否则对於还原使用者资料显然没什麽效用。请记住,您应该使用漫游设定档并从电脑备份资料,来预防这类的损失。您更应该确保所采用的任何一种复原机制都能为使用者缓和任何可能的资料损失 (包括因 EFS 加密金钥重设而导致的遗失)。 档案复原 Windows PE 提供的机制也能在主要安装的 Windows 不开机时,让系统顺利运作。在这种情况下,您能够将使用者资料开机和复原到其他系统 (若您已热备份供使用者使用的系统的话) 或其他位置,让使用者可以尽快恢复工作。 系统修复 最後,在 Windows XP 上启动 Windows PE 可让您执行一组疑难排解指令码或使用者启动的简单修复或复原应用程式,来修复系统。此程序与完整系统复原类似,但它的范围比较窄 (而且不会危及使用者资料)。 稍微了解在 Windows XP 磁碟分割上启动 Windows PE 对您有什麽帮助之後,让我们来看看背後的运作原理,以便将此程序应用到您选择采用的任一解决方案。 Windows Vista 之前 在 Windows Vista 问世之前,以 BIOS/主开机记录 (MBR) 为主的系统的开机方式如下:BIOS 指向开机装置 (以硬碟为例,它会指向磁碟上的 MBR),MBR 会执行指定要启动哪个磁碟分割的程式码。请注意,这是第一个设有使用中旗标的磁碟分割。在最早的 diskpart 版本中,您无法使磁碟分割处於非使用中状态 (也就是说,您无法移除使用中旗标)。为了修正这个问题,diskpart 里面添加了一个参数,否则它会是磁碟分割表格顺序里面第一个设有使用中旗标的磁碟分割。磁碟分割包含开机磁区,这会告诉它接下来要执行哪个程式码。从 Windows NT 到 Windows Server 2003,要执行的程式码一直是一个名为 ntldr 的档案 (没有副档名)。如果您曾经格式化磁碟,然後在不安装 Windows 的情况下尝试开机,就一定看过「找不到 NTLDR」的错误讯息。 您应该很乐於知道 ntldr 完全与旧版相容,但是它当然不与未来版本相容。这表示 Windows XP 的 ntldr 可以启动 Windows 2000,但反之则不然。这也正是为什麽如果您打算双重开机,一定要先安装最旧版的作业系统的原因。再加上 ntldr 并没有版本编号,因此牢记这一点更是重要。 Ntldr 是真实模式 (16 位元) 应用程式,它会启动 NTDetect.com,这个 NTDetect.com 会执行基本的装置侦测,然後启动核心:ntoskrnl.exe (这可能是好几个档案之一 — 永远重新命名为 ntoskrnl.exe)。核心是 Windows 开机程序的重要元件。 以上简述的开机程序有点过分简化,而且我也省略了 Win32 的整个初始化作业,不过那跟本文的讨论范围无关。如果您想了解更详细的资讯,我建议您阅读 Mark Russinovich 和 David Solomon 合着的《Windows Internals》第四版 (Microsoft Press,2004 年)。 另外一件要注意的事,就是当您从 CD 开机时,Windows 安装程式和 Windows PE 会执行 setupldr.bin 而非 ntldr。这个档案实际上包含的开机程式码有点不太一样,所以才能从 CD 开机 (ntldr 则不能)。这是为什麽在启动 Windows PE 1.x 时,您必须将 setupldr.bin 重新命名为 ntldr,并把它放到磁碟上的缘故。这也是为什麽档案之後无法载入 boot.ini 档案 (因为 setupldr.bin 的设计只能从 CD 开机,结果 boot.ini 被认为是不必要的) 的原因。 Windows Vista 及之後版本 Windows Vista 变更了这个程序的许多部分,而 Windows Server 2008 更是将它改头换面,它启用 IA32 (32 位元支援) 从 EFI 开机 — 到目前为止,只有 Itanium 架构系统才办得到。对於以 BIOS 为主的系统,开机程序的初始步骤大致上保持不变。主要的差别在於,初始化并执行後续步骤的开机载入器是 BOOTMGR。 它会在开机目录中寻找 BCD 档案,这实际上是它自己的登录 Hive。BCD 包含要启动的开机项目 (包括预设值)。请参阅 [图 1] 查看映像类型 (可执行档类型),并参阅 [图 2] 查看要启动的特定应用程式类型。这些项目当中的一个 (或多个) 项目可以作为 ntldr 的参考。但实际上只有一个项目可以参考用来载入 ntldr 已知 GUID (请参阅 [图 3] 的第五行)。然後 bootmgr 会根据系统是否正在开机、进入休眠或开机至 ntldr 或其他开机管理程式 (在这种情况下,它会指向其他开机磁区,并启动该载入器),来决定接下来要载入的项目。如果您是从非 Windows 作业系统进行双重开机,这是最常见的情况。您可以在 microsoft.com/whdc/system/platform/firmware/bcd.mspx 找到更详细的资讯。 Figure 3 标准应用程式物件 描述 BCDEdit 识别码 GUID Windows 开机管理程式 {bootmgr} 9dea862c-5cdd-4e70-acc1-f32b344d4795 韧体开机管理程式 {fwbootmgr} a5a30fa2-3d06-4e9f-b5f4-a01df9d1fcba Windows 记忆体测试器 {memdiag} b2721d73-1db4-4c62-bf78-c548a880142d Windows 恢复应用程式 无别名 147aa509-0358-4473-b83b-d950dda00615 旧版 Windows 载入器 {ntldr} 466f5a88-0af2-4f76-9038-095b170dc21c 目前开机项目 {current} fa926493-6f1c-4193-a414-58f0b2456d1e 预设开机项目 {default} 无预先定义的 GUID Figure 2 应用程式类型 描述 值 描述 韧体开机管理程式 0x1 仅适用於 EFI 系统。 Windows 开机管理程式 0x2 控制开机流程。在双重开机的系统中,会向使用者显示开机选项功能表。 Windows 开机载入器 0x3 载入特定的 Windows 版本或设定。 Windows 恢复应用程式 0x4 当电脑从休眠状态恢复时,将 Windows 还原成其执行状态。 Windows 记忆体测试器 0x5 记忆体诊断应用程式。 Ntldr 0x6 仅适用於 PC/AT BIOS 系统。载入 Windows Vista 之前的 Windows 版本。 开机磁区 0x8 16 位元真实模式应用程式仅适用於 PC/AT BIOS 系统。可用来重新启动开机程序,以及载入非 Windows 作业系统。 Figure 1 映像类型 描述 值 韧体应用程式 0x1 开机应用程式 0x2 以 Ntldr 为基础的载入器物件 0x3 真实模式应用程式 0x4 您会发现到 Windows Vista 改造的开机基础结构远比前版更有组织 — bootmgr 外面的所有开机程式码都是存在根层级 \boot 目录中,而且是在 BCD 指定这麽做时,交由 Windows 特定的二进位档处理。 启动 Windows XP 和 Windows PE 2.0 您可能开始观察到透过使用 Windows Vista 开机管理程式,Windows PE 如何扮演中间的媒介让您继续启动 Windows XP 或 Windows 早期版本,并同时混合加入 Windows PE 2.0 来作为整合式复原工具。 当然,您需要在开机程序中多加一个步骤,不过这是 Microsoft 设计的步骤。因为全新的 bootmgr 基础结构需要为现有的 ntldr 和其他协力厂商的开机管理程式提供回溯相容性,所以特别建置 bootmgr 来支援这类的解决方案。 探讨过 Windows 开机的方式,以及全新的 BCD 如何运作後,要怎麽结合这两者,并将 Windows PE 2.0 合并到现有的 Windows XP 安装呢?要指定 Windows Vista 开机磁区 — 告知系统启动 bootmgr 的那段开机程式码 — 的方法有二。其中一种方法是使用 diskpart,建立和格式化一个新的 Windows PE 2.0 磁碟分割。但这个选项在此处并不可行,因为您并不想损毁或移动现有的 Windows XP 安装。因此,请改采这个程序: 1.确定您在 Windows PE 2.0 开机 CD 上有 bootsect.exe 和 bcdedit.exe 的复本 (您可以在 Windows Vista 安装 DVD 上找到这两个档案)。 2.将 Windows XP 系统开机到 Windows PE 2.0 CD。 3.开机後,马上执行此命令: 复制程式码 bootsect.exe /NT60 ALL 这会将开机磁区设成与 Windows Vista 相容且知道如何启动 bootmgr 的开机磁区。 4. 将开机管理程式复制到硬碟: 复制程式码 xcopy BOOTMGR C:\BOOTMGR /I 5. 将 boot.SDI 档案复制到硬碟上的 \BOOT 目录。您必须在开机前先复制这个档案的副本,因为在执行 Windows PE 时,这个档案会锁定起来而且无法复制: 复制程式码 xcopy BOOT.SDI C:\BOOT\ 适当地修正来源路径。 6. 将 boot.WIM 复制到硬碟。就跟 SDI 一样,您应该准备次要复本,因为您将无法复制从以下命令执行的这个档案: 复制程式码 xcopy BOOT.WIM C:\BOOT\BOOT.WIM 适当地修正来源路径。 7. 现在,建立新的 BCD 存放区: 复制程式码 bcdedit /createstore 8. 接下来,建立 BCD 项目以载入 Windows PE: 复制程式码 bcdedit /create {ramdiskoptions} /d "Boot Windows PE" bcdedit /set {ramdiskoptions} ramdisksdidevice partition=c: bcdedit /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi bcdedit /create /d "Windows PE" /application OSLOADER 9. 最後一行将传回 GUID。以实际传回的 GUID 取代 {YOURGUID}。这些是 RAMDisk 从您的硬碟启动 Windows PE 的项目,如 [图 4] 所示。 Figure 4 从硬碟启动 Windows PE 的 RAMDisk 项目 复制程式码 bcdedit /set {YOURGUID} device ramdisk=[c:]\boot\boot.wim,{ramdiskoptions} bcdedit /set{YOURGUID} path \windows\system32\winload.exe bcdedit /{YOURGUID} osdeviceramdisk=[c:]\boot\boot.wim,{ramdiskoptions} bcdedit /set{YOURGUID} systemroot \windows bcdedit /set{YOURGUID} winpe yes bcdedit /set {YOURGUID} detecthal yes 10. 现在,建立 bootmgr 项目,让开机管理程式启动: 复制程式码 bcdedit /create {bootmgr} /d "Boot Manager" bcdedit /set {bootmgr} device boot 11. 最後,针对现有 Windows 安装设定 BCD 项目 (将显示文字从 Windows XP 变更为您希望在开机管理程式开机功能表中显示的任意文字)。最後一个命令也会将它设定为开机功能表中的第一个 (预设) 项目: 复制程式码 bcdedit /create {ntldr} /d "Windows XP" bcdedit /set {ntldr} device partition=C: bcdedit /set {ntldr} path \ntldr bcdedit /displayorder {ntldr} /addfirst 12. 您现在应该可以重新启动您的系统,并选择适当的开机功能表项目,让它启动之前安装的 Windows 或 Windows PE 2.0。[图 5] 显示 bcdedit / enum all 的范例输出。这个命令会列出加入项目 (这是从 Windows PE 1.6 里面加入的) 後在 BCD 中的全部项目。 范例输入 (按影像可放大) 我还在努力设计一个可以自动执行这项工作的指令码。目前它只能将开机档案复制到硬碟,然後设定 BCD 项目。它无法在执行 Windows 的同时将开机磁区设成新的 Windows Server 2008 值 — 这必须在 Windows PE 中以离线状态进行。您可以在 TechNet Magazine 网站的程式码下载区找到这个指令码,网址是 technetmagazine.com。若要执行这个指令码,您应该将下列项目放在执行 VBScript 的同个目录中: 1.BCDEdit 2.BOOTMGR 3.\BOOT\ 目录 (从 Windows Vista 或 Windows PE 2.0 媒体) 4.含有效、可开机 Windows PE 2.0 BOOT.WIM 档案的 \SOURCES\ 目录 它会建立 BCD,然後复制适当的开机档案。开机到 Windows PE 并执行 bootsect 之後,您应该就能够双重开机。 复原双重开机 复原双重开机比设定它还要简单,您只要执行下列命令,将开机磁碟还原为先前的 Windows Vista 开机磁区就行了: 复制程式码 bootsect.exe /NT52 ALL 一经还原後,就可以删除 bootmgr 和 \boot 目录。在下次重新开机时,开机磁区会改成强制 ntldr 启动,并将 Windows PE 2.0 和所有的 Windows Vista 开机二进位档完全从开机流程移除。 Wes Miller 在位於德州奥斯丁的 Initiate Systems (InitiateSystems.com) 担任技术产品经理。他之前任职於 Winternals Software,并且曾在 Microsoft 担任专案经理一职。您可以透过电子邮件与 Wes 联络:[email protected]。 -- plurk http://www.plurk.com/dasea2030 face book 0963593047,0984262714 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.22.26 ※ 编辑: dasea2008 (210.66.169.48 台湾), 07/07/2022 04:15:35 ※ 编辑: dasea2008 (210.66.169.48 台湾), 04/25/2023 18:22:27







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草
伺服器连线错误,造成您的不便还请多多包涵!
「赞助商连结」






like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Soft_Job站内搜寻

TOP