掌桥专利:专业的专利平台
掌桥专利
首页

操作系统启动方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 12:24:27


操作系统启动方法、装置、电子设备及存储介质

技术领域

本发明涉及计算机技术领域,特别是涉及一种操作系统启动方法、一种操作系统启动装置、一种电子设备以及一种存储介质。

背景技术

处理器是电子计算机的主要部件之一,是电子计算机中的核心配件,其功能主要是解释计算机指令以及处理计算机软件中的数据。处理器在服务器、高性能计算机、低能耗数据中心、个人高性能计算机、高端桌面应用、高吞吐计算应用、工业控制、数字信号处理、高端嵌入式应用等产品中具有广阔的市场应用前景,对经济发展等更方面都有举足轻重的作用。

处理器板卡在使用过程中,经常出现需要多个硬盘的情况,例如在需要增加操作系统时,便需要增加该操作系统对应的硬盘。但很多情况下,即使增加了硬盘,仍然存在需要先启动原先系统盘的需求。目前,当增加新硬盘时,操作系统启动的主要过程是:首先可以人为指定读取哪个硬盘对应的系统引导文件,若需要启动未插入新硬盘之前的原先系统盘,便可以指定原先系统盘的标识,然后固件便会根据指定的原先系统盘的标识,读取并解析原先系统盘的引导文件,引导文件中的引导选项可以指示需要从哪个硬盘加载内核,以及启动哪个硬盘对应的操作系统,并且,引导选项是通过硬盘标识指示硬盘的。

由于指定了引导文件对应的硬盘标识,因此,固件可以读取到正确硬盘的引导文件;但是,由于硬盘标识可以随着各硬盘的插接位置或插接顺序而产生变化,因此在增加了新硬盘的情况下,原先系统盘的标识可能会指示其他硬盘,而原先系统盘的引导文件中的硬盘标识并未改变,因此,后续根据引导文件中的硬盘标识加载内核以及启动操作系统时,将会导致加载不到正确的内核,进而无法启动正确的操作系统。

发明内容

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种操作系统启动方法,以在增加或减少接入处理器板卡的硬盘时,能够正常启动处理器板卡原来的系统盘操作系统。

相应的,本发明实施例还提供了一种操作系统启动装置、一种电子设备以及一种存储介质,用以保证上述方法的实现及应用。

为了解决上述问题,本发明实施例公开了一种操作系统启动方法,包括:

运行固件;

通过所述固件读取预存的目标变量;所述目标变量用于指示目标硬盘对应的目标控制器的控制器信息;

在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描;

通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递;

通过所述固件加载并启动所述目标硬盘对应的内核;

根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统。

可选地,所述在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描,包括:

在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器与第一预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;

将所述目标变量所指示的所述目标控制器作为所述第一外部设备互连扫描的首位硬盘控制器,并通过所述固件进行扫描。

可选地,当所述标识信息包括所述目标控制器在第二预设扫描顺序中的排位时,所述通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递,包括:

通过所述固件将第一参数替换为所述目标控制器在第二预设扫描顺序中的排位;所述第一参数用于指示待启动的操作系统所在硬盘对应的硬盘控制器;

通过所述固件将替换后的所述第一参数向待启动的内核进行传递;

所述根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统,包括:

通过所述内核按照所述第二预设扫描顺序进行第二外部设备互连扫描;

根据所述目标控制器在所述第二预设扫描顺序中的排位,通过所述内核从扫描到的硬盘控制器中选择出所述目标控制器;

确定所述目标控制器对应的所述目标硬盘;

通过所述内核启动所述目标硬盘对应的操作系统。

可选地,当所述标识信息包括所述控制器信息时,所述通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递,包括:

将所述控制器信息作为第二参数,通过所述固件向待启动的内核进行传递;所述第二参数与所述第一参数的属性不同;

所述根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统,包括:

在通过所述内核进行至第二外部设备互连扫描时,将所述控制器信息对应的所述目标控制器与第二预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;

将所述控制器信息对应的所述目标控制器作为所述第二外部设备互连扫描的首位硬盘控制器,并通过所述内核进行扫描;

通过所述内核启动所述第二外部设备互连扫描的首位硬盘控制器对应的所述目标硬盘对应的操作系统。

可选地,所述运行固件之前,还包括:

在处理器板卡上插入新硬盘或拔除新硬盘的情况下,启动并运行所述固件;

当通过所述固件接收到所述目标硬盘的选择指令时,获取所述目标硬盘对应的目标控制器的控制器信息;

将所述控制器信息保存至所述目标变量;

重启所述固件,以使保存的所述控制器信息生效。

可选地,所述控制器信息包括所述目标硬盘对应的所述目标控制器的总线号、设备号和功能号。

本发明实施例还公开了一种操作系统启动装置,包括:

