CN109710317A - 系统启动方法、装置、电子设备及存储介质 - Google Patents

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

Info

Publication number
CN109710317A
CN109710317A CN201811366382.4A CN201811366382A CN109710317A CN 109710317 A CN109710317 A CN 109710317A CN 201811366382 A CN201811366382 A CN 201811366382A CN 109710317 A CN109710317 A CN 109710317A
Authority
CN
China
Prior art keywords
data
catalogue
address
storage equipment
equipment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811366382.4A
Other languages
English (en)
Other versions
CN109710317B (zh
Inventor
臧磊真
祁德春
张亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811366382.4A priority Critical patent/CN109710317B/zh
Publication of CN109710317A publication Critical patent/CN109710317A/zh
Application granted granted Critical
Publication of CN109710317B publication Critical patent/CN109710317B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供一种系统启动方法、装置、电子设备及存储介质,其中方法包括:若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将第一数据分区挂载到第二目录下;在第二存储设备中创建第二数据分区和第二文件系统,并将第二数据分区挂载到第一目录下;在第一目录下创建第一目标目录,并建立第一目标目录与第二目录下的第二目标目录的绑定关系。本实施例提供的系统启动方法、装置、电子设备及存储介质能够在电子设备中的文件系统出错时,用户不需要进行复杂的操作就能够对电子设备进行启动,并获得转移用户数据分区中所存储的用户数据的机会,提升了用户体验。

Description

系统启动方法、装置、电子设备及存储介质
技术领域
本申请涉及电子技术领域,本申请尤其涉及一种系统启动方法、装置、电子设备及存储介质。
背景技术
智能手机、电视或平板等电子设备使用嵌入式多媒体卡(embedded multimediacard;eMMC)/通用闪存存储(universal flash storage;UFS)存储器作为存储设备,eMMC/UFS内部由控制器和NAND闪存(NAND flash storage)组成。由于工艺结构的原因,NAND闪存具有一定的编程擦写次数(program-erase cycle;PE),当NAND闪存达到预定的PE次数时,NAND闪存的寿命会耗尽,将不能再进行编程或擦除。此时,eMMC/UFS会变为只读,或者虽能写入数据但无法保证数据的正确性。
在现有技术中,电子设备的存储设备中通常划分专门的分区来存储用户数据,例如存储设备中的用户数据分区,用户数据分区上承载文件系统(如:闪存友好文件系统(flash friendly file system,F2FS)或第四代扩展文件系统(fourth extended filesystem,EXT4)文件系统)用于访问用户数据分区。而当用户数据分区的文件系统发生错误时,通过该文件系统无法访问用户数据分区中一些用户数据。为了避免文件系统导致用户数据分区的数据损坏,文件系统会将用户数据分区以只读方式挂载,即将用户数据分区设置为只读模式。
采用现有技术,当用户数据分区被设置为只读模式后,会导致系统启动过程中文件系统不能向用户数据分区中写入数据,使电子设备的系统无法顺利启动。因此,用户为了对其重要数据进行转移,往往需要将存储设备拆除后,通过第三方设备读取其中的用户数据,还需要对用户数据进行解密。这些操作不仅增加了大量的时间成本和金钱成本,还会影响用户体验。
发明内容
本申请提供一种系统启动方法、装置、电子设备及存储介质,能够在电子设备中的文件系统出错时,用户不需要进行复杂的操作就能够对电子设备进行启动,并获得转移用户数据分区中所存储的用户数据的机会,提升了用户体验。
本申请第一方面提供一种系统启动方法,包括:
若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下;
在第二存储设备中创建第二数据分区和第二文件系统,并将所述第二数据分区挂载到所述第一目录下;
在所述第一目录下创建第一目标目录,并建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系;其中,所述第二目标目录用于指示所述第一文件系统中的第一目标数据;
若接收到系统启动时访问所述第一目录下的文件操作调用;
若所述文件操作调用对应所述第一目标目录,则依次通过所述第一目录和所述第一目标目录,并根据所述绑定关系,访问到所述第二目标目录,在所述第一文件系统中执行所述第一目标数据对应的所述文件操作调用,并向所述第一存储设备发送读写请求;
若所述文件操作调用对应所述第一目录下的第三目标目录,则通过所述第一目录下的所述第三目标目录,在所述第二文件系统中执行第二目标数据对应的文件操作调用,并向所述第二存储设备发送读写请求;其中,所述第三目标目录用于指示所述第二文件系统中的所述第二目标数据。
在一种可能的实现方式中,所述方法还包括:建立所述第一存储设备和第三存储设备的地址空间的映射关系;
若接收到对所述第一存储设备的读写请求,判断所述读写请求是读请求或写请求;
若所述读写请求是写请求,则根据所述写请求中所述第一存储设备的第一地址和所述映射关系,向所述第三存储设备中的第二地址写入数据;
若所述读写请求是读请求,则判断在本次系统启动过程中所述读请求中所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据;
若判断在本次启动过程中所述第四地址被写过数据,则从所述第四地址读取数据;
若判断在本次启动过程中所述第四地址没有被写过数据,则从所述第三地址读取数据。
在一种可能的实现方式中,所述方法还包括:所述第一目标数据至少包括以下的一项或多项:
加密解密数据、系统数据和用户数据。
在一种可能的实现方式中,所述方法还包括:所述在第二存储设备中创建第二数据分区和第二文件系统,包括:
确定所述第二存储设备中的第二数据分区;
确定所述第一文件系统的目标文件格式;
根据所述目标文件格式格式化所述第二数据分区,在所述第二数据分区中创建与所述目标文件格式相同的第二文件系统。
在一种可能的实现方式中,所述方法还包括:所述建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系,包括:
将所述第二目标目录绑定挂载到所述第一目录下的所述第一目标目录下。
在一种可能的实现方式中,所述方法还包括:建立位图信息;所述位图信息用于标识与所述第一存储设备的地址空间对应的所述第三存储设备的地址空间中的各地址是否被写过数据;
若向所述第三存储设备的第四地址写入数据,则对所述位图信息中所述第四地址对应的标志位的值进行更新;
所述判断在本次启动过程中所述读写请求中的数据在所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据,包括:
根据所述位图信息中所述第四地址的对应标志位,判断所述第四地址是否被写过数据。
在一种可能的实现方式中,所述方法还包括:所述若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下,包括:
若检测到系统启动时所述第一数据分区上通过所述第一文件系统无法正常启动的一个或多个系统应用,将所述第一数据分区挂载到第二目录下。
在一种可能的实现方式中,所述方法还包括:所述一个或多个系统应用对应的数据为所述第二目标数据。
在一种可能的实现方式中,所述方法还包括:所述第一存储设备包括通用闪存存储UFS或嵌入式多媒体卡eMMC;
所述第二存储设备包括内存虚拟出的块设备或外部存储设备。
在一种可能的实现方式中,所述方法还包括:所述第三存储设备包括内存虚拟出的块设备或外部存储设备。
本申请第二方面提供一种系统启动装置,包括:
处理单元,用于若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下;
所述处理单元,还用于在第二存储设备中创建第二数据分区和第二文件系统,并将所述第二数据分区挂载到所述第一目录下;
所述处理单元,还用于在所述第一目录下创建第一目标目录,并建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系;其中,所述第二目标目录用于指示所述第一文件系统中的第一目标数据;
所述处理单元,还用于若接收到系统启动时访问所述第一目录下的文件操作调用;
所述处理单元,还用于若所述文件操作调用对应所述第一目标目录,则依次通过所述第一目录和所述第一目标目录,并根据所述绑定关系,访问到所述第二目标目录,在所述第一文件系统中执行所述第一目标数据对应的所述文件操作调用,并向所述第一存储设备发送读写请求;
所述处理单元,还用于若所述文件操作调用对应所述第一目录下的第三目标目录,则通过所述第一目录下的所述第三目标目录,在所述第二文件系统中执行第二目标数据对应的文件操作调用,并向所述第二存储设备发送读写请求;其中,所述第三目标目录用于指示所述第二文件系统中的所述第二目标数据。
在一种可能的实现方式中,所述处理单元,还用于:
建立所述第一存储设备和第三存储设备的地址空间的映射关系;
若接收到对所述第一存储设备的读写请求,判断所述读写请求是读请求或写请求;
若所述读写请求是写请求,则根据所述写请求中所述第一存储设备的第一地址和所述映射关系,向所述第三存储设备中的第二地址写入数据;
若所述读写请求是读请求,则判断在本次系统启动过程中所述读请求中所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据;
若判断在本次启动过程中所述第四地址被写过数据,则从所述第四地址读取数据;
若判断在本次启动过程中所述第四地址没有被写过数据,则从所述第三地址读取数据。
在一种可能的实现方式中,所述第一目标数据至少包括以下的一项或多项:
加密解密数据、系统数据和用户数据。
在一种可能的实现方式中,所述处理单元具体用于,
确定所述第二存储设备中的第二数据分区;
确定所述第一文件系统的目标文件格式;
根据所述目标文件格式格式化所述第二数据分区,在所述第二数据分区中创建与所述目标文件格式相同的第二文件系统。
在一种可能的实现方式中,所述处理单元具体用于,
将所述第二目标目录绑定挂载到所述第一目录下的所述第一目标目录下。
在一种可能的实现方式中,所述处理单元具体用于,
建立位图信息;所述位图信息用于标识与所述第一存储设备的地址空间对应的所述第三存储设备的地址空间中的各地址是否被写过数据;
若向所述第三存储设备的第四地址写入数据,则对所述位图信息中所述第四地址对应的标志位的值进行更新;
所述判断在本次启动过程中所述读写请求中的数据在所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据,包括:
根据所述位图信息中所述第四地址的对应标志位,判断所述第四地址是否被写过数据。
在一种可能的实现方式中,所述处理单元具体用于,
若检测到系统启动时所述第一数据分区上通过所述第一文件系统无法正常启动的一个或多个系统应用,将所述第一数据分区挂载到第二目录下。
在一种可能的实现方式中,所述一个或多个系统应用对应的数据为所述第二目标数据。
在一种可能的实现方式中,所述第一存储设备包括通用闪存存储UFS或嵌入式多媒体卡eMMC;
所述第二存储设备包括内存虚拟出的块设备或外部存储设备。
在一种可能的实现方式中,所述第三存储设备包括内存虚拟出的块设备或外部存储设备。
第三方面,本申请还提供一种电子设备,该电子设备可以包括处理器,用于耦合指令存储器,并执行所述指令存储器中的指令,所述处理器用于在所述电子设备启动的过程中基于所述指令执行下述动作:
若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下;
在第二存储设备中创建第二数据分区和第二文件系统,并将所述第二数据分区挂载到所述第一目录下;
在所述第一目录下创建第一目标目录,并建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系;其中,所述第二目标目录用于指示所述第一文件系统中的第一目标数据;
若接收到系统启动时访问所述第一目录下的文件操作调用;
若所述文件操作调用对应所述第一目标目录,则依次通过所述第一目录和所述第一目标目录,并根据所述绑定关系,访问到所述第二目标目录,在所述第一文件系统中执行所述第一目标数据对应的所述文件操作调用,并向所述第一存储设备发送读写请求;
若所述文件操作调用对应所述第一目录下的第三目标目录,则通过所述第一目录下的所述第三目标目录,在所述第二文件系统中执行第二目标数据对应的文件操作调用,并向所述第二存储设备发送读写请求;其中,所述第三目标目录用于指示所述第二文件系统中的所述第二目标数据。
在一种可能的实现方式中,还包括:建立所述第一存储设备和第三存储设备的地址空间的映射关系;
若接收到对所述第一存储设备的读写请求,判断所述读写请求是读请求或写请求;
若所述读写请求是写请求,则根据所述写请求中所述第一存储设备的第一地址和所述映射关系,向所述第三存储设备中的第二地址写入数据;
若所述读写请求是读请求,则判断在本次系统启动过程中所述读请求中所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据;
若判断在本次启动过程中所述第四地址被写过数据,则从所述第四地址读取数据;
若判断在本次启动过程中所述第四地址没有被写过数据,则从所述第三地址读取数据。
在一种可能的实现方式中,所述第一目标数据至少包括以下的一项或多项:
加密解密数据、系统数据和用户数据。
在一种可能的实现方式中,所述在第二存储设备中创建第二数据分区和第二文件系统,包括:
确定所述第二存储设备中的第二数据分区;
确定所述第一文件系统的目标文件格式;
根据所述目标文件格式格式化所述第二数据分区,在所述第二数据分区中创建与所述目标文件格式相同的第二文件系统。
在一种可能的实现方式中,所述建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系,包括:
将所述第二目标目录绑定挂载到所述第一目录下的所述第一目标目录下。
在一种可能的实现方式中,还包括:建立位图信息;所述位图信息用于标识与所述第一存储设备的地址空间对应的所述第三存储设备的地址空间中的各地址是否被写过数据;
若向所述第三存储设备的第四地址写入数据,则对所述位图信息中所述第四地址对应的标志位的值进行更新;
所述判断在本次启动过程中所述读写请求中的数据在所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据,包括:
根据所述位图信息中所述第四地址的对应标志位,判断所述第四地址是否被写过数据。
在一种可能的实现方式中,还包括:所述若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下,包括:若检测到系统启动时所述第一数据分区上通过所述第一文件系统无法正常启动的一个或多个系统应用,将所述第一数据分区挂载到第二目录下。
在一种可能的实现方式中,所述一个或多个系统应用对应的数据为所述第二目标数据。
在一种可能的实现方式中,所述第一存储设备包括通用闪存存储UFS或嵌入式多媒体卡eMMC;所述第二存储设备包括内存虚拟出的块设备或外部存储设备。
在一种可能的实现方式中,所述第三存储设备包括内存虚拟出的块设备或外部存储设备。
第四方面,本申请实施例还提供一种可读存储介质,保存有指令,所述指令用于指示所述电子设备在启动过程中执行上述第一方面中任一项所述的系统启动方法。
第五方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例的第一方面提供的系统启动方法。
第六方面,本申请实施例还提供一种芯片,芯片上存储有计算机程序,在计算机程序被处理器执行时,执行上述第一方面中提供的系统启动方法。
综上,当系统使用本实施例提供的系统启动方法、装置、电子设备及存储介质,在系统进行启动时,如果第一存储设备中的第一数据分区上的第一文件系统出错,通过将第一数据分区挂载在第二目录下,并通过新挂载在第一目录下的第二数据分区的第二文件系统进行启动。并且还提供了第一数据分区中重要数据的访问路径,只有当第一数据分区中第一目标数据的第二目标目录与第一目录下的第一目标目录建立绑定关系后,才能够使系统启动时第一目标数据对应的文件操作调用在第一文件系统中执行,并通过第一目录访问到第一存储设备中的第一目标数据。而如果第一数据分区中的第二目标数据没有建立上述绑定关系,则系统启动时第二目标数据对应的文件操作调用将通过第一目录在第二文件系统中执行,并通过第三目标目录访问第二存储设备中的第二目标数据。因此,当第一存储设备内的数据出错时,可将出错的数据作为本实施例中的第二目标数据,从而能够通过不建立绑定关系,使得与该出错数据对应的文件操作调用不会通过第一目录访问到第一数据分区内的出错数据,相当于隔离了第一数据分区中有错的第二目标数据,进而可以使系统完成容错启动。尤其是当第一数据分区中存储的加密解密数据、用户数据正常时,将加密解密数据和用户数据作为第一目标数据建立上述绑定关系,而第一数据分区中其他数据作为第二目标数据不建立上述绑定关系。即使第一文件系统以及第一数据分区内的其他数据出错,系统启动时加密解密数据对应的文件操作调用还是能够访问第一数据分区中的加密解密数据,而不需要对该文件操作调用所访问的第一目录下的文件路径进行改动,就能实现系统的正常启动。最终实现了用户不需要进行复杂的操作就能够对电子设备进行启动,并使得用户获得转移第一存储设备中所存储的用户数据的机会,以提升用户体验。
附图说明
图1为本申请系统启动方法应用场景示意图;
图2为本申请系统启动方法一实施例的流程示意图;
图3为本申请系统启动方法一实施例中各设备的结构示意图;
图4为本申请系统启动方法一实施例的流程示意图;
图5为本申请系统启动方法一实施例中各设备的结构示意图;
图6为本申请电子设备一实施例的结构示意图。
具体实施方式
图1为本申请系统启动方法应用场景示意图,如图1示出了一种电子设备的内部存储结构的结构示意图,其中,电子设备可以包括例如智能手机、电视、平板电脑等。图1中的存储结构以电子设备使用基于Linux内核的Android系统为例进行说明,但需要说明的是,本申请后续揭示各实施例并不受限于Android系统或Linux内核中,其他内核或其他系统也可以采用本申请中各实施例所揭示的方法进行系统启动。
在基于Linux内核的Android系统的电子设备中,图1示出了4个当系统进行启动时可能使用到的模块,包括:进程init101,解密服务/解密模块102(例如:vold/e4crypt),原生服务/应用103和备份应用104。其中,本领域技术人员可以理解,init是Linux内核启动后运行的第一个进程,先是在内核态运行,后转换为用户态运行,本申请实施例中是指在用户态运行的进程;位于第一存储设备108中的第一数据分区109上格式化有第一文件系统106;第一数据分区109挂载在第一目录105下;第一文件系统106包括F2FS或EXT4,第一数据分区109包括UFS或eMMC,第一文件系统106为第一数据分区109的文件系统;第一文件系统106通过通用块层/块设备请求队列107访问第一数据分区109。当系统启动时上述任一模块需要执行访问第一目录下的文件操作调用,并且该文件操作调用对应第一数据分区109中的目标数据。则该文件操作调用在第一文件系统106中执行时,通过第一目录105访问目标数据所在的第一数据分区109,即根据第一目录105,依次通过第一文件系统106和通用块层/块设备请求队列107访问第一数据分区109中的目标数据。需要说明的是,本申请各实施例中所述的存储设备,例如第一存储设备108,可以包括块设备,其中,块设备包括物理设备以及操作系统下该物理设备对应的数据结构(块设备结构体)。需要说明的是,本申请中的块设备包括但不限于Android或Linux的块设备,其也可以为其他系统下的块设备。
以第一数据分区109为电子设备中用于存储用户数据的用户数据分区(userdata)为例,当系统的内核通过调用进程init101等进程正常启动后,init101继续启动解密服务/解密模块102。解密服务/解密模块102根据第一目录105,依次通过userdata的文件系统以及通用块层/块设备请求队列107访问第一数据分区109中的解密相关数据。从而使得当电子设备的用户输入的屏幕解锁口令或指纹时,由解密服务/解密模块102实现电子设备的屏幕解锁。
在现有技术中,当第一数据分区109的第一文件系统106发生错误时,通过第一文件系统106无法访问第一数据分区109中的一些数据。为了避免第一文件系统106的出错而向第一数据分区109中写入错误数据而导致第一数据分区109中的数据被损坏,第一文件系统106会将第一数据分区109以只读方式挂载,即将第一数据分区109设置为只读模式。
虽然现有技术中,在第一文件系统106出错时能够通过将第一数据分区109设置为只读模式进行保护。但是在一些场景中,例如当第一数据分区109是userdata时,userdata中还存放了与系统启动相关的用户数据。如果只是简单地将userdata设置为只读模式,系统在启动时,如果在执行访问第一目录下的文件操作调用中存在userdata中用户数据的读写请求,会导致该文件调用在userdata的文件系统中执行时根据第一目录无法顺利通过userdata的文件系统处理其中用户数据的读写请求,进而导致访问第一目录下的文件操作调用执行失败。例如解密服务/解密模块102无法通过用户输入的屏幕解锁口令或者指纹实现屏幕解锁、进程init101会由于写数据失败而退出,最终向用户呈现出系统不能正常启动或系统不断重启的现象,使得用户无法正常使用系统以及电子设备。而用户为了对其重要数据进行转移,往往需要将存储设备拆除后,通过第三方设备读取其中的用户数据,还需要对用户数据进行解密。这些操作不仅增加了大量的时间成本和金钱成本,还会影响用户体验。
因此,本申请为了解决如何能使系统在正常启动的同时保证用户的数据不会丢失的上述问题,提出一种系统启动方法及装置,能够在电子设备中的用户数据分区上的文件系统出错时,用户不需要进行复杂的操作就能够对电子设备进行启动,并获得转移用户数据分区中所存储的用户数据的机会,以提升用户体验。
下面结合附图2和图3,对本申请一实施例中提出的系统启动方法进行说明。其中,图2为本申请系统启动方法一实施例的流程示意图。如图2所示,本实施例提供的系统启动方法包括:
S101:若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将第一数据分区挂载到第二目录下。
具体地,本实施例提供的用于电子设备的系统启动方法可以由任意执行系统启动方法的装置来执行,该装置可通过软件和/或硬件实现,该装置还可以集成在电子设备中,例如电子设备的处理器。则首先在S101中,在系统启动时,电子设备中的处理器会检测第一文件系统的状态,当检测到第一存储设备中第一数据分区上的第一文件系统在系统启动时出错,则将原本挂载在第一目录下的第一数据分区挂载到第二目录下。
结合图1和图3,在系统能够正常启动时,第一存储设备109维持如图1所示的结构,挂载在第一目录105下。即,包括解密服务/解密模块102在内的模块都根据第一目录105的指示,通过第一文件系统106和通用块层/块设备请求107访问第一存储设备108中的第一数据分区109。若在本实施例的S101中判断第一数据分区109的第一文件系统106在系统启动时出错,则如图3所示,将第一数据分区109挂载在第二目录205下。
可选地,本申请实施例中所述的第一存储设备108包括通用闪存存储UFS或嵌入式多媒体卡eMMC。该第一存储设备108可以用于存储系统启动时需要的数据,例如,该系统启动时需要的数据包括可执行代码、系统数据和用户数据等。此外,在终端设备中,处理器通常被设置在处理器芯片中,而可执行的代码、系统数据和用户数据则通常被存储在芯片外的存储器(即片外存储器)中,所述片外存储器通常为UFS或eMMC。当然,随着技术的发展,也不排除使用其他种类的存储设备作为所述第一存储设备108。
可选地,S101中在第一数据分区109的第一文件系统106出错后,将原本挂载在第一目录105下的第一数据分区109从第一目录105移除,并挂载或强制挂载到第二目录205下,能够使得系统启动时原本访问第一目录105的文件操作调用不会继续根据第一目录105在出错的第一文件系统106中执行。其中所述的第二目录205可以是系统中现有的其他目录,或者,第二目录205还可以是系统中新建的目录。进一步可选地,在本实施例一种可能实现方式中,当第一目录105是Andoird系统中的/data目录时,第二目录205可以是Android系统中的/data_org目录。
另外,可以理解的是,若S101中检测到第一数据分区109的第一文件系统106在启动时没有出错,则作为本实施例执行主体的电子设备将会按照现有的方法进行系统启动。
S102:在第二存储设备中创建第二数据分区和第二文件系统,并将第二数据分区挂载到第一目录下。
随后,在S102中,在第二存储设备中创建第二数据分区,并在第二数据分区内创建与第一文件系统格式相同的第二文件系统。还并将第二数据分区代替原有的第一数据分区,挂载到第一目录下。同样如图3所示,当第一数据分区109从第一目录105挂载到第二目录205下之后,将第二数据分区209挂载到原第一数据分区109所挂载的第一目录105下,实现由第二数据分区209代替原第一数据分区109、由第二数据分区209的第二文件系统206代替原第一数据分区109的第一文件系统106。
可选地,在一种可能的实现方式中,第二数据分区209的第二文件系统206需要与第一数据分区109的第一文件系统106保持一致,以使得第二文件系统206能够替代出错的第一文件系统106。因此,S102可具体通过如下步骤实现:S1021:确定第二存储设备中的第二数据分区;S1022:确定第一文件系统的目标文件格式;S1023:根据目标文件格式格式化第二数据分区,在第二数据分区中创建与目标文件格式相同的第二文件系统。
其中,第二存储设备208包括内存虚拟出的块设备或外部存储设备,则在S1021中,可以由进程init101通过内核创建第二存储设备208中的第二数据分区209,创建的第二数据分区209的块地址空间的范围可以大于或等于第一数据分区109的块地址空间的范围。并随后通过S1022确定现有的第一数据分区109的第一文件系统106的文件格式,例如第一文件系统106的文件格式为F2FS,则在S1023中根据所确定的F2FS文件格式对第二数据分区209进行格式化处理,以在第二数据分区209中创建同样为F2FS文件格式的第二文件系统206。
并且进一步地,由于所确定的第二数据分区209上的第二文件系统206是新格式化得到的,因此挂载在第一目录105下的第二数据分区209可以提供“干净”和没有错误的第二文件系统206实现系统启动时的相关操作,例如在第二文件系统206中执行系统启动时收到的访问第一目录105的文件操作调用。
S103:在第一目录下创建第一目标目录,并建立第一目标目录与第二目录下的第二目标目录的绑定关系。其中,第二目标目录用于指示第一文件系统中的第一目标数据。
由于经过S101和S102的步骤,将第一数据分区挂载在了第二目录下,而之前访问第一目录下的相关文件调用,就会根据第一目录继续在新建的第二数据分区中处理相关数据,从而使得系统通过没有错误的第二文件系统进行启动。这时系统虽然能正常启动,但是由于在启动时使用的是干净的第二文件系统,如同系统第一次开机,而不能访问到原来的第一数据分区中存储的加密解密数据和用户数据。因此,本实施例在S102之后,还需要进一步通过S103建立第一目录向第一数据分区中的数据的指示关系。使得第一数据分区从第一目录挂载到第二目录之后,如果访问第一目录下的相关文件操作调用在执行过程中需要处理原第一数据分区中的数据时,还是能够根据第一目录下的文件路径的指示处理第一数据分区中的数据。
下面结合图3具体说明本步骤中的绑定关系,如图3所示,S103在第一目录105下新创建空的第一目标目录1051,并确定需要建立绑定关系的第二目标目录2051,其中,第二目标目录是第一数据分区109中第一目标数据的数据目录。随后,将第一目标目录1051与第二目标目录2051建立绑定关系,这里的绑定关系可以理解为通过第一目标目录1051能够唯一地确定与其存在绑定关系的第二目标目录2051。当第一目标目录1051与第二目标目录2051之间建立起绑定关系后,如果在第二文件系统206中执行的文件操作调用需要通过第一目录105访问存储在第一数据分区108内的第一目标数据,就可以依次通过第一目录105确定第一目录105下的第一目标目录1051、通过第一目标目录1051确定与其存在绑定关系的第二目标目录2051,并访问到第二目标目录2051对应的文件节点从而确定第一存储设备108中的第一目标数据。最终实现了在第二文件系统206中执行的文件操作调用能够通过第一目录105访问第一存储设备108中第一目标数据的目的。
可选地,在上述示例中,第一目标目录1051和第二目标目录2051可以是同名的目录,例如:当第一目录是/data、第二目录是/data_org时,第一目标目录可以是/data/目录下的data/dir1,第二目标目录可以是/data_org/目录下的data/dir1。其中,当第一目标目录1051与第二目标目录2051同名时,能够在系统运行时兼容第一数据分区数据无错误时的系统正常运行时的系统配置,如Linux系统的安全策略(例如:sepolicy)和加解密策略。
可选地,本实施例提供的第一目标数据至少包括以下的一项或多项:加密解密数据、系统数据和用户数据。具体地,当本实施例中的第一数据分区具体是用户数据分区userdata时,为了使系统能够顺利启动,系统需要在将第一数据分区挂载到第二目录之后,还能够访问userdata中系统启动时需要使用的数据。其中,系统启动时需要使用userdata中的数据包括但不限于列出的这一项或多项:加密解密数据、系统数据和用户数据。例如:以加密解密数据为示例,当目录/data下挂载的userdata的文件系统出错,则将userdata挂载到目录/data_org下,此时在原userdata挂载的/data下创建新的/data/misc/vold。并将/data_org下用于指示userdata中存储的加密解密数据的/data_org/misc/vold与/data/misc/vold建立绑定关系。由于原解密服务/解密模块在userdata的文件系统中执行的文件操作调用是根据/data从userdata中确定加密解密数据的,而经过本实施例的上述绑定关系处理后,使得系统在启动时,当系统内核启动成功后,原解密服务/解密模块执行的访问/data的文件操作调用还是能够根据/data从userdata中确定加密解密数据,所不同是此时需要依次通过/data、/data/misc/vold、以及原/data_org/misc/vold对应的文件节点后,从userdata中确定加密解密数据。
或者,可选地,本实施例提供的第一目标数据或第二目标目录还可以由电子设备的研发或维修人员指定,例如处理器可以通过电子设备的触摸屏幕显示目录列表、通过按键等交互设备接收来自研发或维修人员的选择指示,该指示包括第一目标数据和/或第二目标目录。则在S103中可以根据该指示确定具体的第一目标数据和/或用于访问第一目标数据的第二目标目录。
可选地,S103中将第一目标目录与第二目标目录建立绑定关系时,可以具体通过绑定挂载(mount-bind)实现,即,S103包括将第二目标目录绑定挂载到第一目录下的第一目标目录下。其中,绑定挂载可以通过例如Linux内核下mount系统调用结合MS_BIND挂载选项实现,或者通过例如mount可执行文件的bind参数选项实现,或者通过封装mount系统调用的脚本命令实现。绑定挂载的具体实现过程可参照现有技术,本申请实施例对目录之间绑定挂载的原理及具体实现不做限定。
需要说明的是,如图4所示的实施例中,以一个第一目标目录和一个第二目标目录之间存在绑定关系进行示例性说明,如果存在多个目标数据(例如:多个目标数据可以是加密解密数据、用户照片数据和用户聊天工具的数据)对应的多个第二目标目录,则相应地在第一目录下创建多个第一目标目录后,将多个第一目标目录与多个第二目标目录一一建立绑定关系即可,仅为数量上的增减,不再赘述。
可选的,在执行完S103中的绑定挂载步骤,建立第一目标目录与第二目标目录的绑定关系之后,所述第一数据分区可以从第二目录解除挂载。
S104:若接收到系统启动时访问第一目录下的文件操作调用。
经过前述实施例中步骤后,系统能够通过新创建的第二数据分区上的第二文件系统进行启动,而在系统启动过程中,电子设备中的处理器会发送在第二文件系统中执行的启动相关的文件操作调用,例如:打开open、读read、写write、控制I/O设备ioctl或对象属性赋值setattr等文件操作调用。
可选地,由于后续S105和S106根据文件操作调用对应第一目录下不同目录,对文件操作调用在不同的文件系统中执行。因此,在S104之后,S105和S106之前,还可以包括对文件操作对应的第一目录下的具体目录数据的判断,即,通过所接收到的文件操作调用在执行时是否访问第一目录下的第一目标目录,确定是否需要进行对第一数据分区中第一目标数据的相关操作,例如对第一目标数据的读操作或写操作。
S105:若文件操作调用对应第一目标目录,则依次通过第一目录和第一目标目录、根据绑定关系,并访问到第二目标目录,在第一文件系统中执行第一目标数据对应的文件操作调用,并向第一存储设备发送读写请求。
具体地,如果S104中接收到的文件操作调用对应第一目录下的第一目标目录,如图4所示,即文件操作调用在执行时时需要访问第一目录105下的第一目标目录1051,以对第一数据分区109中的第一目标数据进行操作,则通过第一目录105,以及前述步骤S103中所建立的绑定关系,根据第一目录105下的第一目标目录1051访问到第二目标目录2051对应的文件节点,从而确定在第一文件系统中执行第一目标数据对应的文件操作调用,并向第一存储设备发送第一目标数据对应的读写请求。从而实现了对应第一目标数据的文件操作调用不用更改其第一目录下的文件路径,而是继续通过第一目录下的第一目标目录,结合绑定关系以访问第二目标目录对应的文件节点后,就能够实现在第一文件系统中执行第一目标数据对应的文件操作调用,并实现向第一存储设备发送第一目标数据的读写请求。如图3所示,该文件操作调用在执行时,能够根据第一目录105确定第一目录下的第一目标目录1051,并根据绑定关系确定第二目标目录2051,并通过第二目标目录2051的指示确定第一数据分区109中的第一目标数据。
例如:以解密数据为示例,解密数据原本存在userdata中并挂载在目录/data/misc/vold/下,而当userdata的文件系统出错,则将userdata挂载到目录/data_org下,并将/data下的/data/misc/vold/与/data_org下的/data_org/misc/vold/与建立绑定关系。如果文件操作调用是系统启动时解密的文件操作调用,该解密的文件操作调用需要读取userdata内存储的解密数据。则在该解密的文件操作调用执行过程中,即使该解密的文件操作调用是访问/data的文件操作调用,系统还是在不修改/data目录的情况下在userdata的文件系统中执行该文件操作调用,并具体根据路径/data、/data/misc/vold访问到/data_org/misc/vold/,在该文件操作调用执行时从userdata内读取到解密数据。
S106:若文件操作调用对应第一目录下的第三目标目录,则通过第一目录下的第三目标目录,在第二文件系统中执行第二目标数据对应的文件操作调用,并向第二存储设备发送读写请求;其中,第三目标目录用于指示第二存储设备中的第二目标数据。
具体地,如果S104中接收到的文件操作调用对应第一目录下的第三目标目录,但是由于S103中只将指示第一数据分区中的第一目标数据的第二目标目录与第一目录下的第一目标目录建立了绑定关系,此时第二目录下指示第二目标数据的第三目标目录不存在与第一目录的联系,通过第一目录下的文件路径参数也就无法确定第一数据分区中存储的第二目标数据。因此,在实施例中,如果确定所接收到的文件操作调用对应的是第一数据分区中没有建立前述绑定关系的第三目标目录指示的第二目标数据时,在新建立的第二文件系统内执行对第二目标数据对应的文件操作调用,并向第二存储设备发送第二目标数据对应的读写请求。如图3所示,该文件操作调用在执行时,能够根据第一目录105确定第一目录下的第三目标目录1052,并通过第三目标目录1052的指示确定第二数据分区209中的第二目标数据。
例如:以通讯录数据为示例,通讯录数据原本存在userdata中并挂载在目录/data下,而当userdata的通讯录数据文件系统出错,userdata被挂载到目录/data_org下,/data_org下通讯录数据的目录并没有与/data下的目录建立绑定关系。如果文件操作是系统启动时通讯录的文件操作调用,并且该通讯录的文件操作调用需要读取userdata内存储的通讯录数据。则在该通讯录的文件操作调用在userdata的文件系统中执行时,可以通过路径/data和/data下通讯录数据的目录在新建的存储设备中读取到通讯录数据,由于此时新建的存储设备并没有存储原通讯录数据,因此所读取的通讯录数据可能为空。
综上,当系统使用本实施例提供的系统启动方法进行启动时,如果第一存储设备中的第一数据分区上的第一文件系统出错,通过将第一数据分区挂载在第二目录下,并通过新挂载在第一目录下的第二数据分区的第二文件系统进行启动。并且还提供了第一数据分区中重要数据的访问路径,只有当第一数据分区中第一目标数据的第二目标目录与第一目录下的第一目标目录建立绑定关系后,才能够使系统启动时第一目标数据对应的文件操作调用在第一文件系统中执行,并通过第一目录访问到第一存储设备中的第一目标数据。而如果第一数据分区中的第二目标数据没有建立上述绑定关系,则系统启动时第二目标数据对应的文件操作调用将通过第一目录在第二文件系统中执行,并通过第三目标目录访问第二存储设备中的第二目标数据。因此,当第一存储设备内的数据出错时,可将出错的数据作为本实施例中的第二目标数据,从而能够通过不建立绑定关系,使得与该出错数据对应的文件操作调用不会通过第一目录访问到第一数据分区内的出错数据,相当于隔离了第一数据分区中有错的第二目标数据,进而可以使系统完成容错启动。尤其是当第一数据分区中存储的加密解密数据、用户数据正常时,将加密解密数据和用户数据作为第一目标数据建立上述绑定关系,而第一数据分区中其他数据作为第二目标数据不建立上述绑定关系。即使第一文件系统以及第一数据分区内的其他数据出错,系统启动时加密解密数据对应的文件操作调用还是能够访问第一数据分区中的加密解密数据,而不需要对该文件操作调用所访的第一目录下的文件路径进行改动,就能实现系统的正常启动。最终实现了用户不需要进行复杂的操作就能够对电子设备进行启动,并使得用户获得转移第一存储设备中所存储的用户数据的机会,以提升用户体验。
进一步地,基于上述实施例,在一种可能的实现方式中,S101具体包括:若检测到系统启动时第一数据分区上通过第一文件系统无法正常启动的一个或多个系统应用,将第一数据分区挂载到第二目录下。其中,将通过第一文件系统无法正常启动的一个或多个系统应用对应的数据为前述实施例中所述的第二目标数据。具体地,在本实施例中,如果所述的第一数据分区的第一文件系统在启动时出错,会导致系统无法正常启动。则在系统启动时具体检测通过第一文件系统无法正常启动的一个或多个系统应用,并确定该一个或多个系统应用对应的目标数据,并在随后的系统启动方法中,将所确定的目标数据作为前述实施例中的第二目标数据而不建立绑定关系,并将启动相关的重要数据例如加密解密数据、系统数据或用户数据等作为第一目标数据进建立绑定关系。
例如:如果系统不能正常启动,并检测通过第一文件系统无法正常启动通讯录应用时,需要确定通讯录应用在第一数据分区中对应的通讯录数据,并将该通讯录数据作为前述实施例中的第二目标数据。随后,在执行如图2所示的系统启动方法时,将第一数据分区挂载到第二目录下并将第二数据分区挂载到第一目录下,并将启动相关的重要数据作为第一目标数据,将启动相关的重要数据的第二目标目录与第一目录下的第一目标目录建立绑定关系,而通讯录数据作为第二目标数据的目录不会与第一目录建立绑定关系。使得系统启动时若收到访问第一目录下的文件操作调用,而该文件操作调用对应通讯录数据时,不会根据第一目录在第一数据分区中访问出错的通讯录应用对应的通讯录数据,而是根据第二目标中的第三目标目录在第二数据分区中访问通讯录数据。因此,本实施例中,可以通过系统启动出错时对出错系统应用的检测,确定出错的系统应用对应的数据分区中的数据,并在后续的系统启动过程中不再访问原数据分区中存储的可能损坏的数据,但是会通过目标目录建立绑定关系的方式,在原数据分区中访问与系统启动相关的重要数据,从而实现了系统完成容错启动的目的。
可选地,本实施例对于第一文件系统无法正常启动的一个或多个系统应用也可以通过电子设备的研发或维修人员指定。例如当研发或维修人员确定某个系统应用无法正常启动时,可通过例如电子设备的触摸屏幕、按键等交互设备向处理器发送指示,该指示包括无法正常启动的该系统应用。
进一步地,由于本实施例提供的系统启动方法中,新创建的第二数据分区可以是内存虚拟出的块设备。因此若电子设备进行系统的重启,重启前写入第二数据分区的数据将不会被保留。因此,本实施例提供的系统启动方法还可以应用在如电子设备体验店样品机等场景中,即使未检测到文件系统出错,也可以在每次系统启动时创建新的内存块设备,对除了建立了绑定关系的重要数据才会通过绑定关系在磁盘中处理,其他数据都只会在新建的内存块设备中进行处理。进而本实施例的系统启动方法还实现了对于第一数据分区中目标数据的保护,防止出错或未出错的第一数据分区被进一步写入出错,而每次重启后都新创建内存块设备作为第二数据分区又能够丰富本实施例的应用场景。
可选地,除了在检测到第一系统出错时执行本申请提供的系统启动方法,本申请各实施例提供的系统启动方法还可以在其他相关情况下执行。例如若检测到第一数据分区或第一存储设备不能够正常写入数据或没有接收到用户的预设指令、若检测到第一数据分区中的第二目标数据损坏时,都可以通过本申请各实施例提供的系统启动方法进行启动,其实现方式与原理相同,为应用场景的简单替换,不再赘述。
进一步地,本申请还提供一种系统启动方法,其中,图4为本申请系统启动方法一实施例的流程示意图,如图4所示,本实施例在图2或3中所述的的任一实施例基础上,还包括:
S201:建立所述第一存储设备和第三存储设备的地址空间的映射关系。
具体地,在上述实施例基础上,当第一存储设备内的第一数据分区中的第一文件系统在系统启动时出错,除了在第二数据分区中创建第二文件系统替代第一文件系统挂载在第一目录下,还可以建立第一存储设备和第三存储设备的地址空间的映射关系,以进一步通过第三存储设备对第一存储设备内的数据提供写保护,保证第一存储设备的数据一致性。例如,结合图5对本实施例中的启动方法进行具体说明,其中,经过前述实施例中将第一存储设备108的第一数据分区109挂载在第二目录205下之后,还会在第二目录205下确定与第一存储设备108属于并列关系的第三存储设备308。
可选地,第三存储设备308包括内存虚拟出的块设备或部存储设备,第三存储设备308作为第一存储设备108替代设备来存储数据,其可以为不同于所述第一存储设备108的各种存储设备,比如内存虚拟出的块设备或外部存储设备,其中,内存虚拟出的块设备为使用内存模拟出的块设备。其中,内存例如可以包括片内随机存取存储器(random accessmemory,RAM)或双倍低功耗速率同步动态随机存储器(low power double data rate,LPDDR),当然,也可以是其他的内存。另外,在可能的实现方式中,只要在系统支持的情况下,第三存储设备308也可以是外部存储设备通过外部接口,诸如通用串行总线(universalserial bus,USB),连接到电子设备中形成的存储模块。可选地,Android系统中的进程init可以通过内核创建第三存储设备,其中,创建的第三存储设备308的块地址空间的范围大于或等于第一存储设备108的块地址空间的范围。
S202:若接收到对所述第一存储设备的读写请求,判断所述读写请求是读请求或写请求。
具体地,S202中所述的第一存储设备的读写请求可以是上述实施例中,S105中在第一文件系统执行文件操作调用时向第一存储设备发送的读写请求。则系统中的例如重定向逻辑模块在接收到读写请求后,将根据读写请求中携带的目标设备的设备标识判断该读写请求是发送给哪一个存储设备的。例如在图6所示的结构中,当确定出该读写请求是向第一存储设备108发送的读写请求时,重定向逻辑模块会将该读写请求重定向到块映射设备(device-mapper;DM)309。其中,该读写请求用于获取或存储系统启动时需要的数据,其中,该系统启动时需要的数据可以包括可执行代码、系统数据和用户数据等。另外,该读写请求中还携带有读写数据的目标设备的设备标识、地址信息以及所要读写的数据缓存。可选地,本实施例可以根据读写请求中的读写类型资源判断出该读写请求是读请求或写请求。
S203:若所述读写请求是写请求,则根据所述写请求中所述第一存储设备的第一地址和所述映射关系,向所述第三存储设备中的第二地址写入数据。
具体地,在本步骤中,如果根据读写请求中的读写类型字段判断出该读写请求是针对第一存储设备108的写请求,由于第一存储设备108的第一文件系统106出错而可能无法正常写入数据,则需要将写请求进行重定向。在具体的实现过程中,该写请求中包括有第一存储设备108的第一地址,则根据该第一地址和S201中建立的映射关系,通过至少一个块映射设备309将写请求映射至第三存储设备308的第二地址,并在第三存储设备308的第二地址写入数据。
例如:若第一存储设备108的块地址10、块地址20、块地址30和块地址40分别和第三存储设备308的块地址15、块地址25、块地址35和块地址45之间存在映射关系,若接收到针对第一存储设备108的写请求,且该写请求中的第一地址为块地址20,则将通过至少一个块映射设备将写请求映射至第三存储设备308的块地址25,并在块地址25写入数据。
另外,在实际应用中,进程init需要通过内核创建块映射设备,并加载块映射设备的映射功能表,块映射设备会将针对第一存储设备108的写请求,映射至第三存储设备308的相应地址。
在本实施例中,该块映射设备309作为Device-Mapper设备类的一个子类型实现,上述块映射设备的映射功能表指示块映射设备把读写请求克隆、拆分为页面大小数据块的小读写请求,并将针对第一存储设备108的写请求映射至第三存储设备308。
并且当第三存储设备308为内存虚拟出来的块设备时,第三存储设备308也可以实现在块映射设备中,作为块映射设备的一个子功能模块,来实现数据写入读取的功能。而当第三存储设备308为外部存储设备,将写请求映射至外部存储设备的第二地址,在第二地址写入数据,可以是将块设备写请求数据映射到外部存储设备的指定存储位置、指定分区或指定文件中,另外,为了提高安全性,通常需要对写入到外部存储设备的数据进行加密处理。其中,第三存储设备308的功能也可以用下列方式实现:具体实现可能用整个外部存储设备做第三存储设备308,也有可能用其上的某个分区做第三存储设备308,还有可能直接指定其上的某段地址空间做第三存储设备308,还有可能用外部存储某个分区文件系统上的某个大文件做映射目标。
S204:若所述读写请求是读请求,则判断在本次系统启动过程中所述读请求中所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据。
具体地,在S204中需要判断本次系统启动过程中第四地址是否被写过数据,若是则执行S205,若否则执行S206。其中,当接收到向第一存储设备108发送的读写请求后,若判断出该读写请求是针对第一存储设备108的读请求,由于在系统启动过程中,若存在针对第一存储设备108的写请求时,会将数据写入到第三存储设备308,因此,在读取数据时,将需要判断与读请求中包括的第三地址存在映射关系的第四地址是否被写入过数据。
在一种可能的实现方式中,电子设备中的处理器将会根据块映射设备309中建立的位图信息,判断第四地址是否被写过数据,其中,该位图信息用于标识与第一存储设备108的地址空间对应的第三存储设备308的地址空间中的各地址是否被写过数据。
具体的,在启动系统时,会在块映射设备309中分配内存空间,并在该内存空间中建立位图信息,其中,在初始状态时,该位图信息中的各标志位可以被初始化为全0或者全1,各标志位分别用于表示因映射第一存储设备108的写请求而引起的第三存储设备308各地址数据的写状态。当第三存储设备308的某个第四地址被写入数据时,则块映射设备309会对该第四地址对应的标志位的值进行更新。例如:若第三存储设备308包括有地址1-地址10,则位图信息的初始值可以为“0000000000”,其中,位图信息中的各标志位分别用于表示地址1-地址10中数据的写状态,当标志位的值为0时,表示对应的地址没有被写入数据。若第三存储设备308的地址3被写入了数据,则块映射设备309会将位图信息中的第3个标志位的值更新为1,即位图信息被更新为“0010000000”。值得注意的是,位图信息的初始值也可以为“1111111111”,若第三存储设备308的某个第四地址被写入了数据,则块映射设备309会将位图信息中第四地址的对应标志位的值由1更新为0。
进一步地,在S204中判断在本次启动过程中读写请求中的第三地址对应的第四地址是否被写过数据时,可以根据位图信息中第四地址的对应标志位,判断第四地址是否被写过数据。具体的,可以根据位图信息中各标志位的值,确定第四地址是否被写入过数据。例如:若第三存储设备308包括有地址1-地址10,且位图信息为“1010010001”,若假设0代表第三存储设备308的第四地址没有被写过数据,1代表第三存储设备308的第四地址被写过数据,则根据该位图信息,可以判断出地址1、地址3、地址6和地址10被写入过数据。
在本实施例中,由于位图信息用于标识与第一存储设备108的地址空间对应的第三存储设备308的地址空间中的各地址是否被写过数据,因此,可以通过位图信息实现快速查找和判断读写请求中第四地址是否被写过数据,这样可以快速确定出是从第一存储设备108读取数据还是从第三存储设备308读取数据,从而提高了数据读取的效率。
S205:若判断在本次启动过程中所述第四地址被写过数据,则从所述第四地址读取数据。
具体地,若判断出在本次启动过程中第三存储设备308的第四地址被写过数据,为了保证读取的数据的正确性,将从第三存储设备308的第四地址读取数据。
S206:若判断在本次启动过程中所述第四地址没有被写过数据,则从所述第三地址读取数据。
具体地,若判断出在本次启动过程中第三存储设备308的第四地址没有被写过数据,则将从第一存储设备108的第三地址读取数据,这样可以实现对第一存储设备108的只读不写。
综上,本实施例提供的系统启动方法,能够在第一存储设备中第一数据分区的第一文件系统出错时,进一步为第一存储设备内存储的数据提供保护。即通过建立第三存储设备与第一存储设备的映射关系,保证在系统启动过程中能够读取到第一存储设备的数据,还能够将数据正常写入第三存储设备,并且通过映射关系读取到第一存储设备或第三存储设备内的数据。因此,本实施例提供的系统启动方法能够在存储设备中数据分区的文件系统发生问题时,可以保证系统的正常启动,还能够通过第三存储设备为第一存储设备提供只读保护,避免第一存储设备中数据的再次写入破坏。还能够使实现尽可能备份出存储设备中未损坏的数据,而用户不需要进行复杂的操作就能获得转移重要的用户数据的机会,从而进一步提升了用户体验。
进一步地,通过上述图2中实施例,或者图2结合图5中的实施例,进行文件操作调用的执行和/或数据的读写后,作为本实施例执行主体的电子设备将根据所获取的数据启动卷原生服务vold、其它原生服务、虚拟机、系统服务和锁屏应用,并接收用户根据锁屏应用输入的密码、图案或指纹数据,然后根据密码、图案或指纹数据,通过卷原生服务vold访问用户数据分区文件系统,使系统中的用户数据可解密,用户数据可访问以启动系统,启动完毕正常运行。
具体的,在读写数据后,进程init继续执行,并按正常流程挂载各分区到文件系统节点,即系统目录中,然后按初始化脚本启动系统原生服务,卷原生服务vold和解密模块e4crypt按正常流程,首先从系统目录中的/data目录访问系统userdata分区,使系统和设备数据可解密,其他原生服务可以按正常流程从/data目录写入或读取数据。这样,各系统原生服务都不需要更改/data目录的情况下,系统仍然可以按正常流程都通过/data目录启动,从而使设备数据可解密,使得进程init及其所启动的原生服务能正常读写和运行。然后,会继续启动Java虚拟机和系统服务SystemServer,需要进行说明的是,在第一存储设备无法正常写入数据的状态下,会指示系统禁止对程序包进行优化和编译,以节省系统内存使用量。接着,系统会启动锁屏应用,用户将通过锁屏应用输入密码、图案或指纹数据,电子设备在接收到用户根据锁屏应用输入的密码、图案或指纹数据后,将根据该密码、图案或指纹数据通过卷原生服务vold和解密模块e4crypt再次按正常流程从系统目录中的/data目录访问用户数据(userdata)分区文件系统,使系统中的用户数据可解密,用户数据可访问以启动系统,启动完毕正常运行。由于系统在用户输入输入密码、图案或指纹数据,解锁屏幕后,仍是按正常流程运行,从而让解密相关原生服务vold和解密模块e4crypt仍能从/data目录解密出位于用户数据(userdata)分区上的设备和用户数据。
可选地,在上述实施例中,在系统正常启动后,电子设备将会输出提示信息,该提示信息用于提醒用户备份数据。具体的,为了保证用户数据不丢失,在系统正常启动后,如果检测到用户数据分区的文件系统出错,需要提醒用户系统存储异常应紧急备份或导出数据到外部存储,其中,紧急备份应用作为屏幕解锁后的第一界面,将会提醒用户进行数据备份,这样,用户将会根据自己的需求,操作紧急备份应用,以将数据导出到外部存储设备中,从而可以保证数据不丢失。需要进一步说明的是,紧急备份应用实现为系统中的一个核心应用,在第一存储设备正常时,即系统正常运行时紧急备份应用不可见,其仅在第一存储设备无法正常写入数据或接收到用户的预设指令时才会启动运行。该紧急备份应用以在第一存储设备无法正常写入数据的情况下紧急导出数据为目的,还具有以下特征:1)不会将数据备份到第一存储设备,即NAND闪存或eMMC中,因为其已经处于异常状态;2)自带系统和用户应用程序管理模块,自带后台运行应用管理和内存清理的功能以保证系统有足够空闲内存,优先级设置高于普通应用。
为了实现如图2所示的方法,本申请还提供一种系统启动装置,该装置包括:
处理单元,用于若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下;
所述处理单元,还用于在第二存储设备中创建第二数据分区和第二文件系统,并将所述第二数据分区挂载到所述第一目录下;
所述处理单元,还用于在所述第一目录下创建第一目标目录,并建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系;其中,所述第二目标目录用于指示所述第一文件系统中的第一目标数据;
所述处理单元,还用于若接收到系统启动时访问所述第一目录下的文件操作调用;
所述处理单元,还用于若所述文件操作调用对应所述第一目标目录,则依次通过所述第一目录和所述第一目标目录,并根据所述绑定关系,访问到所述第二目标目录,在所述第一文件系统中执行所述第一目标数据对应的所述文件操作调用,并向所述第一存储设备发送读写请求;
所述处理单元,还用于若所述文件操作调用对应所述第一目录下的第三目标目录,则通过所述第一目录下的所述第三目标目录,在所述第二文件系统中执行第二目标数据对应的文件操作调用,并向所述第二存储设备发送读写请求;其中,所述第三目标目录用于指示所述第二文件系统中的所述第二目标数据。
可选地,所述处理单元,还用于:
建立所述第一存储设备和第三存储设备的地址空间的映射关系;
若接收到对所述第一存储设备的读写请求,判断所述读写请求是读请求或写请求;
若所述读写请求是写请求,则根据所述写请求中所述第一存储设备的第一地址和所述映射关系,向所述第三存储设备中的第二地址写入数据;
若所述读写请求是读请求,则判断在本次系统启动过程中所述读请求中所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据;
若判断在本次启动过程中所述第四地址被写过数据,则从所述第四地址读取数据;
若判断在本次启动过程中所述第四地址没有被写过数据,则从所述第三地址读取数据。
可选地,所述第一目标数据至少包括以下的一项或多项:
加密解密数据、系统数据和用户数据。
可选地,所述处理单元具体用于,
确定所述第二存储设备中的第二数据分区;
确定所述第一文件系统的目标文件格式;
根据所述目标文件格式格式化所述第二数据分区,在所述第二数据分区中创建与所述目标文件格式相同的第二文件系统。
可选地,所述处理单元具体用于,
将所述第二目标目录绑定挂载到所述第一目录下的所述第一目标目录下。
可选地,所述处理单元具体用于,
建立位图信息;所述位图信息用于标识与所述第一存储设备的地址空间对应的所述第三存储设备的地址空间中的各地址是否被写过数据;
若向所述第三存储设备的第四地址写入数据,则对所述位图信息中所述第四地址对应的标志位的值进行更新;
所述判断在本次启动过程中所述读写请求中的数据在所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据,包括:
根据所述位图信息中所述第四地址的对应标志位,判断所述第四地址是否被写过数据。
可选地,所述处理单元具体用于,
若检测到系统启动时所述第一数据分区上通过所述第一文件系统无法正常启动的一个或多个系统应用,将所述第一数据分区挂载到第二目录下。
可选地,所述一个或多个系统应用对应的数据为所述第二目标数据。
可选地,所述第一存储设备包括通用闪存存储UFS或嵌入式多媒体卡eMMC;
所述第二存储设备包括内存虚拟出的块设备或外部存储设备。
可选地,所述第三存储设备包括内存虚拟出的块设备或外部存储设备。
本申请实施例所示的系统启动装置,可以执行上述任一项实施例所示的系统启动方法的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
需要说明的是,应理解以上装置的各个单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元通过软件通过处理元件调用的形式实现,部分单元通过硬件的形式实现。例如,处理单元可以为单独设立的处理元件,也可以集成在该电子设备的某一个芯片中实现,此外,也可以以程序的形式存储于电子设备的存储器中,由该电子设备的某一个处理元件调用并执行该处理单元的功能。其它单元的实现与之类似。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个单元通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processingunit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
图6为本申请电子设备一实施例的结构示意图。如图6所示,该电子设备100包括:处理器110和指令存储器120。所述处理器110用于耦合指令存储器120,并执行所述指令存储器120中的指令。
所述处理器110用于在所述电子设备100启动的过程中基于所述指令执行下述动作:
若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下;
在第二存储设备中创建第二数据分区和第二文件系统,并将所述第二数据分区挂载到所述第一目录下;
在所述第一目录下创建第一目标目录,并建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系;其中,所述第二目标目录用于指示所述第一文件系统中的第一目标数据;
若接收到系统启动时访问所述第一目录下的文件操作调用;
若所述文件操作调用对应所述第一目标目录,则依次通过所述第一目录和所述第一目标目录,并根据所述绑定关系,访问到所述第二目标目录,在所述第一文件系统中执行所述第一目标数据对应的所述文件操作调用,并向所述第一存储设备发送读写请求;
若所述文件操作调用对应所述第一目录下的第三目标目录,则通过所述第一目录下的所述第三目标目录,在所述第二文件系统中执行第二目标数据对应的文件操作调用,并向所述第二存储设备发送读写请求;其中,所述第三目标目录用于指示所述第二文件系统中的所述第二目标数据。
可选地,所述处理器,还用于:
建立所述第一存储设备和第三存储设备的地址空间的映射关系;
若接收到对所述第一存储设备的读写请求,判断所述读写请求是读请求或写请求;
若所述读写请求是写请求,则根据所述写请求中所述第一存储设备的第一地址和所述映射关系,向所述第三存储设备中的第二地址写入数据;
若所述读写请求是读请求,则判断在本次系统启动过程中所述读请求中所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据;
若判断在本次启动过程中所述第四地址被写过数据,则从所述第四地址读取数据;
若判断在本次启动过程中所述第四地址没有被写过数据,则从所述第三地址读取数据。
可选地,所述第一目标数据至少包括以下的一项或多项:
加密解密数据、系统数据和用户数据。
可选地,所述处理器具体用于,
确定所述第二存储设备中的第二数据分区;
确定所述第一文件系统的目标文件格式;
根据所述目标文件格式格式化所述第二数据分区,在所述第二数据分区中创建与所述目标文件格式相同的第二文件系统。
可选地,所述处理器具体用于,
将所述第二目标目录绑定挂载到所述第一目录下的所述第一目标目录下。
可选地,所述处理器具体用于,
建立位图信息;所述位图信息用于标识与所述第一存储设备的地址空间对应的所述第三存储设备的地址空间中的各地址是否被写过数据;
若向所述第三存储设备的第四地址写入数据,则对所述位图信息中所述第四地址对应的标志位的值进行更新;
所述判断在本次启动过程中所述读写请求中的数据在所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据,包括:
根据所述位图信息中所述第四地址的对应标志位,判断所述第四地址是否被写过数据。
可选地,所述处理器具体用于,
若检测到系统启动时所述第一数据分区上通过所述第一文件系统无法正常启动的一个或多个系统应用,将所述第一数据分区挂载到第二目录下。
可选地,所述一个或多个系统应用对应的数据为所述第二目标数据。
可选地,所述第一存储设备包括通用闪存存储UFS或嵌入式多媒体卡eMMC;
所述第二存储设备包括内存虚拟出的块设备或外部存储设备。
可选地,所述第三存储设备包括内存虚拟出的块设备或外部存储设备。
另外,以上各个单元的部分或全部也可以通过集成电路的形式内嵌于该电子设备的某一个芯片上来实现。且它们可以单独实现,也可以集成在一起。即以上这些单元可以被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digitalsignal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gatearray,FPGA)等。
在实际产品中,第二存储设备可能会是内存虚拟出的块设备或外部存储设备,而所述指令也通常会在执行时被写入内存中。也就是说,第二存储设备和指令存储器在实际产品中可能会处于同一个硬件实体里,也就是位于内存里。但这并不会发生问题,因为在启动过程中需要向第一存储设备写入的数据,往往是少量的改动字节,即使映射到内存中也不会占用太多空间。而在本申请实施例中将所述内存中的地址空间拆分为第二存储设备和指令存储器也仅仅是为了描述方便,其二者可以如上文所述那样处于同一个硬件实体中,也可以处于不同的硬件实体中,这都不应该构成本申请实施的限制。
在可选择的实施方案中,指令存储器也可以被视作用于保存计算机程序指令的存储器,也就是程序指令被写入内存之前所处的存储器,也就是第一存储设备。也就是说,指令存储器和第一存储设备可以为统一的实体,虽然本申请实施例同时提到了指令存储器和第一存储设备,但这仅仅是为了从应用可能上说明的方便,二者属于同一实体并不会导致本领域技术人员搞不清楚本申请技术方案。
本申请还提供一种可读存储介质,保存有指令,所述指令用于指示所述电子设备在启动过程中执行下列动作:
若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下;
在第二存储设备中创建第二数据分区和第二文件系统,并将所述第二数据分区挂载到所述第一目录下;
在所述第一目录下创建第一目标目录,并建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系;其中,所述第二目标目录用于指示所述第一文件系统中的第一目标数据;
若接收到系统启动时访问所述第一目录下的文件操作调用;
若所述文件操作调用对应所述第一目标目录,则依次通过所述第一目录和所述第一目标目录,并根据所述绑定关系,访问到所述第二目标目录,在所述第一文件系统中执行所述第一目标数据对应的所述文件操作调用,并向所述第一存储设备发送读写请求;
若所述文件操作调用对应所述第一目录下的第三目标目录,则通过所述第一目录下的所述第三目标目录,在所述第二文件系统中执行第二目标数据对应的文件操作调用,并向所述第二存储设备发送读写请求;其中,所述第三目标目录用于指示所述第二文件系统中的所述第二目标数据。
可选地,还用于执行:建立所述第一存储设备和第三存储设备的地址空间的映射关系;
若接收到对所述第一存储设备的读写请求,判断所述读写请求是读请求或写请求;
若所述读写请求是写请求,则根据所述写请求中所述第一存储设备的第一地址和所述映射关系,向所述第三存储设备中的第二地址写入数据;
若所述读写请求是读请求,则判断在本次系统启动过程中所述读请求中所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据;
若判断在本次启动过程中所述第四地址被写过数据,则从所述第四地址读取数据;
若判断在本次启动过程中所述第四地址没有被写过数据,则从所述第三地址读取数据。
可选地,所述第一目标数据至少包括以下的一项或多项:
加密解密数据、系统数据和用户数据。
可选地,还用于执行:确定所述第二存储设备中的第二数据分区;
确定所述第一文件系统的目标文件格式;
根据所述目标文件格式格式化所述第二数据分区,在所述第二数据分区中创建与所述目标文件格式相同的第二文件系统。
可选地,还用于执行:将所述第二目标目录绑定挂载到所述第一目录下的所述第一目标目录下。
可选地,还用于执行:建立位图信息;所述位图信息用于标识与所述第一存储设备的地址空间对应的所述第三存储设备的地址空间中的各地址是否被写过数据;
若向所述第三存储设备的第四地址写入数据,则对所述位图信息中所述第四地址对应的标志位的值进行更新;
所述判断在本次启动过程中所述读写请求中的数据在所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据,包括:
根据所述位图信息中所述第四地址的对应标志位,判断所述第四地址是否被写过数据。
可选地,还用于执行:若检测到系统启动时所述第一数据分区上通过所述第一文件系统无法正常启动的一个或多个系统应用,将所述第一数据分区挂载到第二目录下。
可选地,所述一个或多个系统应用对应的数据为所述第二目标数据。
可选地,所述第一存储设备包括通用闪存存储UFS或嵌入式多媒体卡eMMC;
所述第二存储设备包括内存虚拟出的块设备或外部存储设备。
可选地,所述第三存储设备包括内存虚拟出的块设备或外部存储设备。
本申请还提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得电子设备实施前述各种实施方式提供的系统启动方法。
本申请实施例还提供了一种系统的启动装置,包括至少一个存储元件和至少一个处理元件、所述至少一个存储元件用于存储程序,该程序被执行时,使得所述系统的启动装置执行上述任一实施例中的电子设备的操作。
实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一可读取存储器中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储器(存储介质)包括:只读存储器(英文:read-only memory,ROM)、RAM、快闪存储器、硬盘、固态硬盘、磁带(magnetic tape)、软盘(floppy disk)、光盘(optical disc)及其任意组合。

