一种在主机系统中安装操作系统的方法和装置
技术领域
本发明涉及操作系统的安装,更具体地,涉及一种在主机系统中安装操作系统的方法和装置。
背景技术
在主机系统中,操作系统(OS)的安装过程是一个耗费时间的过程,通常的安装过程为:用户从OS镜像启动进入OS的安装流程。OS安装过程中安装程序会通过人机交互界面要求用户输入必要的用户参数,如磁盘格式化策略、时区设定、语言选择等等。对一些硬件环境,OS安装程序需要用户安装特定的驱动程序,如RAID驱动程序等。一般地,一次完整的OS安装过程大概需要30分钟到1个半小时,在此期间用户需要守候在机器前应答OS安装程序的问题。
由于上述过程耗时,并且耗人力资源,OS的无人值守安装方法被开发出来,在OS的无人值守安装方法中,用户从OS镜像启动进入OS的安装流程后,就可以离开机器静候OS完成安装,整个OS安装过程不需要用户干预。对于无人值守安装,OS安装程序需要的各种用户参数,驱动程序和/或者应用程序等,都可以通过应答文件来提供。
目前OS无人值守安装方法需要利用外部存储设备存放“无人值守应答文件”和驱动程序。该方案一般要使用一个额外的外部存储(一般是一个USB存储介质、移动硬盘或floppy软盘等存储介质)来存放应答文件和OS安装光盘上所缺失的硬件驱动程序。该技术方案的缺点在于在多台服务器同时部署时,用户不得不准备和被部署的服务器相同数目的外部存储设备,或启动网络设备。
发明内容
基于上述现有技术的缺陷,需要一种OS无人值守安装方法和系统,该方法和系统不需要任何外部的存储或网络设备,从而降低了主机系统部署的资源需求。
根据本发明的一个方面,提供了一种在主机系统中安装操作系统的方法,包括:
在预安装环境下接收操作系统安装过程中需要的用户参数,生成无人值守安装包;
将无人值守安装包传输到基板管理控制器BMC;
对BMC发送命令,该命令指示BMC将无人值守安装包挂载成一个虚拟的USB设备;以及
响应于接收到BMC应答,在主机系统中安装操作系统,其中在安装过程中,从BMC虚拟的USB设备中获得无人值守安装包,从而得到所述安装过程中需要的用户参数。
根据本发明的另一个方面,提供了一种在主机系统中安装操作系统的系统,包括:
接收模块,被配置为在预安装环境下接收操作系统安装过程中需要的用户参数,生成无人值守安装包;
传输模块,被配置为将无人值守安装包传输到基板管理控制器BMC;
命令模块,被配置为对BMC发送命令,该命令指示BMC将无人值守安装包挂载成一个虚拟的USB设备;以及
安装模块,被配置为响应于接收到BMC应答,在主机系统中安装操作系统,其中在安装过程中,从BMC虚拟的USB设备中获得无人值守安装包,从而得到所述安装过程中需要的用户参数。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图;
图2示出了BMC与主机之间的接口;
图3示出了根据本发明的一种实施方式的一种在主机系统中安装操作系统的方法的流程;以及
图4示出了在主机系统中安装操作系统的系统的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
在主机系统中,现有的操作系统的无人值守安装流程可以分为两部分,第一部分是安装前的准备流程,包括,从预安装环境启动、配置硬件、升级固件、将现有的装有无人值守安装包的硬件连接到主机系统上。第二部分是安装流程,从OS镜像启动进入OS的安装流程,直到操作系统安装完毕。第一部分需要的时间很短,真正的无人值守是发生在第二部分,因为该部分需要的时间较长。
在一个主机系统里,存在一个片上系统-基板管理控制器(Baseboard ManagementController,简称BMC),BMC可以用来提供智能平台管理的智能,控制系统的管理软件和平台管理硬件之间的接口,提供自主监视、事件记录和恢复控制功能,并可作为系统管理软件和智能平台管理总线(IPMB)与智能机箱管理总线(ICMB)接口间的网关使用。BMC自备电源,并自动地监控系统健康状况。如果发现任何被控单元异常,它能立即采取行动,例如记录事件、报警、自动关机或重启动。与BMC相关联的是一组无源内存,用来存储传感器的数据(Sensor Data Records,SDR)、系统事件记录文件,以及一些单元信息如序列号和部件号信息等。IPMI通过指定通用、精简、基于消息的接口,将信息传输到管理微控制器,实现软件与硬件信息的分离。
图2示出了BMC与主机之间的接口,BMC和主机之间包含三个接口,第一个是文件传输服务接口(File server interface),第二个是BMC虚拟USB接口(BMC’s virtual USBinterface),第三个接口是控制命令接口(Control Command)。文件传输服务接口使用TFTP/FTP通信协议,用于上载和下载文件;BMC虚拟USB接口能够创建一个虚拟USB设备,该虚拟USB设备能够被主机访问;控制命令接口可以为IPMI、CIM或者其它任何类型的接口,是用来要求BMC执行某种操作的接口。
上述的BMC接口更使得操作系统安装可以利用现有主机上的BMC来创建USB,从而使得操作系统无人值守安装过程不需要任何外部的存储或网络设备,从而降低了产品的开发和维护的资源需求。
图3示出了根据本发明的一种实施方式的一种在主机系统中安装操作系统的方法的流程。根据图3,在步骤S301,在预安装环境下接收OS安装过程中需要的用户参数,生成无人值守安装包;在步骤S302,将无人值守安装包传输到BMC;在步骤S303,对BMC发送命令,该命令指示BMC将无人值守安装包挂载成一个虚拟的USB设备;在步骤S304,响应于接收到BMC应答,在主机系统中安装操作系统,其中在安装过程中,从BMC虚拟的USB设备中获得无人值守安装包,从而得到所述安装过程中需要的用户参数。
预安装环境是指一个可在目标部署系统上运行的,用来配置硬件,并且调用安装程序安装操作系统的一个环境。预安装环境一般是通过光盘、PXE、USB或者硬盘上的自启动镜像来启动的,本发明中可以采用任何的预安装环境,例如windows PE或者linux等,不要求和被安装的操作系统兼容。在预安装环境下,用户可以预先输入OS安装过程中需要的各种参数,如磁盘格式化策略、时区设定、语言选择等。用户还可以对硬件环境进行配置,如更新固件,配置RAID array,配置Fiber Channel,等等,这些参数在预安装环境下被组织成OS安装过程中的应答文件。同时用户也可以指定在OS安装完成后需要自动安装的设备驱动程序和/或应用程序安装文件。本发明中在预安装环境下,用户的输入形成的应答文件以及指定的安装文件可以用于生成一个无人值守安装包,即无人值守安装包中包括在OS安装过程中的应答文件,优选地,还包括设备驱动程序和/或应用程序安装文件等。
OS安装过程中的应答文件的格式来源于各个操作系统自定的标准,往往是一个可读的文本文件。文件内容包括了用户在安装过程中所需要输入的所有信息,也可以包括所需要驱动的设备的驱动文件的路径,用于植入驱动程序。这里提供了应答文件的一部分截选,描述了安装者所选择的时区和语言的信息。
在步骤S302,将无人值守安装包传输到BMC可以利用BMC与主机之间的文件传输服务接口,直接进行传输。
在步骤S303,对BMC发送命令,该命令指示BMC将无人值守安装包挂载成一个虚拟的USB设备,该步骤可以利用BMC与主机之间的控制命令接口,BMC接收到该命令后,会在BMC存储区生成一个虚拟的USB设备,并且将传输到BMC的无人值守安装包挂载该虚拟USB设备上。
然后,BMC会通过BMC与主机之间的控制命令接口发回应答消息,确认在BMC存储区生成一个虚拟的USB设备。在步骤S304,响应于接收到BMC应答,在主机系统中安装操作系统,其中在安装过程中,通过BMC与主机之间的BMC虚拟USB接口从BMC虚拟的USB设备中获得无人值守安装包,从而得到安装过程中所需要的用户参数。
对于不同的硬件设备,虚拟的USB会占用BMC的存储空间大概几十到上百MB空间,为了节约BMC的资源,在OS安装完成后需要释放虚拟的USB占据的存储空间,因为BMC的资源十分珍贵,里面存放了系统管理的很多功能模块,释放的空间可以被其他功能块继续利用。因此在一种实施方式中,可以在无人值守安装包的应答文件中包含第一次操作系统启动过程中会执行的程序组,该程序组中包含一个指令文件,该指令文件要求BMC移除虚拟的USB设备并删除无人值守安装包,这个指令文件可以是一个脚本文件,或者类似于批处理文件之类的文件,这样安装完成后OS的第一次启动过程中会执行该指令文件,则图3所示的方法还包括步骤S305,响应于操作系统安装完毕,首次启动操作系统,操作系统执行所述指令文件,对BMC发送命令,该命令指示BMC将虚拟的USB设备卸载并删除无人值守安装包。由于预安装的过程已经结束,首次启动了操作系统,对BMC的控制权已经转移到操作系统中,因此,是由操作系统对BMC发送命令指示BMC将虚拟的USB设备卸载。另外,应答文件中包含第一次操作系统启动过程中会执行的程序组中,还可以包括设备驱动程序和/或应用程序所在的路径,这样安装操作系统后就可以直接安装这些设备驱动程序和/或应用程序。
在另外一种实施方式中,图3所示的方法在步骤S304,响应于接收到BMC应答,主机系统中安装操作系统,其中,在接收到BMC应答后,主机系统中安装操作系统前,需要重新启动主机。在某些特定的情况下,例如基于WinPE预安装环境下安装Windows OS,是不需要重新启动主机的。但是在其它情况,一方面需要重新启动主机,以检测硬件,另一方面需要通过OS光盘或者OS镜像启动主机以开始安装过程。因此,在一般的情况下,是需要主机重新启动的。
通过上述方法,用户就可以在运行预安装环境,输入必要的参数和信息,当OS镜像启动后,就执行OS无人值守安装。期间不需要任何的外部设备,也不需要用户守候在机器前应答OS安装程序的问题。
在同一个发明构思下,本发明还公开了一种在主机系统中安装操作系统的系统,图4示出了在主机系统中安装操作系统的系统400的结构框图,根据图4,该系统400包括:接收模块401,被配置为在预安装环境下接收操作系统安装过程中需要的用户参数,生成无人值守安装包;传输模块402,被配置为将无人值守安装包传输到BMC;命令模块403,被配置为对BMC发送命令,该命令指示BMC将无人值守安装包挂载成一个虚拟的USB设备;以及安装模块404,被配置为响应于接收到BMC应答,在主机系统中安装操作系统,其中在安装过程中,从BMC虚拟的USB设备中获得无人值守安装包,从而得到所述安装过程中需要的用户参数。
在一种实施方式中,所述无人值守安装包中包括OS安装过程中的应答文件,该应答文件包括在预安装环境下输入的操作系统的安装过程中需要的用户参数。在一种优选的实施方式中,所述无人值守安装包中还包括设备驱动程序和/或应用程序安装文件。在一种优选的实施方式中,所述无人值守安装包的应答文件中还包含第一次操作系统启动过程中会执行的程序组,该程序组中包含要求BMC移除虚拟的USB设备并删除无人值守安装包的指令文件。在进一步的实施方式中,该系统还包括:卸载模块,被配置为响应于操作系统安装完毕,首次启动操作系统,操作系统执行所述指令文件,对BMC发送命令,该命令指示BMC将虚拟的USB设备卸载并删除无人值守安装包。
在一种实施方式中,所述安装模块还包括重启模块,被配置为在所述安装模块接收到BMC应答后,主机系统中安装操作系统前,重新启动主机。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。