运行模块,用于运行固件;

读取模块,用于通过所述固件读取预存的目标变量;所述目标变量用于指示目标硬盘对应的目标控制器的控制器信息;

扫描模块,用于在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描;

传参模块,用于通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递;

内核启动模块,用于通过所述固件加载并启动所述目标硬盘对应的内核;

系统启动模块,用于根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统。

可选地,所述扫描模块包括:

第一互换子模块,用于在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器与第一预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;

第一扫描子模块,用于将所述目标变量所指示的所述目标控制器作为所述第一外部设备互连扫描的首位硬盘控制器,并通过所述固件进行扫描。

可选地,当所述标识信息包括所述目标控制器在第二预设扫描顺序中的排位时,所述传参模块包括:

替换子模块,用于通过所述固件将第一参数替换为所述目标控制器在第二预设扫描顺序中的排位;所述第一参数用于指示待启动的操作系统所在硬盘对应的硬盘控制器;

第一传参子模块,用于通过所述固件将替换后的所述第一参数向待启动的内核进行传递;

所述系统启动模块包括:

第二扫描子模块,用于通过所述内核按照所述第二预设扫描顺序进行第二外部设备互连扫描;

选择子模块,用于根据所述目标控制器在所述第二预设扫描顺序中的排位,通过所述内核从扫描到的硬盘控制器中选择出所述目标控制器;

确定子模块,用于确定所述目标控制器对应的所述目标硬盘;

第一启动子模块,用于通过所述内核启动所述目标硬盘对应的操作系统。

可选地,当所述标识信息包括所述控制器信息时,所述传参模块包括:

第二传参子模块,用于将所述控制器信息作为第二参数,通过所述固件向待启动的内核进行传递;所述第二参数与所述第一参数的属性不同;

所述系统启动模块包括:

第二互换子模块,用于在通过所述内核进行至第二外部设备互连扫描时,将所述控制器信息对应的所述目标控制器与第二预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;

第三扫描子模块,用于将所述控制器信息对应的所述目标控制器作为所述第二外部设备互连扫描的首位硬盘控制器,并通过所述内核进行扫描;

第二启动子模块,用于通过所述内核启动所述第二外部设备互连扫描的首位硬盘控制器对应的所述目标硬盘对应的操作系统。

可选地,所述装置还包括:

固件启动模块,用于在处理器板卡上插入新硬盘或拔除新硬盘的情况下,启动并运行所述固件;

获取模块,用于当通过所述固件接收到所述目标硬盘的选择指令时,获取所述目标硬盘对应的目标控制器的控制器信息;

保存模块,用于将所述控制器信息保存至所述目标变量;

固件重启模块,用于重启所述固件,以使保存的所述控制器信息生效。

可选地,所述控制器信息包括所述目标硬盘对应的所述目标控制器的总线号、设备号和功能号。

本发明实施例还公开了一种电子设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

运行固件;

通过所述固件读取预存的目标变量;所述目标变量用于指示目标硬盘对应的目标控制器的控制器信息;

在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描;

通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递;

通过所述固件加载并启动所述目标硬盘对应的内核;

根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统。

本发明实施例还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本发明实施例中一个或多个所述的操作系统启动方法。

本发明实施例包括以下优点:

在本发明实施例中,在固件运行的情况下,固件可以读取预存的目标变量,该目标变量用于指示用户想要启动的目标硬盘对应的目标控制器的控制器信息。固件在进行至第一外部设备互连扫描的过程时,可以将目标变量所指示的目标控制器作为扫描的首位硬盘控制器进行扫描,使得固件之后可以加载并启动目标硬盘所对应的内核,也即是能够启动到用户所需的正确的内核。另外,固件还可以在启动内核之前,将目标控制器的标识信息传参给待启动的内核,进而内核便能够根据该标识信息,启动目标硬盘对应的操作系统。如此,电子设备可以启动用户所需的正确的内核,进而能够启动用户所需的正确的操作系统。

附图说明

图1是本发明的一种操作系统启动方法实施例的步骤流程图;

图2是本发明的另一种操作系统启动实施例的步骤流程图;

图3是本发明的一种操作系统启动装置实施例的结构框图;

图4是根据一示例性实施例示出的一种用于启动操作系统的电子设备的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

在对本发明实施例进行详细说明之前,首先对相关概念以及现有技术的主要流程进行介绍。

硬盘:硬盘是计算机最主要的存储设备,其中,固定在处理器板卡上的硬盘称为板载硬盘,一台计算机通常只有一个板载硬盘,此外,处理器板卡通常还可以提供其他的硬盘插槽,可用于插入新硬盘。每个硬盘中都存储有启动一种操作系统的相关函数、文件等,因此,若要使用某个操作系统,就需要启动相应的硬盘。在本发明实施例中,将板载硬盘称为系统盘(即下文中所指原先系统盘),将新插入处理器板卡的新硬盘统称为硬盘。