Claims (13)

1.一种系统启动方法,其特征在于,包括:
若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下;
在第二存储设备中创建第二数据分区和第二文件系统,并将所述第二数据分区挂载到所述第一目录下;
在所述第一目录下创建第一目标目录,并建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系;其中,所述第二目标目录用于指示所述第一文件系统中的第一目标数据;
若接收到系统启动时访问所述第一目录下的文件操作调用;
若所述文件操作调用对应所述第一目标目录,则依次通过所述第一目录和所述第一目标目录,并根据所述绑定关系,访问到所述第二目标目录,在所述第一文件系统中执行所述第一目标数据对应的所述文件操作调用,并向所述第一存储设备发送读写请求;
若所述文件操作调用对应所述第一目录下的第三目标目录,则通过所述第一目录下的所述第三目标目录,在所述第二文件系统中执行第二目标数据对应的文件操作调用,并向所述第二存储设备发送读写请求;其中,所述第三目标目录用于指示所述第二文件系统中的所述第二目标数据。
2.根据权利要求1所述的方法,其特征在于,还包括:
建立所述第一存储设备和第三存储设备的地址空间的映射关系;
若接收到对所述第一存储设备的读写请求,判断所述读写请求是读请求或写请求;
若所述读写请求是写请求,则根据所述写请求中所述第一存储设备的第一地址和所述映射关系,向所述第三存储设备中的第二地址写入数据;
若所述读写请求是读请求,则判断在本次系统启动过程中所述读请求中所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据;
若判断在本次启动过程中所述第四地址被写过数据,则从所述第四地址读取数据;
若判断在本次启动过程中所述第四地址没有被写过数据,则从所述第三地址读取数据。
3.根据权利要求1或2所述的方法,其特征在于,
所述第一目标数据至少包括以下的一项或多项:
加密解密数据、系统数据和用户数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述在第二存储设备中创建第二数据分区和第二文件系统,包括:
确定所述第二存储设备中的第二数据分区;
确定所述第一文件系统的目标文件格式;
根据所述目标文件格式格式化所述第二数据分区,在所述第二数据分区中创建与所述目标文件格式相同的第二文件系统。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述建立所述第一目标目录与所述第二目录下的第二目标目录的绑定关系,包括:
将所述第二目标目录绑定挂载到所述第一目录下的所述第一目标目录下。
6.根据权利要求2所述的方法,其特征在于,还包括:
建立位图信息;所述位图信息用于标识与所述第一存储设备的地址空间对应的所述第三存储设备的地址空间中的各地址是否被写过数据;
若向所述第三存储设备的第四地址写入数据,则对所述位图信息中所述第四地址对应的标志位的值进行更新;
所述判断在本次启动过程中所述读写请求中的数据在所述第一存储设备中的第三地址对应的所述第三存储设备中的第四地址是否被写过数据,包括:
根据所述位图信息中所述第四地址的对应标志位,判断所述第四地址是否被写过数据。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述若检测到第一目录下挂载的第一存储设备中的第一数据分区上的第一文件系统在系统启动时出错,将所述第一数据分区挂载到第二目录下,包括:
若检测到系统启动时所述第一数据分区上通过所述第一文件系统无法正常启动的一个或多个系统应用,将所述第一数据分区挂载到第二目录下。
8.根据权利要求7所述的方法,其特征在于,
所述一个或多个系统应用对应的数据为所述第二目标数据。
9.根据权利要求1-8任一项所述的方法,其特征在于,
所述第一存储设备包括通用闪存存储UFS或嵌入式多媒体卡eMMC;
所述第二存储设备包括内存虚拟出的块设备或外部存储设备。
10.根据权利要求2所述的方法,其特征在于,
所述第三存储设备包括内存虚拟出的块设备或外部存储设备。
11.一种系统启动装置,其特征在于,用于实现如权利要求1-10中任一项所述的方法。
12.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有指令,所述处理器调用所述指令时,使所述电子设备执行如权利要求1-10任一项所述的方法。
13.一种可读存储介质,其特征在于,包括指令,所述指令用于指示电子设备在启动过程中执行如权利要求1-10任一项所述的方法。
CN201811366382.4A 2018-11-16 2018-11-16 系统启动方法、装置、电子设备及存储介质 Active CN109710317B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811366382.4A CN109710317B (zh) 2018-11-16 2018-11-16 系统启动方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811366382.4A CN109710317B (zh) 2018-11-16 2018-11-16 系统启动方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN109710317A true CN109710317A (zh) 2019-05-03
CN109710317B CN109710317B (zh) 2020-07-07

