使用第二计算机的操作系统来引导第一计算机的过程的制作方法

文档序号:6570544阅读:209来源:国知局
专利名称:使用第二计算机的操作系统来引导第一计算机的过程的制作方法
使用第二计算机的操作系统来引导第一计算机的过程
本发明涉及计算机系统及其外围设备(peripheral)。 参照

图1,更特别地,本发明的目的是能够使用笫二计算机(B)的 操作系统(OS)来引导至少一个第一计算机(A),例如以便甚至在第 一计算机(A)的操作系统的部分失效(partial failure)的情况下, 在其外围设备之一 (例如它的硬盘)部分失效的情况下对多个"从 (slave),,终端进行联网(network)以用于从其获取(retrieve)数 据,或者以便能够使用单个"逻辑,,操作系统实例(或操作系统映像 (image))来对使用完全异构的硬件的不同计算机进行操作。
为了能够使用第二计算机(B)的操作系统来引导第一计算机(A), 第一计算机(A)必须配备有外围设备(网络接口控制器(NIC)、硬盘 驱动器(HDD)等),这允许第一计算机(A)或者通过对包含操作系统 文件的媒体的拷贝或者通过直接连接或间接连接来访问第二计算机(B) 的操作系统。
为了执行该操作,普遍认为从第一计算机(A)恢复驱动程序 (driver)并且将它们存储在第二计算机(B)中就会足够。
然而,这对于现代操作系统是不够的,所述现代操作系统使用在设 备被检测到时初始化的内部结构,所述内部结构然后^皮用于在不重新检 测所述设备的情况下对它们进行操作。为了检测设备,负责设备检测和 配置的操作系统组件(例如即插即用管理器)必须加入并运行(up and running)。这个组件通常在操作系统的引导过程后期才加入并运行, 原因在于它依赖于由所述操作系统提供的许多资源。负责设备检测和初 始化的组件于是就无法检测和初始化用于引导操作系统的引导设备控 制器(在信息技术领域中,该问题通常被称为"先有鸡先有蛋的问题")。 引导设备控制器通常在(首次)安装操作系统时^皮检测和初始化。现代 操作系统通常被设计成安装在特定计算机硬件上。于是,将已经安装的 操作系统移动至某一其他类型的硬件通常不可行,这是因为引导设备控 制器不相同并且被安装用于特定类型引导设备控制器的操作系统不能 被用于另 一类型的引导设备控制器。
诸如MS-D0S⑧之类较旧的操作系统能够被从一个硬件平台转移到另
一个,这是因为硬件平台与个人计算机(PC)硬件完全兼容,所述个人 计算机(PC)硬件的规范是对公众开放的。它们能够使用相同的指令集
来进行操作。 一些从过去继承而来的指令集仍然可用于现代个人计算机
中(例如,用于图形适配器的VGA或VESA,或用于盘驱动器控制器的 ATA/IDE)。计算机还使用诸如PCI总线之类的标准(实际或事实上)。 现代计算机,尤其是仍被称为"PC兼容"的那些计算机,仍然使用 这些兼容指令集中的一些来开始操作系统(甚至是现代操作系统)的引 导过程。特别地,在引导过程的最初步骤期间,它们依赖于标准BIOS 或固件机制来操作视频、盘驱动器和键盘。
但是现代操作系统需要能够使它们本身不受被用于操作计算机的 各种设备和组件的固件/BIOS机制的约束,以便使其限制更少,能够更 快,真正地多任务,更加高效等。于是,现代操作系统需要使用专门为 特定操作系统操作特定设备或控制器开发的设备驱动程序来直接操作 (控制)设备和控制器。例如,现代PC计算机将首先使用所有PC兼容 类型的计算机都能够使用的基于BIOS的视频指令(字符才莫式,然后是 VESA兼容模式)来引导,然后,操作系统将尽快地为在计算机中实际存 在的恰好特定(very specific)的一见频控制器加载和初始化恰好特定 的驱动器。该视频适配器,尽管它能够通过兼容的指令集(PC类型或 TTY类型字符指令、VESA指令等)来操作,但是在使用专用于它的驱动 程序时具有最佳的结果和性能。例如,VESA模式不能被用于显示 1024*768的图^象,其中每^象素24, 000, 000个颜色。
现代计算机通常使用硬盘驱动器来引导。现代PC计算机首先将使 用所有IBM-PC兼容类型的计算机都能够使用的基于BIOS的硬盘驱动器 指令(中断intl3h)来引导,然后,操作系统将尽快地为在计算机中实 际存在的恰好的(very )盘驱动器控制器加载和初始化恰好的驱动程序。 这使得盘访问更快,并且使得在BIOS或固件可能能够仅分配其开始部 分时可以使用盘驱动器的整个空间。使用基于BIOS的指令, 一些PC兼 容的计算机仅能够访问任何硬盘驱动器的前4GB,而现代计算机常常使 用大于40 GB的盘驱动器。
然而,操作系统仅能够使用一类盘驱动器控制器。如果某一硬盘驱 动器被移至使用另一类的硬盘驱动器控制器的计算机,则即使这两个控 制器能够通过兼容指令集来操作,盘驱动器上的操作系统也仅在兼容指
令集被使用的时候才被加载。
当操作系统需要使用专用于盘驱动器控制器的指令集时,然而,如 果盘驱动器控制器不是操作系统能够操作的盘驱动器控制器,那么操作 就仍然会失败,这是因为该控制器不"理解"能够被操作系统用来对引 导盘驱动器上的数据进行读取和写入的指令集。
此外,现代计算机使用链式(chained)设备控制器,并且设备和 操作系统必须知道该链(chain)以便能够操作特定设备。例如,类别 IBM-PCtm兼容或Apple MacintoshTM的现代计算机中的盘驱动器控制器
通常使用PCI总线接口。所述链于是至少包括PCI总线控制器-PCI接口
-盘驱动器控制器-盘驱动器。操作系统不仅必须知道如何操作每个控制
器、设备或接口,而且还必须知道如何构建该链以及每个设备如何与相
邻设备交互。例如,操作系统必须知道特定控制器连接在哪个PCI插槽
内。与链本身相关的数据被存储在操作系统所使用的某些内部结构中。 在MS-WindowsTM系统中,这些结构中的 一 些#:存储在系统注册表
(registry)中。当设备或控制器被检测和安装时,这些结构被创建和 初始化。与引导设备相关的结构在操作系统被安装时被初始化。现代操 作系统的安装过程通常包括加载最小的组件集,所述组件能够使用兼容 指令集来操作计算机并且然后能够加载和执行负责检测引导设备和初 始化相关结构的组件。当这被完成时,计算机被再引导(reboot),并 且实际的操作系统被加载并执行。然后它能够使用合适的特定指令集来 操作用于引导设备的设备控制器(即用于读取和加载包含剩余的操作系 统组件的文件)。然后,负责设备检测和初始化的操作系统的组件能够 被加载和执行,然后能够检测和初始化引导所不需要的其余设备(例如 声卡、USB控制器等)。
现代操作系统的 一 个最近的发展是它们可能能够在不需要使用它 们所操作的计算机中的盘驱动器或盘驱动器控制器的情况下通过网络 被完全纟l导。诸如PXE指令集(定义于PXE规范)之类的一些指令集能 够被用于处理引导过程(该过程通常依赖于BIOS或固件)的第一部分。 从那之后,操作系统所使用的引导设备控制器是网络接口控制器(NIC )。 有趣的是,对于视频控制器(例如VESA)或IDE盘驱动器控制器(IDE 盘驱动器能够通过Western Digital的WD1003盘驱动器控制器的/乂个 首指令来操作)存在对应的兼容指令集,然而对于NIC,则不存在兼容
指令集。PXE是网卡本身以上的层,但是PXE指令集则不可以被高效地 用于在现代操作系统中操作现代NIC。 PXE已经仅祐:设计成向NIC提供 "早期步骤"引导能力。PXE工作于BIOS级。
最近, 一 些技术已经被用于允许把为特定硬件平台而生成的操作系 统移动至另一硬件平台。若干种技术已经被实施来使用在一些设备或设 备控制器中已有的兼容指令集。
Microsoft Sysprep工具例如能够"准备"将现有的Windows⑧操 作系统移至一些"未知硬件平台"(未知指的是"当前对于待移动的操 作系统是未知的")。然而,该工具需要用户向要被用于各种未知硬件 平台中的盘驱动器控制器手动提供驱动程序和相关文件。Windows⑧于是 能够在每一类平台上被引导,其中最小能力集与安装程序已经创建(如 果所述安装程序已经在所述硬件平台上运行的话)的那些非常相似。此 外,使用Sysprep将原始操作系统布置于各种硬件平台的结果产生了与 所存在的硬件平台一样多的操作系统的不同逻辑实例。换言之,人们无 法将使用Sysprep先前移动过的操作系统从一个平台直接地移至另一当 前未知的平台。此外,Sysprep仅能够处理Windows⑧操作系统(在使用 盘驱动器控制器对所述Windows⑧操作系统进行引导时就是这样)。它 还不能,皮用于网络引导的(Network Booted) Windows 系统。
另 一种技术使得建立能够操作异构硬件平台的操作系统的逻辑实 例(是包括操作系统及其配置的文件集)成为可能。这种技术使得 Windows可以使用ATA/IDE兼容^t式来引导"未知硬件平台"。4艮明显, 该技术受限于用IDE盘驱动器来引导的系统。该技术要求IDE盘驱动 器祐^人一个^_件平台连续地(successively )移动(或克隆)至另一个, 并且在被移动(或克隆)之后,IDE盘驱动器必须被用于引导硬件平台。 该操作系统于是能够引导和检测该操作系统所运行其上的平台中的硬 件,包括所述平台中特定的盘驱动器控制器。该操作系统于是必须被再 次配置以便能够在它被移动至另一硬件平台之前使用兼容的IDE模式。 这种技术被用于例如本申请人的UbiBoot技术中,并且被描述于 Microsoft知识库文章#314082。
诸如Linux之类的一些才喿作系统使用"^笨测(probing),,。它们 嵌入用于引导设备(和其他设备)的多个驱动程序,并且在引导时,操 作系统探测硬件,并且如果检测到所支持的设备(即,该设备和用于这
个设备的驱动程序分别存在于计算机和操作系统中),那么就能够使用 该设备。从该意义上讲,当希望将系统盘从一个平台移动到另一个时,
这类似于Sysprep。如果在"未知平台"中检测到的盘驱动器控制器不 在操作系统能够操作的盘驱动器控制器的列表中,则该系统将不会完成 其引导过程。Linux操作系统通常为使用待操作的标准(例如ATA/IDE) 的引导设备控制器嵌入能够使用兼容指令集的驱动程序。
SCSI设备控制器不具有标准化的兼容指令集。SCSI设备控制器使 用标准SCSI指令集来操作SCSI设备,但是控制器它们自己仅能够通过 "专有(proprietary)"指令集(专有指令-SCSI控制器-SCSI标准 指令-SCSI设备)而被使用。因此,如上所描述的技术不能被用于把仅 使用一种特定类型的SCSI控制器作为其引导设备控制器的操作系统移 动至使用另 一种类型的SCSI控制器的另 一硬件平台。
类似地,上述技术都不能被用于把用网络服务器引导的操作系统从 使用 一种类型的网络接口控制器的硬件平台移动到使用另 一种类型的 网络接口控制器的另一平台。
本发明的一个特定目的是改善现有情形。为此,本发明首先旨在提 供一种利用第二计算机实体的操作系统来操作至少 一个第 一计算机实 体的方法。
第一和第二计算机实体是即插即用兼容的并且利用各自的第一和 第二即插即用兼容的操作系统来操作。
第一计算机实体包括至少一个可引导设备,以及用于操作所述可引
导设备的至少 一个即插即用可兼容设备控制器。
笫一计算机实体还存储至少一个初始化数据集和驱动程序文件,所 述至少一个初始化数据集和驱动程序文件;故所述第一操作系统用以初
始化和操作所述设备控制器。
所述第二操作系统的计算机文件被存储在媒体中,所述媒体还存储 旨在由第二操作系统使用来初始化和操作至少第二计算机实体的初始 化结构。
根据本发明,利用第二操作系统通过第 一计算机实体的可引导设备 控制器来操作第 一计算机实体,所迷可引导设备被安排成准予访问 (give access to)所述媒体(media), 并且
所述方法包括以下步骤
a) 检测和注册(register)在第一计算机实体中存储的所述初始 化数据集和驱动程序文件,
b) 将所述驱动程序文件拷贝到第二操作系统的文件中,
c) 为第二操作系统,对所述文件中的每一个进行适配,以及对所 述初始化数据进4于读取和适配,
d) 将所述初始化数据注入第二操作系统的初始化结构,
e) 使包含所述第二操作系统的所述媒体对所述第 一计算机可用,
f) 利用第二操作系统来初始化第一计算机实体,
因此,初始化结构能够被第二操作系统使用来初始化和操作可引导 设备的设备控制器,并且在利用第二操作系统初始化第 一计算机实体之 后,该设备控制器控制对存储所述第二操作系统的计算机文件的前述媒 体的i方问。
本发明还旨在提供包括用于实施上述方法的指令的计算机实体程序。
本发明还包括数据存储媒体(例如CD-R0M、盘(disk)等),所述 数据存储媒体包括上述计算机实体程序的程序代码指令。
根据以下对本发明的详细描述,本发明的其他特征和优点将会很明 显,所述详细描述是参照附图并作为非限制性示例而给出的,在所述附 图中
-图l是两个计算机通信的图示,
-图2a是图示出利用第二计算机的操作系统来引导第一计算机的 步骤的流程图,
-图2b是物理设置并且图示了图2A中的相同实施例所釆用的步
骤,
-图3图示了经由联网的服务器或盘驱动器而彼此连接的两个计算
机,
-图4图示了引导多个第一计算机的第二计算机操作系统, -图5a和5b图示了实现硬件的物理转移的另一实施例, -图6a和6b图示了将第二计算机的硬盘驱动器拷贝("克隆,,) 到第 一 计算机的又 一 实施例。
在各附图中,相同的附图标记指代相同或相似的元素。 在下文中,引导计算机指的是启动和初始化计算机实体以便用户能 够使用该计算机实体。
图2a和2b图示了使用第二计算机实体C0MP2的操作系统OS实现对 笫一计算机实体C0MP1的引导所采用的步骤。第一计算机可能已遭受完 全或部分硬件失效,从而使其不能用其本身的资源来引导。
这两个计算机实体必须是即插即用兼容的,并且必须使用即插即用 操作系统来操作。
第 一计算机实体C0MP1还包括至少一个工作可引导设备以及用于操:
作所述可引导设备的至少一个工作设备控制器,所述可引导设备可以是 硬盘驱动器或网络接口卡。实际上,可引导设备可以是允许对能被另一 计算机使用的操作系统进行访问的任何外围设备。
第二计算机实体C0MP2包括工作操作系统0S2 (图2b)。第二计算 机实体C0MP2的第二操作系统0S2被存储在媒体上-例如硬盘驱动器(本 地或远程存储),并且还包含旨在由第二操作系统0S2使用来初始化和 操作第二计算机实体C0MP2的初始化结构。例如,对于第二计算机C0MP2 上的操作系统是Windows⑧类型系统的情形,初始化结构包括以下蜂巢 (hives)形式下的Windows⑧注册表条目(键和值)
HKEY—LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\<^^7>/7e
>,
Vi^F/ceto""/"^" 》,
以及在Windows⑧文件夹下的INF子文件夹中存储的扩展名为.inf 的各种初始化文件。
第一计算机实体C0MP1通过其自身的可引导设备被第二操作系统 0S2操作,所述可引导设备被安排成准予访问存储媒体。因此,第二计 算机实体的操作系统0S2在第 一计算机实体的引导设备控制器的附加硬 件支持的情况下将得到"增强"。
图2a图示了详述实现本发明目的所需的步骤的流程图。在此以及 后续附图中
-步骤Sl包括操作检测和获取("探听(sniff)"或"提取")
与第一计算机实体C0MP1的硬件相对应的初始化数据集,以及将所述初 始化数据存储在存储媒体上,所述初始化数据包括与设备控制器相关的 i殳备马区动禾呈序(device driver);
-步骤S2包括操作将驱动程序文件拷贝到驱动程序的第二操作 系统0S、2的储存库(repository)中以及从第 一计算^/L实体的操作系统 0S1读取在步骤Sl中提取的数据;
-步骤S3包括操作为目的地系统对来自步骤Sl的初始化数据进 行适配(adapt),在此目的地系统是第二计算机实体C0MP2的操作系 统0S2;
-步骤S4包括操作在目的地系统(在此是第二计算^/L实体C0MP2 的操作系统0S2)中把来自步骤S3的已适配的初始化数据插入和安装 ("注入")到目的地计算机C0MP2的初始化结构中;
-步骤S5包括使第一计算机实体C0MP1能够用包含第二操作系统 0S2的媒体来引导(例如借助于从第二 C0MP2到第一 C0MP1计算机实体 的盘驱动器转移,或者通过设置虚拟驱动器系统以使得先前被用于引导 第二计算机实体C0MP2的虚拟驱动器现在被用于引导第一计算机实体 C0MP1),从而准予第一计算才几实体C0MP1访问所述々某体;
-步骤S6包括步骤使用存储在步骤S5中所提到的媒体上的第二 操作系统0S2中的新近修改的初始化结构来引导第一计算机实体 C0MP1,以便对第一计算机实体C0MP1中的设备控制器进行访问和操作。
上述用于存储来自第一计算机C0MP1的初始化数据的存储媒体例如 是硬盘驱动器、CD-R0M、 USB钥(key)或远程网络存储储存库,但是决 不限于这些示例。
图2b举例说明了简单的实施例,图示了在图2a中描述的步骤。第 一计算机C0MP1以及第二计算机C0MP2与上文所述的一样并且经由网络 接口控制器彼此连接。第一步骤Sl (图2a)包括从第一计算机C0MP1 "提取"前述的初始化数据并且将所述数据存储在存储媒体(例如可拆 卸USB钥或软盘)上。USB钥或软盘然后可被带到第二计算机C0MP2以 便继续进行该过程。
第二步骤S2包括将驱动程序拷贝到目的地计算机C0MP2以及读取 在步骤Sl中提取的数据。第三步骤S3包括对初始化数据进行适配以便 与目的地计算机C0MP2兼容和/或相一致(coherent )(或者更具体地,
使用第二计算机的操作系统0S2进行)。当尝试使用C0MP1的硬件来引 导第二操作系统0S2时,当系统体系结构和操作系统相异时,这是^艮重 要的。然而,这总是需要的,即使当利用相同的操作系统来引导第一计 算机C0MP1和第二计算机C0MP2的时候也是如此。
适配和插入数据的步骤S3和S4 (图2a )通常是与插入步骤S4 —起 同时执行的,并且通常是在相同的序列中执行的。然而,适配还可以在 提取操作之后并且在包含第二操作系统0S2的媒体上的存储之前#支#1 行,从而剩下将初始化数据简单注入第二计算机COMP2的初始化结构中。
接下来将使包含操作系统0S2的媒体对第一计算机C0MP1的设备控 制器可用(步骤S5),这将允许它控制在笫一计算机C0MP1中存在的引 导设备,然后使用它的操作系统0S2来从该设备引导(步骤S6)。
尽管在这个例中,包含操作系统0S2的媒体HDD2就计算机实体 C0MP2而言位于本地,但是当然可以将媒体HDD2实现为远程存储的虚拟 驱动器。插入步骤4仍然会通过第二计算机实体C0MP2而进行,并且仍 然会使HDD对第 一计算机C0MP1可用以便用它来引导。
有利的是,在步骤S3中执行的适配的至少一部分是在第二操作系 统0S2的配置的功能中执行的(优选地,在第二操作系统0S2中存在的 初始化数据的功能中执行)。
在一个实施例中,在步骤S3中执行的适配步骤(步骤c)(依照所 附权利要求的表述)包括对在步骤S1中注册的UUID数据进行适配以匹 配在第二操作系统0S2中存在的UUID数据。
这个实施例在下文中祐:详述。
在这个实施例中(该实施例例如可以被实现成为第二计算机实体 C0MP2适配来自第一计算机实体C0MP1的数据,诸如作为步骤S3的一部 分所实现的那些),人们可以利用在系统注册表中存储的UUID (通用唯 一标识符)数据的修改,所述系统注册表被第一操作系统0S1和第二操 作系统0S2用作设置、配置和初始化数据或参数的主储存库。
在这样的实施例中,这种修改,作为步骤S3的一部分,会对UUID 进行适配,这构成了步骤Sl的所收集的初始化数据的一部分。这个 UUID,在其目标目的地处,能够:故记录在第二操作系统0S2系统注册表 的各个区域中,而不管是作为独立的注册表键、值名称还是值数据,也 不管是作为键的一部分、值名称或值数据都能够被记录。这个适配能够
是例如使用与先前提取的用于与第二计算机实体的操作系统OS2相 一致 的UUID不同的UUID,例如通过在执-f亍适配(步骤S3 )时重新l吏用存在 于第二计算机实体的操作系统0S2中的可引导设备控制器的UUID。
接下来是根据步骤S3对此进行说明的适配的示例。它在两个计算 机实体C0MP1、 C0MP2上执行,每个计算机实体操作Windows⑧操作系统 并且每个计算机实体使用网卡作为它们的可引导设备控制器。
在执行任何操作之前,笫一计算机实体C0MP1例如可以具有如下存 在于其系统注册表(0S1)中的细节
Path to network cards classl、0003 *DriverDesc*>= *Broadcom NebXtr咖e Gigabit Ethernet' *MatchingDeviceId* =■ *pci\verL_"e4&dev_167d&subsys_05771014' '恥tCfgl加tanceld' - *《B9S08SS -20K6- 7C6-9403-3M 3ACl€C")* \Iiinkage *Bind,-…
* \Device\《挑0柳"OSC"7CC"403-3為"2AC"C")" Parameters^ Parameteirs、Intej:faces、《B9508SK4-20""7CC-9403-3JU"AC"C")
第二计算机实体COMP2可以具有如下存在于其系统注册表(OS" 中的细节
Path to network cards class]\00013 *Dr:LverDesc, *Via Rhine II network controller1* MatchingDeviceld, - pclAv節一1106一dev3065
*NetCfgInstanceI<r a ,《07rror6A-3加0-4DCC-A39D-CS4CC29加BC)' \00" *DrlverDesc" 噢Broadco加NetXtr柳e Gigabit Ethernet* "他tchingDeviceld' = "pciAveaJUe4&devLl67dfitSubsys一0577101" ttNetCfgInstanceId* - MO7rrorSA-3DSO-4DCC-A390-CS4霣C39rB3BC》' ParametersX Par柳etersUnterface0、《O77TOrSA-3D9O-4DCC-A39D-C5MC2drB3BC》
其中Path to network cards classl
是我们将提取其细节(在步骤S1期间)的网卡的索引(index),
、DriverD的c,
是与所涉及的网卡驱动程序相对应的易记名称(friendly name),
"MatchingDeviceld
是硬件标识符,对于所讨论的网卡类型和型号是唯一的,
MNetCfgInstanceId*
是与所讨论的恰好(very)网卡的这个实例相关联的而ID,
〖Path to TCP工P network protocol configuration] 、Linkage
是能够使用TCP/IP网络协议的网卡被列出并且通过它们的与
NetCfglnstanceld'相对应的UUID引用的地方, [Path to TCPIP network protocol configurationl
是TCP/IP组件存储其能够使用的每个网络控制器的配置参数并且
再次通过它们的与'條tCfglnst助celd'相对应的UUID引用的地方。
对初始化数据(以上注册表细节是其一部分)进行适配的步骤S3 包括确保其变得一致以供由目标系统使用,在此目标系统是第二计算才几
实体C0MP2。
第 一计算机COMP1实体的注册表数据因此被拷贝到第二计算机实体 C0MP2, j旦是以如下方式进4亍了适配
—(Path t。 network cards class〗\<Index0fNetworkCaraDriverRepi:e8entation> 一皮g酉己^ 与第二计算机实体的操作系统中先前存在的内容相一致,即,在相同的 计算机实体中不存在两个相同的路径(在我们的示例中,这个索引被提
取为0003并且^:插入作为0014。这可能是由索引0003和0013已经存 在于0S2的注册表配置中的事实引起的),
-从第一计算机实体C0MP1拷贝的,NetCfgl加t幼celd'被适配成反映第 二计算才几实体的'NstCfglnstanceld* 。
作为 这些适配的 结 果 ,
[Path to TCPIP network protocol configuration) \Iiinkage 以 及
[Path to TCPIP network protocol configurationj将仅具有 一 个冊ID ^吏得实际
上有两个实际网卡"指向"该条目。
注意到,本示例没有列出使用UUID的所有地方,原因在于太多了 以致无法在这里全部列出。本发明的优点是清楚的,重新使用现有的兼 容UUID (该UUID预先存在于0S2中)比在注入之后尝试再创建一致性 设置更为容易。
在步骤S3中执行的适配步骤的一部分因此是在第二操作系统0S2 的配置的功能中执行的,以便使其与存在于第二计算机操作系统0S2上 的配置相一致。
对于类似设备或设备控制器而言,这种适配在使重新使用当前已知 的和在第二 (目标)计算机实体C0MP上的现有数据(例如UUID)成为 可能的情况下尤其有用,原因在于其使得插入过程更加简单且简短。在 这种情况下,在步骤S3期间现有数据被用作模板使用以便有利于适配 和插入。
然而,如果新的UUID;f皮使用,则在步骤S4所涉及的插入过程会更 长且更复杂,原因在于其涉及需要扫描整套第二操作系统0S2的配置数 据以确定新的UUID必须纟皮插入何处以及如何插入。这又是对先前所提 取的数据进行适配的另一种方式,即通过计算新的UUID并将其用于^皮 插入的数据。适配步骤于是会需要扫描整个系统注册表,在步骤S4之 前检测预先存在于第二操作系统0S2中的UUID的存在以及添加预先存 在和使用该预先存在的UUID的相同条目,其中所述预先存在的UUID祐二 新的UUID替才奐。
新的UUID甚至可以是所提取的UUID。然而,它不是所提取的数据 到第二操作系统OS2的系统注册表中的简单"拷贝和粘贴,,。例如,TCP/1P
协议在提取时可能尚未被安装在第一操作系统0S1中,于是相关的条目
就不能被插入。适配步骤于是将需要创建相关的条目以便使"待插入的
设备,,在插入之前正好作为在笫二操作系统0S2中预先存在的相同类型 的设备(在我们的示例中是网卡控制器)来工作。
在可以构成使得从第一计算机实体C0MP1提取的数据(来自步骤Sl ) 适应于第二计算机实体C0MP2(在步骤S3期间)的另 一示例性实施例中, 可以具有对从第一计算机实体C0MP1检测和拷贝的文件或数据进行重命 名以便使它们不会覆盖(overwrite)第二计算机实体C0MP2中的目的 地数据的资源。在这种情况下,对这些重命名文件或数据(例如包含在 注册表数据中的那些)的引用必须反映和遵循这样的重命名。此外,还 可以具有用于修改对所提取的文件的引用和修改从第 一操作系统0S1的 系统注册表提取的数据以便与笫二操作系统0S2注册表相一致和/或兼 容的资源,或者具有甚至修改第二操作系统0S2的配置结构以创建对所 注入的数据(在步骤S4)的一致性引用的资源。
因为上述方法依赖于对初始化数据的转移和适配,所以其不限于单 个模式的操作、执行或甚至环境。该方法甚至还能够利用任何类型的目 的地系统(假设它们是即插即用兼容的)来实现。该组可以包括诸如如上 所述的Windows 、 Linux、 MAC 0SX , FreeBSD或Unix⑧之类的操作系 统。
例如,在所讨论的操作系统是Mac intosh OS X类型系统的情况下, 初始化结构包括通常由内核(kernel)和设备控制器驱动程序使用的各 种牙刀始 4匕和酉己置文 4牛, 例 ^!口 /usr/src/sys 和 /System/Library/Extensions下的配置文件,然而,它们可以出现于不 同的位置。在所讨论的操作系统是Linux类型系统的情况下,初始化结 构包括通常由内核和设备控制器驱动程序使用的各种初始化和配置文 件,例如/usr/kernel/drv中的配置文件,然而它们可以出现于不同的^f立 置。
在所有情况下,针对目标系统(第二计算机实体C0MP2)的与步骤 S 3相对应的任何这样的数据适配都旨在如果可引导设备和可? 1导设备 控制器的安装已经被恰当地(duly)并且在物理上安装在第二计算机实 体上,那么再现已经获得的结果或行为。本发明的部署决不修改低层的 系统属性。
上述实施例描述了包括彼此的直接链路的两个计算机之间的通信, 例如通过网络彼此利用对方来引导。用于存储初始化数据和将初始化数
据从第一 C0MP1转移到第二 C0MP2计算机实体的存储媒体是可拆卸J 某 体,在所述示例中是USB钥。图3图示了相同的两个计算机实体C0MP1、 C0MP2,还包括网络接口卡(NIC)。然而,这个实施例可以访问具有存 储媒体的第三计算机实体REMOTE (远程)(可能是服务器机器),并且 其能够例如通过以太网网络担当第一 C0MP1计算才几和第二 C0MP2计算才几 之间的链路。这并非将第三计算机实体限于担当两个计算机之间的存储 媒体和链路,而是仅说明这样的思想来自步骤S1的初始化数据不是 必须在物理上从机器转移到机器,而是可以使用预先存在的基础i殳施 (infrastructure)。如果例如初始化数据集先前^皮聚集并存储在第三 系统(例如服务器REMOTE)上,则它将足以经由以太网直接将该数据, 或将诸如电子邮件之类的其相关联的任何服务转移到第二计算机实体 C0MP2以供适配(步骤S3)和注入(步骤S4),以便又使用新的初始4匕 结构来引导第一计算机C0MP1。
因此,4艮清楚的是,从第一计算机C0MP1获取的初始化数据能够4皮 存储和注册在机器REMOTE上,所述机器REMOTE还能^皮笫二计算机C0MP2 经由网络接口卡访问。还将会很清楚的是,机器REMOTE更简单地可以 是能被所有计算机实体访问的虚拟盘VDD (图3)。
如上所示,使第一计算机实体能够用第二计算机实体的操作系统 0S2进行引导所需要的全部就是安装在第一计算机实体C0MP1上的可引 导设备和与安装在第 一计算机实体中的硬件有关的初始化数据集。引导 中的计算机实体将总是需要可引导设备,以及可引导设备控制器。因此,
在本发明中给出的解决方案完全可缩放到多个计算机,如图4中所示。 图4图示了从第二计算机操作系统0S2 (或其拷贝)来操作的多个第一 计算机COMPla、 C0MPlb、 COMPlc,并且所述多个第一计算机通过网绍4皮 此链接(link)。包括0S2的文件实际上被存储在驻留(home)在虚拟 盘驱动器服务器VDD上的虚拟盘驱动器上。第一计算机实体C0MPla、 C0MPlb、 COMPlc是通过使用它们的网络接口控制器NIC利用所述虚拟驱 动器来引导的。为了实现在本发明中所阐述的解决方案,针对当前实施 例,重复如上所阐述的步骤S1到S6就足够了。因此,对于第一计算才几 C0MPla、 COMPlb和C0MPlc中的每一个,将"提取,,(步骤Sl )初始化
数据集并且将它们存储在存储媒体上,所述存储媒体是网络连接的存储
媒体或者可拆卸的存储媒体。初始化数据然后将被单独地适配(步骤S3 ) 以供第二操作系统0S2使用,并且经由第二计算机实体C0MP2被单独地 插入(或"注入,,)(步骤S4)第二操作系统0S2的初始化结构中。
虚拟盘系统VDD然后被配置成使得存储着包括第二操作系统0S2的 文件的虚拟驱动器被第一计算机实体C0MPla、 COMPlb和COMPlc中的每 一个通过网络链路而作为可引导驱动器共享,以便利用操作系统0S2来 引导(步骤S6)各系统中的每一个。
以下将给出本发明在第一和第二计算机实体之间的物理连接不存 在的情况下的另外的实施例。换言之,第一和第二计算机实体这二者都 是独立的实体,就如对家庭设置(home setup)而言可能是普遍可见的 实体。
在这个情况下,能够实现允许通过对硬件的物理转移而进行的通 信,如在图5a和5b中所图示的。
涉及提取初始化数据(步骤Sl)、对数据进行适配(步骤S3)以 及将数据注入第二计算机的操作系统(步骤S4)的步骤S1到步骤S4, 如前述实施例中任何一个所描述的那样以相同的方式进行,并且使用可 拆卸的媒体作为初始化数据的存储设备来进行。
然而,在用于将计算机实体C0MP1、 C0MP2与虚拟共享引导驱动器 链接在一起的网络连接不存在并且因此为了经由网络利用第二计算机 实体的操作系统0S2来引导第一计算机实体C0MP1的情况下,能够实现 在注入(步骤S4 )已经发生之后在物理上将存储媒体HDD2转移到第一 计算机C0MP1。因此在该实施例中,步骤S5还需要使第二存储媒体HDD2 与第二计算机C0MP2断开连接以及在第一计算机C0MP1中重新连接々某体 HDD2的操作。第二计算机实体0S2的操作系统将因此存在并被连接到第 一计算机实体C0MP1。 一旦包含第二操作系统0S2的媒体与第一计算机 C0MP1之间的连接可用,第二操作系统0S2就能够直接引导第一计算机, 如在步骤S6中所描述的。
如果硬盘已经存在于第一计算机C0MP1中,则这个第一硬盘将会作 为引入的(imported)石更盘HDD2的从。
上i实施例引起以下可能性例如使包含用户的典型系统配置的单 个主硬盘驱动器在故障的第一计算机中被使用和安装。这将实现对^L障
系统的抢救尝试(rescue attempt),或者至少实现对存储在第 一计算 机的硬盘驱动器上的数据的访问。
类似地,再次在第一和第二计算机实体之间的连接不存在的情况 下,在下文中给出另外的实施例。
图6a和6b图示了过程。这个过程不包含如在上一实施例中所/^开 的对硬件的物理转移,而是将第二计算机的、包含操作系统0S2的石更盘 驱动器的内容拷贝("克隆")到第一计算机的存储媒体HDDl,从而准 予第一计算机C0MP1访问第二计算机的操作系统0S2。
图6a给出了针对图5a所描述的相同的基本步骤。图6a的不同在于, 步骤S5涉及对第二计算机的、包含第二计算机的操作系统0S2的存储 媒体HDD2进行克隆,而不是实现涉及硬件的物理转移的步骤S5。
由此,第一计算机实体的存储媒体HDD1另外还包括第二计算机的 存储媒体HDD2的全部,包括操作系统0S2和在步骤S4中注入的新的初 始化结构。
在图6b中示出的过程的其余部分与图5b相同,因此第一计算才几 C0MP1能够利用笫二计算机的操作系统0S2来引导,其中第二计算^/L的 操作系统0S2现在存在于第一计算机的存储媒体HDD1中。
除了硬件考虑因素之外,从第一计算机实体提取初始化数据以及注 入第二计算机实体的整个过程是由计算机实体程序来执行的。它包括用
于实现上述方法的指令。
计算机实体程序可以是用于步骤Sl中的提取的指令代码集。这可 以跟随有用于执行步骤S2(读取数据并且将它们中的一些拷贝到包含文 件的媒体,所述文件总的来说包括操作系统0S2)、步骤S3(对数据进 行适配)以及步骤S4 (将数据插入第二计算机实体操作系统文件和内部 结构)的另外的代码。可替换地,提取器程序之后可以有安装在第二计 算机实体上的独立、互补(complementary )的程序实体,其本身在第 二计算机实体的操作系统上执行步骤S3和S4。
本发明还旨在提供这样的计算机实体程序,该程序的算法能够通过 与图2a中所绘出的流程图类似的流程图来说明。将会注意到的是,手 动获取初始化数据并且以一致和/或兼容的方式将它们转移到旨在供第 二操作系统使用的正确的数据结构对典型用户而言是过分苛求的。有利 地,根据本发明的计算机实体程序自动地提供这样的功能性。
如将会理解到的那样,本发明没有将其本身限制于仅作为示例描述
的实施例;本发明还扩展到其他实施例。 因此,其决不限于
-操作系统的类型,只要它是即插即用兼容的即可,
-存在的外围设备(硬盘驱动器、网络接口卡或其他),本质是能 够使用第二计算机实体的操作系统来引导笫一计算机实体,
-通过第二计算机实体来引导的第一计算机实体的数目,
-用于拷贝初始化数据的存储器的类型,
-或者甚至任何计算机实体之间的连接的类型。
此外,本发明不限于如上所限定的步骤的特定次序。例如用于对所 读取的数据进行适配的步骤c)(在图2a中由S3指代)能够在步骤d) (在图2a中由S4指代)之后执行,旨在拷贝这些数据。
权利要求
1.一种用第二计算机实体的操作系统来操作至少一个第一计算机实体的方法,所述第一和第二计算机实体是即插即用兼容的并且用各自的第一和第二即插即用兼容的操作系统来操作,所述第一计算机实体包括-至少一个可引导设备,以及-用于操作所述可引导设备的至少一个即插即用兼容设备控制器,并且存储-至少一个初始化数据集,和-驱动程序文件,所述数据和文件被所述第一操作系统用来初始化和操作所述设备控制器,所述第二操作系统的计算机文件被存储在媒体中,所述媒体还存储着旨在由所述第二操作系统使用来初始化和操作至少所述第二计算机实体的初始化结构,其中用第二操作系统通过所述可引导设备来操作所述第一计算机实体,所述可引导设备被安排成准予访问所述媒体,并且其中所述方法包括以下步骤a)检测和注册在所述第一计算机实体中存储的所述初始化数据集和驱动程序文件(S1),b)将所述驱动程序文件拷贝到所述第二操作系统的文件中(S2),c)为所述第二操作系统,对所述文件中的每一个进行适配,以及对所述初始化数据进行读取和适配(S3),d)将所述初始化数据注入到所述第二操作系统的初始化结构中(S4),e)使包含所述第二操作系统的所述媒体对所述第一计算机可用(S5),f)利用所述第二操作系统来初始化所述第一计算机实体(S6),所述初始化结构被所述第二操作系统用来初始化和操作所述可引导设备的所述设备控制器,并且在利用所述第二操作系统初始化所述第一计算机实体之后,所述设备控制器控制对存储所述第二操作系统的计算机文件的所述媒体的访问。
2. 如权利要求1所述的方法,其中所述第二操作系统是Windows 类型的操作系统,并且其中所述初始化结构包括Windows⑧注册表条目, 所述注册表条目包括键和值。
3. 如前述权利要求中任何一项所述的方法,其中所述设备控制器是 包含在所述第一计算机实体中的网络接口控制器(NIC),并且其中所 述媒体是能被所述第二计算机经由所述网络接口卡访问的网络服务器。
4. 如前述权利要求中任何一项所述的方法,其中所述初始化数据集 和驱动程序文件被注册在网络服务器上,并且通过所述网络执行步骤b) 的拷贝和步骤c)的读取。
5. 如前述权利要求中任何一项所述的方法,其中为了利用所述第二 计算机实体操作系统来操作多个第 一计算机实体,针对第 一计算机实体 中的每一个重复步骤a) 、b)、c)、d)、e)和f)。
6. 如权利要求1所述的方法,其中所述第一计算机实体的所述设备 控制器是硬盘控制器,并且其中在步骤f)之前,包括所述第二操作系 统文件的所述第二计算机实体的系统硬盘(HDD2)被安装到所述第一计 算机实体中。
7. 如权利要求1所述的方法,其中所述第一计算机实体的所述设备 控制器是用于控制第一计算机硬盘的硬盘控制器,并且其中在步骤f ) 之前,包括所述第二操作系统文件实体的所述第二计算机的系统硬盘(HDD2)被克隆到所述第一计算机硬盘上。
8. 如前述权利要求中任何一项所述的方法,其中在步骤a),所述 初始化数据集和驱动程序文件被存储在可拆卸存储装置上,并且在步骤 c )和d ),所述第二计算机实体读取所述可拆卸存储装置以便将所述初 始化数据集和驱动程序文件注入到所述第二计算机操作系统的所述初 始化结构中。
9. 如前述权利要求中任何一项所述的方法,其中在步骤c)中执行 的所述适配步骤包括对在步骤a )中注册的UUID数据进行适配以匹配在 所述第二操作系统(0S2)中存在的UUID数据。
10. 计算机实体程序,其特征在于,它包括用于实现如前述权利要 求中任何一项所述的方法的指令。
11. 如权利要求10所述的计算机实体程序,其中它包括用于执行步 骤a)的检测和注册的指令集,以及用于执行步骤b)的拷贝、步骤c) 的读取和适配以及步骤d)的注入的补充指令集。
12. 数据存储媒体,包括如权利要求10或权利要求11所述的计算机 实体程序的程序代码指令。
全文摘要
一种利用第二计算机实体的操作系统来操作至少一个第一计算机实体的方法,并且其中所述方法包括以下步骤a)检测和注册在第一计算机实体中存储的初始化数据集和驱动程序文件(S1),b)将所述驱动程序文件拷贝到第二操作系统的文件中(S2),c)为第二操作系统,对所述文件中的每一个进行适配,以及对所述初始化数据进行读取和适配(S3),d)将所述初始化数据注入第二操作系统的初始化结构(S4),e)使包含所述第二操作系统的所述媒体对所述第一计算机可用(S5),f)利用第二操作系统来初始化第一计算机实体(S6),所述初始化结构被所述第二操作系统用来初始化和操作所述可引导设备的设备控制器。
文档编号G06F9/445GK101371228SQ200680052727
公开日2009年2月18日 申请日期2006年12月12日 优先权日2005年12月13日
发明者P·奥菲勒, Y·加特诺 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1