硬盘控制器:硬盘控制器是处理器板卡上集成的硬盘信息转化元件,可理解为是硬盘接入处理器板卡的管理接口,硬盘控制器对硬盘进行控制、资源分配。当一个硬盘插入一个硬盘插槽时,该硬盘便可由一个相应的硬盘控制器进行管理。其中,本发明实施例中,硬盘控制器是指PCI(Peripheral Component Interconnect,外部设备互连)设备;硬盘接口一般是SATA(Serial Advanced Technology Attachment,串行高级技术附件)插槽。进行PCI扫描时,查找到的是硬盘控制器,可以由硬盘控制器驱动判断对应的硬盘接口上是否有硬盘。另外,不同的硬盘插槽具有不同的优先级,相应的,不同的硬盘控制器及插入的不同硬盘也会具有不同的启动优先级,当一个硬盘插入一个优先级低的硬盘插槽时,该硬盘的启动优先级也低。

固件:固件也即固化在硬件中的软件,用于引导硬件的工作。在实际应用中,因为各种技术限制或商业的原因,硬件厂商希望自己的硬件能被更多的软件厂商所使用,所以就需要在硬件之上做一些封装,让自己的硬件操纵起来更容易,这个时候就需要固件,它能够简化软件(例如操作系统)与硬件的交互。常见的固件有BIOS(Basic Input OutputSystem,基本输入输出系统)程序等。

内核:内核是操作系统的内部核心程序,它向外部提供了对计算机的核心管理调用,能够使用户在操作系统的界面中进行操作。

在现有技术中,若处理器板卡上除系统盘之外,新插入了其他硬盘,系统盘和其他硬盘中均包含操作系统程序,这代表计算机中目前存在至少两个操作系统,而用户在启动计算机时,需要首先启动其中一个操作系统,通常用户想要启动的都是原先系统盘对应的操作系统。但是,计算机通常的逻辑是根据PCI扫描(或称为PCI设备扫描)到的第一个硬盘控制器对应的硬盘的引导文件,启动该硬盘所对应的操作系统,并且,PCI扫描是按照硬盘控制器的优先级进行扫描的,因此,PCI扫描到的第一个硬盘控制器也就是目前优先级最高的硬盘控制器。

然而,在实际应用中,采用热插拔或非热插拔等方式插入或拔除新硬盘,均可能导致原先已有的硬盘的盘符发生变化,也就是说,盘符这一硬盘标识可能会随着各硬盘的插接位置或插接顺序而重新分配。例如,盘符A指示的是优先级最高的硬盘,也即第一个进行PCI扫描的硬盘控制器对应的硬盘,在插入或拔除新硬盘之前,原先系统盘的盘符是A,而在插入或拔除新硬盘之后,原先系统盘的盘符则可能是B,而盘符A此时可能对应到了新硬盘P,因此,在根据盘符A进行PCI扫描时,该新硬盘P便成为了第一个被扫描的硬盘控制器对应的硬盘。

但是,由于可以人为指定读取哪个硬盘对应的引导文件,因此,无论 PCI扫描的扫描顺序如何,都可以指定计算机读取原先系统盘的引导文件,而不会读取新硬盘P的引导文件,这样一来,计算机便能够读取到正确的引导文件。然而,由于原先系统盘的引导文件在编写时只考虑了只存在自己一块硬盘的情况,因此,在引导文件的引导选项中,原先系统盘的盘符是写死为盘符A的,也即是引导文件中指示固件从哪个硬盘加载内核的参数即为盘符A,以及指示内核启动哪个硬盘对应的操作系统的参数也为盘符A。但由于此时盘符A已经对应新硬盘P,因此,这将导致计算机根据盘符A,会从新硬盘P加载相应的内核,并启动新硬盘P对应的操作系统,如此,计算机便无法加载到正确的内核(原先系统盘对应的内核)。后续固件会将指示内核启动哪个硬盘对应的操作系统的参数,也即盘符A,传参给内核,但内核根据盘符A,仍然无法进入到正确的操作系统(原先系统盘对应的操作系统)。

当然,以上过程和原理解释同样适用于用户想要启动当前优先级并非最高的硬盘对应的操作系统的情况,以下将用户想要启动的当前优先级并非最高的硬盘称为目标硬盘。