Family

ID=66254905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811366382.4A Active CN109710317B (zh) 2018-11-16 2018-11-16 系统启动方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN109710317B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321172A (zh) * 2019-06-03 2019-10-11 平安科技(深圳)有限公司 网络块设备的分区识别方法、装置、设备和存储介质
CN110569229A (zh) * 2019-08-16 2019-12-13 苏州浪潮智能科技有限公司 一种用于处理数据库运行产生的数据的方法和装置
CN111444116A (zh) * 2020-03-23 2020-07-24 海信电子科技(深圳)有限公司 存储空间碎片处理方法及装置
CN112817932A (zh) * 2020-05-19 2021-05-18 中兴通讯股份有限公司 一种数据转移方法、设备和存储介质
CN113076225A (zh) * 2021-03-30 2021-07-06 山东英信计算机技术有限公司 一种外接存储介质检测方法、装置、设备及存储介质
CN113434470A (zh) * 2021-06-24 2021-09-24 华云数据控股集团有限公司 数据分布方法、装置及电子设备
CN113868059A (zh) * 2021-09-27 2021-12-31 苏州浪潮智能科技有限公司 一种业务系统启动检测方法、装置、电子设备及存储介质
CN117130541A (zh) * 2023-03-02 2023-11-28 荣耀终端有限公司 存储空间配置方法及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7110126B1 (en) * 1999-10-25 2006-09-19 Silverbrook Research Pty Ltd Method and system for the copying of documents
CN101482837A (zh) * 2009-01-21 2009-07-15 华为技术有限公司 闪存文件系统纠错方法和装置
CN106446723A (zh) * 2016-09-21 2017-02-22 电子科技大学 安卓移动终端数据隔离方法
US9798486B1 (en) * 2013-12-18 2017-10-24 EMC IP Holding Company LLC Method and system for file system based replication of a deduplicated storage system
CN107918568A (zh) * 2017-11-13 2018-04-17 北京全路通信信号研究设计院集团有限公司 一种防止Linux系统重启失败的方法
CN108763099A (zh) * 2018-04-18 2018-11-06 华为技术有限公司 系统的启动方法、装置、电子设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7110126B1 (en) * 1999-10-25 2006-09-19 Silverbrook Research Pty Ltd Method and system for the copying of documents
CN101482837A (zh) * 2009-01-21 2009-07-15 华为技术有限公司 闪存文件系统纠错方法和装置
US9798486B1 (en) * 2013-12-18 2017-10-24 EMC IP Holding Company LLC Method and system for file system based replication of a deduplicated storage system
CN106446723A (zh) * 2016-09-21 2017-02-22 电子科技大学 安卓移动终端数据隔离方法
CN107918568A (zh) * 2017-11-13 2018-04-17 北京全路通信信号研究设计院集团有限公司 一种防止Linux系统重启失败的方法
CN108763099A (zh) * 2018-04-18 2018-11-06 华为技术有限公司 系统的启动方法、装置、电子设备和存储介质

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321172A (zh) * 2019-06-03 2019-10-11 平安科技(深圳)有限公司 网络块设备的分区识别方法、装置、设备和存储介质
CN110569229A (zh) * 2019-08-16 2019-12-13 苏州浪潮智能科技有限公司 一种用于处理数据库运行产生的数据的方法和装置
CN111444116A (zh) * 2020-03-23 2020-07-24 海信电子科技(深圳)有限公司 存储空间碎片处理方法及装置
CN111444116B (zh) * 2020-03-23 2022-11-25 海信电子科技(深圳)有限公司 存储空间碎片处理方法及装置
CN112817932A (zh) * 2020-05-19 2021-05-18 中兴通讯股份有限公司 一种数据转移方法、设备和存储介质
CN113076225A (zh) * 2021-03-30 2021-07-06 山东英信计算机技术有限公司 一种外接存储介质检测方法、装置、设备及存储介质
CN113434470A (zh) * 2021-06-24 2021-09-24 华云数据控股集团有限公司 数据分布方法、装置及电子设备
CN113434470B (zh) * 2021-06-24 2024-03-19 华云数据控股集团有限公司 数据分布方法、装置及电子设备
CN113868059A (zh) * 2021-09-27 2021-12-31 苏州浪潮智能科技有限公司 一种业务系统启动检测方法、装置、电子设备及存储介质
CN113868059B (zh) * 2021-09-27 2023-06-20 苏州浪潮智能科技有限公司 一种业务系统启动检测方法、装置、电子设备及存储介质
CN117130541A (zh) * 2023-03-02 2023-11-28 荣耀终端有限公司 存储空间配置方法及相关设备
CN117130541B (zh) * 2023-03-02 2024-06-04 荣耀终端有限公司 存储空间配置方法及相关设备