本发明实施例的核心构思之一在于,可以通过一个目标变量,将用户想要启动的目标硬盘对应的控制器信息预先保存至固件中,从而固件在运行时可以读取该目标变量,并根据该目标变量,将固件进行PCI扫描时的硬盘控制器的扫描顺序进行调整,以将目标变量保存的控制器信息对应的目标控制器作为第一个被扫描的控制器,也即是将目标硬盘对应的目标控制器作为第一个被扫描的控制器,使得固件之后可以加载并启动目标硬盘所对应的内核,也即是能够启动到正确的内核。另外,固件还可以在启动内核之前,将目标控制器的标识信息传参给待启动的内核。由于目标控制器与硬盘插槽相对应,因此,目标控制器并不会随着新插入的硬盘而改变,并且目标控制器所管理的硬盘也不会随着新插入的硬盘而改变,始终是目标硬盘,因而,通过在固件中预先保存可以确定目标控制器的标识信息,将能够唯一确定正确的目标硬盘。进而内核便能够根据固件预先保存的目标控制器的标识信息,启动正确的操作系统(目标硬盘对应的操作系统)。如此,电子设备可以启动正确的内核,进而能够启动正确的操作系统。

需要说明的是,本发明实施例提供的操作系统启动方法可以适用于在 MIPS(Microprocessor without interlocked piped stages,无内部互锁流水级的微处理器)架构的处理器板卡上增加新硬盘,或者在存在多个硬盘时拔除硬盘的情况,能够应用于MIPS架构的处理器作为CPU(Central Processing Unit,中央处理器)的电子设备。

参照图1,示出了本发明的一种操作系统启动方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,运行固件。

在本发明实施例中,在处理器板卡上插入或拔除新硬盘(拔除之前处理板卡上至少已插入两个硬盘)的情况下,用户可以通过一个目标变量,将想要启动的目标硬盘对应的目标控制器的控制器信息保存在固件中,具体地,也即是可以对该目标变量进行赋值,所赋的值即为该控制器信息。

在此之后,在电子设备再次上电时,电子设备中的固件可以启动并运行。通常,固件运行后首先会对CPU、桥片、PCI设备、中断等进行初始化,其中,PCI设备也即通过PCI接口接入的设备,例如本发明实施例中的各个硬盘。固件在初始化的中后期会对PCI设备进行初始化,该步骤中即包括了 PCI扫描的步骤,PCI扫描也即是加载接入的PCI设备对应的驱动,电子设备中的各个软件正是通过驱动实现对PCI设备的控制。

步骤102,通过所述固件读取预存的目标变量;所述目标变量用于指示目标硬盘对应的目标控制器的控制器信息。

在本发明实施例中,在固件进行PCI扫描之前,固件可以读取预存的目标变量,获得目标变量的值,也即目标硬盘对应的目标控制器的控制器信息,也即是固件可以从该目标变量处获得用户想要启动的目标硬盘所对应的控制器信息。

步骤103,在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描。

在本发明实施例中,第一PCI(外部设备互连)扫描,也即是固件所执行的PCI扫描,在固件进行至第一PCI扫描,也即第一次PCI扫描时,固件可以根据目标变量中保存的控制器信息,从待扫描的各个硬盘控制器中找出目标硬盘对应的目标控制器,并调整各个硬盘控制器的扫描顺序,将目标控制器设置为第一个被扫描的硬盘控制器进行扫描。

步骤104,通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递。

在本发明实施例中,由于内核启动操作系统时,需要根据固件传递的用于指示启动哪个硬盘的操作系统的参数进行系统启动,因此,在内核启动之前,固件可以将目标控制器的标识信息传参给待启动的内核。

步骤105,通过所述固件加载并启动所述目标硬盘对应的内核。

在本发明实施例中,固件在完成传参以及其他必须操作之后,可以加载并启动目标硬盘对应的内核。由于固件本身的机制是启动第一个进行PCI扫描的控制器对应的硬盘的内核,因此,在将目标硬盘对应的目标控制器作为固件PCI扫描的第一位的情况下,固件便能够默认加载并启动目标硬盘对应的内核,也即是能够启动正确的内核。

步骤106,根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统。

在本发明实施例中,目标硬盘对应的目标控制器的标识信息已由固件传参给目标硬盘对应的内核,因此,目标硬盘对应的内核在启动后,便可以根据该标识信息,确定待启动的操作系统即为目标硬盘对应的操作系统,进而可以启动正确的操作系统。

在本发明实施例中,在固件运行的情况下,固件可以读取预存的目标变量,该目标变量用于指示用户想要启动的目标硬盘对应的目标控制器的控制器信息。固件在进行至第一外部设备互连扫描的过程时,可以将目标变量所指示的目标控制器作为扫描的首位硬盘控制器进行扫描,使得固件之后可以加载并启动目标硬盘所对应的内核,也即是能够启动到用户所需的正确的内核。另外,固件还可以在启动内核之前,将目标控制器的标识信息传参给待启动的内核,进而内核便能够根据该标识信息,启动目标硬盘对应的操作系统。如此,电子设备可以启动用户所需的正确的内核,进而能够启动用户所需的正确的操作系统。

参照图2,示出了本发明的另一种操作系统启动方法实施例的步骤流程图,具体可以包括如下步骤:

步骤201,在处理器板卡上插入新硬盘或拔除新硬盘的情况下,启动并运行所述固件。

在本发明实施例中,在用户在处理器板卡上插入新硬盘或拔除新硬盘之后,第一次启动电子设备时,电子设备首先会启动并运行固件。

步骤202,当通过所述固件接收到所述目标硬盘的选择指令时,获取所述目标硬盘对应的目标控制器的控制器信息。

在本发明实施例中,固件运行后可以显示一个硬盘选择界面,用户可以在硬盘选择界面中选择想要启动的目标硬盘,从而固件可以接收到目标硬盘的选择指令。当一个硬盘在PCI总线上挂载之后,电子设备便可以获取到该硬盘对应的硬盘控制器的控制器信息,因此,固件在接收到目标硬盘的选择指令时,可以获取到接入总线的目标硬盘对应的目标控制器的控制器信息。

在实际应用中,可选地,所述控制器信息可以包括目标硬盘对应的目标控制器的总线号、设备号和功能号。通常,PCI总线共有256条,每条总线可以配置32个多功能设备,每个多功能设备又可以安装8个功能子设备,因此,可以通过总线号、设备号和功能号,唯一的标识一个硬盘控制器,相应的,也就能够唯一的确定一个硬盘。

步骤203,将所述控制器信息保存至所述目标变量;所述目标变量用于指示目标硬盘对应的目标控制器的控制器信息。

在本发明实施例中,可以通过一个预设的目标变量,将想要启动的目标硬盘对应的目标控制器的控制器信息保存在固件中,具体地,可以对该目标变量进行赋值,所赋的值即为该控制器信息。

步骤204,重启所述固件,以使保存的所述控制器信息生效。

在本发明实施例中,在将该控制器信息保存至目标变量之后,为了使所赋的值能够生效,可以重启电子设备,从而固件也会相应重启,重启后,目标变量所保存的控制器信息便可以生效,并且在接入的硬盘不变的情况下,之后的每次启动,目标变量所保存的控制器信息都是有效的。

步骤205,运行固件。

在本发明实施例中,重启固件后,固件可以开始运行。

步骤206,通过所述固件读取预存的目标变量。

本步骤的具体实现方式可以参照上述步骤102,在此不再赘述。

步骤207,在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描。

在本发明实施例中,本步骤具体可以通过下述方式实现,包括:在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器与第一预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;将所述目标变量所指示的所述目标控制器作为所述第一外部设备互连扫描的首位硬盘控制器,并通过所述固件进行扫描。

其中,第一PCI扫描也即固件所执行的PCI扫描过程,固件执行第一 PCI扫描的原本顺序是第一预设扫描顺序,在第一预设扫描顺序中,第一个被扫描的硬盘控制器不一定是目标硬盘对应的目标控制器,因此,固件可以进行至第一PCI扫描时,将目标变量所指示的目标控制器与第一预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换,从而可以将目标控制器设置为第一PCI扫描过程对应的第一个被扫描的硬盘控制器。

需要说明的是,这里的第一个被扫描,是对于所有硬盘控制器而言,而不是对所有控制器而言,也就是说,在扫描顺序调整后,目标控制器是所有硬盘控制器中第一个被扫描的,而在包括硬盘控制器的所有控制器中,目标控制器不一定是第一个被扫描的。

步骤208,通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递。

在本发明实施例中,内核启动后还会进行一次PCI扫描,也即第二PCI 扫描,第二PCI扫描也即内核所执行的PCI扫描过程,内核执行第二PCI 扫描的原本顺序是第二预设扫描顺序。通常,第二预设扫描顺序与第一预设扫描顺序相同。

在现有技术中,固件可以将用于指示内核启动哪个硬盘的操作系统的第一参数,传参给待启动的内核,以使内核可以根据该第一参数启动对应的操作系统,但是由于在插入或拔除新硬盘的情况下,各硬盘的引导文件并未进行改动,因而第一参数此时所指示的硬盘并非是插入或拔除新硬盘之前所指示的硬盘,因此,根据第一参数,内核会启动错误的操作系统。只互换目标控制器和原先的首位硬盘控制器的扫描顺序,可以使得扫描的改动幅度最小,避免影响其他硬盘控制器以及其他的非硬盘控制器。

因此,在一种可选的实现方式中,当所述标识信息包括所述目标控制器在第二预设扫描顺序中的排位时,本步骤可以通过下述方式实现,包括:通过所述固件将第一参数替换为所述目标控制器在第二预设扫描顺序中的排位;所述第一参数用于指示待启动的操作系统所在硬盘对应的硬盘控制器;通过所述固件将替换后的所述第一参数向待启动的内核进行传递。

也即是固件可以将引导文件中解析出的第一参数替换为目标控制器在第二预设扫描顺序中的排位,然后固件可以将替换后的第一参数传参给待启动的内核,以使内核可以在第二PCI扫描之后,根据第一参数,从扫描到的硬盘控制器中确定出目标控制器,进而内核便可以启动目标控制器对于的目标硬盘的操作系统。在实际应用中,所述目标控制器在第二预设扫描顺序中的排位可以通过目标硬盘当前的盘符表示,也即是所述标识信息可以是目标硬盘当前的盘符。

在另一种可选的实现方式中,当所述标识信息包括所述控制器信息时,本步骤还可以通过下述方式实现,包括:将所述控制器信息作为第二参数,通过所述固件向待启动的内核进行传递;所述第二参数与所述第一参数的属性不同。

也即是第二参数不同于第一参数,第二参数可以用于指示内核调整第二 PCI扫描的顺序,以进入第二参数所指示的目标硬盘的操作系统。固件可以将目标控制器的控制器信息作为第二参数,传参给待启动的内核。在实际应用时,在一种实现方式中,固件的处理逻辑可以修改为既传递第一参数,也传递第二参数,但是可以将内核的处理逻辑修改为只根据第二参数启动操作系统。在另一种实现方式中,固件的处理逻辑可以修改为只传递第二参数,而不传递第一参数,并将内核的处理逻辑修改为根据第二参数启动操作系统,本发明实施例对此不作具体限定。

由于固件启动内核后,后续过程便会由内核进行接管,因此,固件需要在启动内核之前,将需要向待启动的内核传递的参数通过传参指令准备好,以使之后启动的内核通过传参指令获取到参数。由于固件启动内核的机制是启动PCI扫描的首位硬盘控制器对应硬盘的内核,而在本发明实施例中,PCI 扫描的首位硬盘控制器正是目标硬盘对应的目标控制器,因此,固件将内核所需的参数传参之后,便可以启动目标硬盘对应的内核,相应的,传递的参数后续也会被内核所获取。

步骤209,通过所述固件加载并启动所述目标硬盘对应的内核。

在本发明实施例中,固件在完成传参以及其他必须操作之后,可以加载并启动目标硬盘对应的内核。由于固件本身的机制是启动第一个进行PCI扫描的控制器对应的硬盘的内核,因此,在将目标硬盘对应的目标控制器作为固件PCI扫描的第一位的情况下,固件便能够默认加载并启动目标硬盘对应的内核,也即是能够启动正确的内核。

步骤210,根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统。

在本发明实施例中,对应于步骤209中的两种实现方式,本步骤也可以通过两种方式实现。

在一种可选的实现方式中,当所述标识信息包括所述目标控制器在第二预设扫描顺序中的排位时,本步骤包括:通过所述内核按照所述第二预设扫描顺序进行第二外部设备互连扫描;根据所述目标控制器在所述第二预设扫描顺序中的排位,通过所述内核从扫描到的硬盘控制器中选择出所述目标控制器;确定所述目标控制器对应的所述目标硬盘;通过所述内核启动所述目标硬盘对应的操作系统。

当所述标识信息包括所述目标控制器在第二预设扫描顺序中的排位时,内核仍可以按照原先的第二预设扫描顺序进行第二PCI扫描,在内核扫描完成后,内核可以根据目标控制器在第二预设扫描顺序中的排位,从扫描到的所有硬盘控制器中选择出目标控制器,进而确定出目标控制器对应的目标硬盘,内核便能够启动目标硬盘对应的操作系统。

在另一种可选的实现方式中,当所述标识信息包括所述控制器信息时,本步骤包括:在通过所述内核进行至第二外部设备互连扫描时,将所述控制器信息对应的所述目标控制器与第二预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;将所述控制器信息对应的所述目标控制器作为所述第二外部设备互连扫描的首位硬盘控制器,并通过所述内核进行扫描;通过所述内核启动所述第二外部设备互连扫描的首位硬盘控制器对应的所述目标硬盘对应的操作系统。

当所述标识信息包括所述控制器信息时,内核在进行至PCI扫描的过程时,可以不按照原先的第二预设扫描顺序进行扫描,而是可以根据目标控制器的控制器信息,调整第二预设扫描顺序。也即是将该控制器信息对应的目标控制器与第二预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换,从而可以将目标控制器设置为第二PCI扫描过程对应的第一个被扫描的硬盘控制器。之后,内核便可以直接启动第一个被扫描的硬盘控制器对应的硬盘的操作系统,由于此时第一个被扫描的硬盘控制器是目标硬盘对应的控制器,因此,内核启动的便是目标硬盘对应的系统。

此外,本发明实施例还能够提供一种方法,以在增加或删除硬盘之后,启动板载的系统盘对应的操作系统,也即是可以在处理器板卡的设计阶段,便将系统盘挂载到优先级最高的硬盘控制器上,也即是会被最先扫描到的硬盘控制器上,这样,固件按照原先的处理逻辑便能够启动正确的内核,且内核按照原先的处理逻辑便能够启动正确的操作系统。

但是在处理器板卡未按照上述方法进行设计,或者按照上述方法设计后用户更改了默认启动的系统盘,则可以应用本发明实施例提供的上述操作系统启动方法进行系统启动,从而使电子设备仍然能够启动正确的内核,进而启动正确的操作系统。

在本发明实施例中,在固件运行的情况下,固件可以读取预存的目标变量,该目标变量用于指示用户想要启动的目标硬盘对应的目标控制器的控制器信息。固件在进行至第一外部设备互连扫描的过程时,可以将目标变量所指示的目标控制器作为扫描的首位硬盘控制器进行扫描,使得固件之后可以加载并启动目标硬盘所对应的内核,也即是能够启动到用户所需的正确的内核。另外,固件还可以在启动内核之前,将目标控制器的标识信息传参给待启动的内核,进而内核便能够根据该标识信息,启动目标硬盘对应的操作系统。如此,电子设备可以启动用户所需的正确的内核,进而能够启动用户所需的正确的操作系统。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图3,示出了本发明的一种操作系统启动装置实施例的结构框图,该装置300具体可以包括如下模块:

运行模块301,用于运行固件;

读取模块302,用于通过所述固件读取预存的目标变量;所述目标变量用于指示目标硬盘对应的目标控制器的控制器信息;

扫描模块303,用于在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描;

传参模块304,用于通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递;

内核启动模块305,用于通过所述固件加载并启动所述目标硬盘对应的内核;

系统启动模块306,用于根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统。

可选地,所述扫描模块包括:

第一互换子模块,用于在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器与第一预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;

第一扫描子模块,用于将所述目标变量所指示的所述目标控制器作为所述第一外部设备互连扫描的首位硬盘控制器,并通过所述固件进行扫描。

可选地,当所述标识信息包括所述目标控制器在第二预设扫描顺序中的排位时,所述传参模块包括:

替换子模块,用于通过所述固件将第一参数替换为所述目标控制器在第二预设扫描顺序中的排位;所述第一参数用于指示待启动的操作系统所在硬盘对应的硬盘控制器;

第一传参子模块,用于通过所述固件将替换后的所述第一参数向待启动的内核进行传递;

所述系统启动模块包括:

第二扫描子模块,用于通过所述内核按照所述第二预设扫描顺序进行第二外部设备互连扫描;

选择子模块,用于根据所述目标控制器在所述第二预设扫描顺序中的排位,通过所述内核从扫描到的硬盘控制器中选择出所述目标控制器;

确定子模块,用于确定所述目标控制器对应的所述目标硬盘;

第一启动子模块,用于通过所述内核启动所述目标硬盘对应的操作系统。

可选地,当所述标识信息包括所述控制器信息时,所述传参模块包括:

第二传参子模块,用于将所述控制器信息作为第二参数,通过所述固件向待启动的内核进行传递;所述第二参数与所述第一参数的属性不同;

所述系统启动模块包括:

第二互换子模块,用于在通过所述内核进行至第二外部设备互连扫描时,将所述控制器信息对应的所述目标控制器与第二预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;

第三扫描子模块,用于将所述控制器信息对应的所述目标控制器作为所述第二外部设备互连扫描的首位硬盘控制器,并通过所述内核进行扫描;

第二启动子模块,用于通过所述内核启动所述第二外部设备互连扫描的首位硬盘控制器对应的所述目标硬盘对应的操作系统。

可选地,所述装置还包括:

固件启动模块,用于在处理器板卡上插入新硬盘或拔除新硬盘的情况下,启动并运行所述固件;

获取模块,用于当通过所述固件接收到所述目标硬盘的选择指令时,获取所述目标硬盘对应的目标控制器的控制器信息;

保存模块,用于将所述控制器信息保存至所述目标变量;

固件重启模块,用于重启所述固件,以使保存的所述控制器信息生效。

可选地,所述控制器信息包括所述目标硬盘对应的所述目标控制器的总线号、设备号和功能号。

在本发明实施例中,在固件运行的情况下,固件可以读取预存的目标变量,该目标变量用于指示用户想要启动的目标硬盘对应的目标控制器的控制器信息。固件在进行至第一外部设备互连扫描的过程时,可以将目标变量所指示的目标控制器作为扫描的首位硬盘控制器进行扫描,使得固件之后可以加载并启动目标硬盘所对应的内核,也即是能够启动到用户所需的正确的内核。另外,固件还可以在启动内核之前,将目标控制器的标识信息传参给待启动的内核,进而内核便能够根据该标识信息,启动目标硬盘对应的操作系统。如此,电子设备可以启动用户所需的正确的内核,进而能够启动用户所需的正确的操作系统。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

图4是根据一示例性实施例示出的一种用于启动操作系统的电子设备 400的结构框图。例如,电子设备400可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图4,电子设备400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(I/ O)的接口412,传感器组件414,以及通信组件416。

处理组件402通常控制电子设备400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理部件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。

存储器404被配置为存储各种类型的数据以支持在设备400的操作。这些数据的示例包括用于在电子设备400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电源组件406为电子设备400的各种组件提供电力。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为电子设备400生成、管理和分配电力相关联的组件。

多媒体组件408包括在所述电子设备400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板 (TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当电子设备400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件410被配置为输出和/或输入音频信号。例如,音频组件410 包括一个麦克风(MIC),当电子设备400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。

I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件414包括一个或多个传感器,用于为电子设备400提供各个方面的状态评估。例如,传感器组件414可以检测到设备400的打开/关闭状态,组件的相对定位,例如所述组件为电子设备400的显示器和小键盘,传感器组件414还可以检测电子设备400或电子设备400一个组件的位置改变,用户与电子设备400接触的存在或不存在,电子设备400方位或加速/减速和电子设备400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件416被配置为便于电子设备400和其他设备之间有线或无线方式的通信。电子设备400可以接入基于通信标准的无线网络,如WiFi,2G 或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA) 技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,电子设备400可以被一个或多个应用专用集成电路 (ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由电子设备400的处理器420 执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是 ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行一种操作系统启动的方法,所述方法包括:

运行固件;

通过所述固件读取预存的目标变量;所述目标变量用于指示目标硬盘对应的目标控制器的控制器信息;

在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描;

通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递;

通过所述固件加载并启动所述目标硬盘对应的内核;

根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统。

可选地,所述在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器作为扫描的首位硬盘控制器进行扫描,包括:

在通过所述固件进行至第一外部设备互连扫描时,将所述目标变量所指示的所述目标控制器与第一预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;

将所述目标变量所指示的所述目标控制器作为所述第一外部设备互连扫描的首位硬盘控制器,并通过所述固件进行扫描。

可选地,当所述标识信息包括所述目标控制器在第二预设扫描顺序中的排位时,所述通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递,包括:

通过所述固件将第一参数替换为所述目标控制器在第二预设扫描顺序中的排位;所述第一参数用于指示待启动的操作系统所在硬盘对应的硬盘控制器;

通过所述固件将替换后的所述第一参数向待启动的内核进行传递;

所述根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统,包括:

通过所述内核按照所述第二预设扫描顺序进行第二外部设备互连扫描;

根据所述目标控制器在所述第二预设扫描顺序中的排位,通过所述内核从扫描到的硬盘控制器中选择出所述目标控制器;

确定所述目标控制器对应的所述目标硬盘;

通过所述内核启动所述目标硬盘对应的操作系统。

可选地,当所述标识信息包括所述控制器信息时,所述通过所述固件将所述目标控制器的标识信息向待启动的内核进行传递,包括:

将所述控制器信息作为第二参数,通过所述固件向待启动的内核进行传递;所述第二参数与所述第一参数的属性不同;

所述根据所述标识信息,通过所述内核启动所述目标硬盘对应的操作系统,包括:

在通过所述内核进行至第二外部设备互连扫描时,将所述控制器信息对应的所述目标控制器与第二预设扫描顺序中的首位硬盘控制器的扫描顺序进行互换;

将所述控制器信息对应的所述目标控制器作为所述第二外部设备互连扫描的首位硬盘控制器,并通过所述内核进行扫描;

通过所述内核启动所述第二外部设备互连扫描的首位硬盘控制器对应的所述目标硬盘对应的操作系统。

可选地,所述运行固件之前,还包括:

在处理器板卡上插入新硬盘或拔除新硬盘的情况下,启动并运行所述固件;

当通过所述固件接收到所述目标硬盘的选择指令时,获取所述目标硬盘对应的目标控制器的控制器信息;

将所述控制器信息保存至所述目标变量;

重启所述固件,以使保存的所述控制器信息生效。

可选地,所述控制器信息包括所述目标硬盘对应的所述目标控制器的总线号、设备号和功能号。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种操作系统启动方法和装置、一种电子设备以及一种存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 应用于操作系统启动的方法、装置、电子设备及存储介质
  • 一种操作系统启动方法、装置、电子设备及存储介质
技术分类

06120113284321