Also Published As

Publication number Publication date
CN109710317B (zh) 2020-07-07

Similar Documents

Publication Publication Date Title
CN109710317A (zh) 系统启动方法、装置、电子设备及存储介质
CN108763099A (zh) 系统的启动方法、装置、电子设备和存储介质
CN105164657B (zh) 程序数据至非易失性存储器的选择性备份系统及方法
US11954220B2 (en) Data protection for container storage
CN100426238C (zh) Vex-虚拟扩展框架
US8484452B2 (en) Multi-operating system (OS) booting apparatus, multi-OS booting program, recording medium, and multi-OS booting method
JP4596715B2 (ja) 別個のメモリ領域におけるデータの組の種々のバージョンを記憶する配列及びメモリ内のデータの組を更新する方法
CN102298529B (zh) 为系统提供硅集成代码
CN104662552A (zh) 安全的盘访问控制
CN107003864A (zh) 恢复片上系统设备
CN105184166A (zh) 基于内核的安卓程序实时行为分析方法及系统
CN106133704A (zh) 内存故障隔离方法和装置
CN104517061B (zh) 加密文件系统的方法及挂载加密文件系统的方法
CN101714124A (zh) 存储器保护方法及信息处理装置
CN103412822A (zh) 操作非易失性内存和数据操作的方法和相关装置
CN108509215A (zh) 一种系统软件的更换方法、装置、终端设备及存储介质
CN101625897A (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
CN110704161A (zh) 虚拟机创建方法、装置及计算机设备
CN106484313A (zh) 数据信息备份方法、数据备份方法及装置
CN109683818A (zh) 一种数据存储方法、设备及存储介质
CN106126277A (zh) 多个微处理器及外存储器系统的升级方法
CN106844177A (zh) Linux日志管理方法、装置和系统
CN106021030A (zh) 一种数据库的系统、一种处理数据库故障的方法及装置
JP2006338201A (ja) 論理ボリューム管理装置、論理ボリューム管理方法およびプログラム
CN111443991B (zh) 智能卡控制方法、装置及智能卡

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant