发明内容
本发明提供了操作系统恢复方法及系统,能够在系统无法启动的情况下依然能够实现将系统恢复到用户执行某操作之前的状态。
本发明提供了如下方案:
一种操作系统恢复方法,包括:
以第一操作系统作为当前运行环境,对在所述第一操作系统中执行的处理操作进行监控;
当监控到预定的处理操作时,记录所述第一操作系统中的文件处理操作,对处理前的文件进行备份,并安装第二操作系统;其中,所述备份的文件包括用户文件以及所述第一操作系统的核心文件;所述用户文件包括所述第二操作系统中无法处理的文件;
如果在预定的处理操作之后所述第一操作系统无法正常启动,则以所述第二操作系统作为当前运行环境,利用所备份的核心文件对所述第一操作系统进行恢复,以使得所述第一操作系统能正常启动;
在所述第一操作系统正常启动后,利用所备份的用户文件对所述第一操作系统进行恢复,以便将所述第一操作系统恢复到执行所述预定的处理操作之前的状态。
可选的,所述核心文件包括启动和进入所述第一操作系统所必需的文件。
可选的,所述第二操作系统包括预安装环境、剪裁处理过的磁盘操作系统DOS或Linux操作系统。
可选的,所述第二操作系统中无法处理的文件包括:文件路径超过预置的长度阈值的用户文件,或者,文件路径中包含有预置类型的字符的用户文件。
可选的,所述预置类型的字符包括第二操作系统中不能识别的字符,或者第二操作系统中预留的关键字符。
可选的,所述记录所述第一操作系统中的文件处理操作包括:
记录被处理文件的位置信息及标识信息之间的对应关系;
所述利用所备份的核心文件对所述第一操作系统进行恢复包括:
根据所述对应关系以及所备份的核心文件的标识信息,确定所备份核心文件应恢复到的位置,并将所备份的核心文件恢复到对应的位置处;
所述利用所备份的用户文件对所述第一操作系统进行恢复包括:
根据所述对应关系以及所备份的用户文件的标识信息,确定所备份的用户文件应恢复到的位置,并将所备份的用户文件恢复到对应的位置处。
可选的,还包括:
记录被处理文件的属性信息,所述属性信息包括是否具有第一操作系统开发公司的统一签名,和/或被处理文件的MD5值;
所述利用所备份的核心文件对所述第一操作系统进行恢复之前还包括:
判断所备份的核心文件的属性信息是否与所记录的被处理文件的属性信息相同,如果相同,则触发执行所述利用所备份的核心文件对所述第一操作系统进行恢复的步骤;
所述利用所备份的用户文件对所述第一操作系统进行恢复包括:
判断所备份的用户文件的属性信息是否与所记录的被处理文件的属性信息相同,如果相同,则触发执行所述利用所备份的用户文件对所述第一操作系统进行恢复的步骤。
可选的,在安装所述第二操作系统之后,还包括:
通过修改主引导记录MBR的方式生成所述第二操作系统的启动入口,以便在所述第一操作系统无法正常启动时,通过所述启动入口启动所述第二操作系统,以所述第二操作系统作为当前运行环境,对所备份的核心文件进行恢复。
一种操作系统恢复系统,包括:
监控单元,用于以第一操作系统作为当前运行环境,对在所述第一操作系统中执行的处理操作进行监控;
记录备份单元,用于当监控到预定的处理操作时,记录所述第一操作系统中的文件处理操作,对处理前的文件进行备份,并安装第二操作系统;其中,所述备份的文件包括用户文件以及所述第一操作系统的核心文件;所述用户文件包括所述第二操作系统中无法处理的文件;
第一恢复单元,用于如果在预定的处理操作之后所述第一操作系统无法正常启动,则以所述第二操作系统作为当前运行环境,利用所备份的核心文件对所述第一操作系统进行恢复,以使得所述第一操作系统能正常启动;
第二恢复单元,用于在所述第一操作系统正常启动后,利用所备份的用户文件对所述第一操作系统进行恢复,以便将所述第一操作系统恢复到执行所述预定的处理操作之前的状态。
可选的,所述核心文件包括启动和进入所述第一操作系统所必需的文件;所述第二操作系统包括预安装环境、剪裁处理过的磁盘操作系统DOS或Linux操作系统;所述第二操作系统中无法处理的文件包括:文件路径超过预置的长度阈值的用户文件,或者,文件中包含有预置类型的字符的用户文件。
可选的,所述预置类型的字符包括第二操作系统中不能识别的字符,或者第二操作系统中预留的关键字符。
可选的,所述记录备份单元具体用于:
记录被处理文件的位置信息及标识信息之间的对应关系;
所述第一恢复单元具体用于:
根据所述对应关系以及所备份的核心文件的标识信息,确定所备份核心文件应恢复到的位置,并将所备份的核心文件恢复到对应的位置处;
所述第二恢复单元具体用于:
根据所述对应关系以及所备份的用户文件的标识信息,确定所备份的用户文件应恢复到的位置,并将所备份的用户文件恢复到对应的位置处。
可选的,还包括:
属性信息记录单元,用于记录被处理文件的属性信息,所述属性信息包括是否具有第一操作系统开发公司的统一签名,和/或被处理文件的MD5值;
所述第一恢复单元具体用于:判断所备份的核心文件的属性信息是否与所记录的被处理文件的属性信息相同,如果相同,则触发执行所述利用所备份的核心文件对所述第一操作系统进行恢复的步骤;
所述第二恢复单元具体用于:
判断所备份的用户文件的属性信息是否与所记录的被处理文件的属性信息相同,如果相同,则触发执行所述利用所备份的用户文件对所述第一操作系统进行恢复的步骤。
可选的,还包括:
启动入口生成单元,用于在安装所述第二操作系统之后,通过修改主引导记录MBR的方式生成所述第二操作系统的启动入口,以便在所述第一操作系统无法正常启动时,通过所述启动入口启动所述第二操作系统,以所述第二操作系统作为当前运行环境,对所备份的核心文件进行恢复。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
通过本发明,能够对用户执行的处理操作进行监控,如果发现用户执行某种可能会有风险的处理操作,就可以对该处理操作过程中产生的文件处理情况进行记录,并对处理前的文件进行备份,同时安装第二操作系统;这样,如果用户的处理操作确实导致第一操作系统损坏甚至不能正常启动,则可以启动第二操作系统,在第二操作系统中对系统的核心文件进行恢复,先将第一操作系统恢复到能够启动的状态;然后,再在第一操作系统中对用户文件进行恢复,最终将第一操作系统恢复到用户执行处理操作前的状态。可见,即使用户的处理操作导致操作系统不能正常启动,仍然能够实现对操作系统的恢复,避免当操作系统受到“重创”以至于不能正常启动时,就无法进行操作系统的恢复的问题。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
首先需要说明的是,“打补丁”、“系统翻新”等处理操作实质上都是文件处理的过程,其中的文件处理可以包括原始文件的修改(相当于新文件替换原始文件)、原始文件的删除、新文件的增加等等。在实现本发明的过程中发现,在用户执行了安装补丁文件、查杀木马处理操作等之后,之所以会出现操作系统无法重新启动的问题,是因为安装补丁文件、系统翻新等操作通常会修改(替换或删除)操作系统的一些核心文件,如果修改后的核心文件不再符合启动和进入操作系统的条件,就会使得操作系统无法正常启动。为了在出现上述问题之后,能够对操作系统进行修复,本发明实施例提出了具体的解决方案,在该解决方案中,可以在操作系统中安装一应用程序(为便于描述,在本发明实施例中,将其称为“系统恢复工具”),通过该系统恢复工具执行本发明实施例中的各个步骤。
参见图1,本发明实施例提供的操作系统恢复方法可以包括以下步骤:
S101:以第一操作系统作为当前运行环境,对在所述第一操作系统中执行的处理操作进行监控;
第一操作系统也就是用户自行安装并且当前正在使用的操作系统,可以通过安装驱动等方式来监控用户执行了何种具体的处理操作。或者,在本发明实施例中,可以借助于一些安全产品来实现对用户操作的监控。例如,一些的安全产品中都具有“查杀木马”、“清理插件”、“漏洞修复”等操作入口(例如,安全软件的界面中可以提供“查杀木马”、“清理插件”、“漏洞修复”按钮等等),用户可以通过该操作入口来执行漏洞修复(也就是在操作系统中进行安装补丁文件)的操作等等;而这种操作入口是安全产品提供的,因此,用户在通过这种操作入口执行操作的时候,安全产品自然就会获知用户执行了何种操作。因此,具体实现时,前文所述的系统恢复工具可以集成在安全产品中,成为该安全产品的一个功能模块;当然也可以独立于安全产品,但该系统恢复工具可以与安全产品有一定的信息交互,例如,安全产品监控到用户执行了处理操作时,就可以将相关的信息通知给该系统恢复工具,等等。
S102:当监控到预定的处理操作时,记录所述第一操作系统中的文件处理操作,对处理前的文件进行备份,并安装第二操作系统;其中,所述备份的文件包括用户文件以及所述第一操作系统的核心文件;所述用户文件所述第二操作系统中无法处理的文件;
可以预先将一些可能会存在风险的操作以列表、黑名单等方式记录下来,这样,在监控到用户执行某处理操作时,就可以首先判断当前正在执行的操作是否在该列表或黑名单中,如果存在,则证明用户执行某种预定的处理操作,该操作可能会给当前的第一操作系统带来风险。此时,本发明实施例就可以对执行该操作的过程中产生的文件处理操作进行记录,并对处理前的文件进行备份。
如前文所述,由于“打补丁”、“系统翻新”等处理操作都是文件处理的过程,因此,如果“打补丁”或“系统翻新”之后出现了问题,只要能够将原有的原始文件恢复回去,并尽可能的还原用户的所有原始数据(这些数据甚至包括原桌面背景文件),就可以使得操作系统恢复到执行处理操作之前的状态。因此,在本发明实施例中,就是要在检测到用户正在执行某种预定的处理操作时,对文件处理的过程进行记录,并对处理前的原始文件进行备份。对文件处理的过程进行记录主要是要记录下被处理文件的位置信息及标识信息,具体实现时,可以生成一个文件处理日志列表,列表中的各条记录保存各个被处理文件的位置信息与标识信息之间的对应关系。其中位置信息是指被处理文件所在的位置,也就是原始文件需要恢复到的位置,一般可以以文件路径的方式进行记录;标识信息用于标识具体被处理的文件,具体的标识信息可以是文件名或者文件的MD5值,等等。在记录下上述信息的同时,还需要将被处理的文件(也就是原始文件)进行备份,这样一旦发现系统出现问题,就可以对备份的文件进行恢复,例如根据备份的文件的标识信息找到该文件的位置,然后将备份的文件保存到该位置即可。
其中,备份的文件包括用户文件以及第一操作系统的核心文件,其中,用户文件就是指用户在系统中保存或者安装的用户配置文件,包括前文所述的桌面背景文件,另外还可以包括桌面上的文件、开始菜单里的文件、快速启动栏里的快捷方式,甚至浏览器收藏夹里收藏的网页等等;操作系统的核心文件可以包括指启动和进入所述第一操作系统所必需的文件,这种文件可以包括ntoskrnl.exe(微软操作系统内核文件)、ntoskrnl.exe(单核非PAE镜像)、ntkrnlpa.exe等;还可以包括win32k.sys(Windows图形子系统)、hal.dll(硬件抽象层)、所有的Boot-0级驱动程序、注册表核心Hive文件等等。具体实现时,在执行某种特定的处理操作的过程中,对于系统的核心文件而言,可能仅涉及到上述各种核心文件中的一部分,因此,在备份时,可以仅对被处理的核心文件进行备份,而不是全部的核心文件。
系统恢复软件在对被处理的文件进行备份之后,可以释放并安装第二操作系统,在该第二操作系统被启动之后,可以自动运行一段程序,用以完成一些将原始文件替换回去的操作,以便将第一操作系统恢复到能够启动的状态。
其中,由于仅需要在第二操作系统中执行文件的处理操作,因此,第二操作系统不需要具有非常完备的功能,只要能够支持程序的运行,完成文件处理即可,因此,第二操作系统可以是PE(PreInstallation Environment,预安装环境)、剪裁处理过的DOS(Disk Operating System,磁盘操作系统)或Linux操作系统,等等。其中,PE系统是指是带有限服务的最小Win32子系统,可以基于以保护模式运行的Windows XP Professional内核。它包括运行Windows安装程序及脚本、连接网络共享、自动化基本过程以及执行硬件验证所需的最小功能。这样可以保证能够完成在本发明实施例中所需的功能的前提下,尽量小地占用存储及计算资源。所谓剪裁处理过的DOS以及Linux操作系统,其目的也是为了尽量小的占用资源,因此,可以不必安装完整的DOS或者Linux操作系统,而是将DOS或者Linux操作系统的功能进行剪裁,只要能够支持基本的软件运行功能即可。其中,具体的系统剪裁方法可以参见已有技术中的实现,这里不再赘述。
具体实现时,可以在安装系统恢复软件的同时,将第二操作系统的安装包保存在某指定的文件夹中,这样,当需要安装第二操作系统时,直接到该文件夹中找到该安装包,将其释放并安装即可。其中,在实际应用中,可以在系统恢复软件检测到用户正在可疑的处理操作,或者检测到某进程正在替换一些关键性的文件时,就自动安装第二操作系统;或者,也可以是在检测到可以的处理操作或者检测到关键性文件的处理事件时,向用户发出提示消息,例如,提示用户当前的操作可能对操作系统带来的风险,并询问用户是否安装第二操作系统,如果用户同意,再执行第二操作系统的安装操作。
具体实现时,无论是自动安装第二操作系统,还是在用户同意的情况下安装第二操作系统,都可以对MBR(Master Boot Record,主引导记录)进行修改,以便生成第二操作系统的启动项。之所以要修改MBR是因为,计算机在上电后,BIOS(Basic Input Output System,基本输入输出系统)会读取MBR到内存0x0000:7C00处并执行。也就是说MBR控制着系统的启动入口,因此,为了使得第二操作系统能启动,就需要修改MBR。这样生成的第二操作系统的启动入口,会不依赖于现有第一操作系统,即使第一操作系统被损坏无法正常启动,依然能够独立完成第二操作系统的启动工作。
在通过上述方式安装第二操作系统的启动入口的情况下,用户在下次开机时,就可以在启动界面中看到至少两个启动项,其中一个是第一操作系统的启动项,还有一个是第二操作系统的启动项。用户可以首先点击第一操作系统的启动项,尝试进入第一操作系统,如果发现第一操作系统无法进入,就可以点击第二操作系统的启动项,来进入第二操作系统。当然,如果用户在点击第一操作系统的启动项之后,正常进入了第一操作系统,则证明第一操作系统并没有受到重创,还能够正常启动,此时,系统恢复程序可以获取到这一信息,然后就可以将所有备份文件及痕迹清除掉,还可以将第二操作系统卸载,这样,用户再次启动计算机时,就不会再看到该第二操作系统的启动项了。具体实现时,为了检测第一操作系统是否能够正常启动,可以将系统恢复软件设置为操作系统启动后自动运行,因此,只要系统恢复软件能够运行,则证明操作系统是能够正常启动的,当然,还可以使用其他的检测方式,这里不再详述。
S103:如果在预定的处理操作之后所述第一操作系统无法正常启动,则以所述第二操作系统作为当前运行环境,利用所备份的核心文件对所述第一操作系统进行恢复,以使得所述第一操作系统能正常启动;
如前文所述,如果第一操作系统无法正常启动,则可以在检测到用户的选择操作触发时,启动第二操作系统,启动之后,就可以自动运行一段代码,进行系统核心文件的恢复操作。其中,这段代码也可以看做是系统恢复程序的一部分,只不过运行在另一个操作系统中,第二操作系统如果是DOS系统,则这个程序是一个DOS程序,由DOS操作系统启动,如果是剪裁的Linux系统,则这个程序就是一个Linux平台下的程序,那么它将会由Linux操作系统启动,以此类推。具体在对核心文件进行恢复时,可以根据步骤S102中记录及备份的信息,将被替换的原始文件按照原来的位置重新替换回去,和/或,将被删除的原始文件重新保存到原来的位置处,等等。也就是说,对于进入和启动第一操作系统所必需的文件,如果某些文件被替换了或者被删除了,则可能导致该第一操作系统无法正常启动,此时,只要将被替换的文件重新替换回去,将被删除的文件重新添加回原来的位置,这样,就可以保证第一操作系统能够正常启动。
具体实现时,第二操作系统中运行的程序在进行核心文件的恢复时,可以首先识别第一操作系统分区信息,然后尝试对第一操作系统的核心文件执行替换、新增等恢复操作。其中,识别分区信息的过程主要是识别出分区的类型,以便基于具体的分区类型执行后续的文件处理操作。例如,对于Windows系统而言,其分区类型大致分为FAT(File Allocation Table,文件配置表,例如FAT32,是指32位的文件配置表)和NTFS(New Technology FileSystem,新技术文件系统)两种类型,如果不能识别出分区的类型,则可能无法正确的操作分区下的文件。具体实现时,基于不同的第二操作系统,具体的识别方法可能会有所差别,例如,在第一操作系统为Windows的情况下,如果第二操作系统是Linux系统,则可以基于NTFS3g开源项目识别Windows分区;如果第二操作系统是DOS系统,可以基于NTFS for DOS项目识别Windows分区,等等,具体的识别方法这里不再详述。
其中,具体在利用所备份的核心文件对第一操作系统进行恢复时,具体的恢复操作就是执行预定处理时对文件操作的逆过程。例如,如果翻新系统或者打补丁等预定处理进行了删除文件的操作,那么恢复时执行的逆操作就是将备份的文件重新添加回来(可以使用系统的API:MoveFile);如果翻新系统或者打补丁等预定处理进行了创建文件(创建是需要记录下)操作,那么恢复时执行的逆操作应该是将创建出来的文件删除(可以使用系统的API:DeleteFile);如果翻新系统或者打补丁等预定处理进行了替换文件操作,那么恢复时执行的逆操作应该是将文件反向替换(可以使用系统的API:MoveFile)。
需要说明的是,在第二操作系统中执行对核心文件的恢复时,还可以对文件的完整性、真实性进行校验,以保证恢复之后的文件是完整的、真实的,这样才能保证第一操作系统能够正常启动。具体在进行校验时,可以有多种实现方式,例如,核心文件属于系统文件,而系统文件一般都是有签名的,签名如果被破坏则文件不可信,因此,可以通过文件的签名来验证文件的完整及真实性。另外,MD5(Message Digest Algorithm 5,消息摘要算法第五版)算法也可以保证文件的可信、一致性。
具体实现时,为了完成上述验证过程,可以在备份文件的同时,记录下文件的签名、MD5值等信息,在执行文件的恢复操作时,首先判断备份的文件是否具有签名、MD5值是否与备份时记录的相同,如果两次判断的结果均为是,再进行文件的替换、添加等操作。例如,假设要删除的文件是C:\Windows\System32\Test.exe,这个文件是第一系统的核心文件(含有第一操作系统开发公司的统一签名)、并且这个文件的MD5是acbf8178783e22cae3606a45808708f520128。则在发现正在删除这个文件的操作时,需要执行以下操作:
首先备份C:\Windows\System32\Test.exe这个文件到一个目录,比如:C:\$360SysReset$\Backup\Test.exe;
同时,记录文件的属性:有第一操作系统开发公司的统一签名、MD5是acbf8178783e22cae3606a45808708f520128。
这样在文件处理日志列表中就可以生成以下这样一条记录:
操作类型:MoveFile
操作源路径:C:\$360SysReset$\Backup\Test.exe
操作目标路径:C:\Windows\System32\Test.exe
是否含有第一操作系统开发公司统一签名:是
文件MD5:acbf8178783e22cae3606a45808708f520128
这样,在对第一操作系统进行恢复时,第二操作系统中的程序就会读取这条记录准备执行逆操作,具体的逆操作步骤如下:
首先,判断C:\$360SysReset$\Backup\Test.exe这个文件是否真的含有第一操作系统开发公司签名(因为日志里记录了这个文件应该是有签名的,如果没有则说明C:\$360SysReset$\Backup\Test.exe这个文件备份错误,不能冒然进行逆操作;
然后,判断C:\$360SysReset$\Backup\Test.exe这个文件的MD5是否为acbf8178783e22cae3606a45808708f520128(如果不是则说明C:\$360SysReset$\Backup\Test.exe这个文件备份错误,同样不能冒然进行逆操作;
如果前两步判断都没问题,则可以开始逆操作:MoveFile,也即将C:\$360SysReset$\Backup\Test.exe这个文件移动到C:\Windows\System32\Test.exe这个路径。
所有的逆操作过程都可以和上述描述类似。加入“签名校验”和“MD5校验”可以增强稳定性。
S104:在所述第一操作系统正常启动后,利用所备份的用户文件对所述第一操作系统进行恢复,以便将所述第一操作系统恢复到执行所述预定的处理操作之前的状态。
在经过步骤S103的处理之后,可以使得第一操作系统能够正常启动,用户再次重新启动计算机时,就可以通过第一操作系统的启动项,进入到第一操作系统。但在步骤S103中仅对第一操作系统的核心文件进行了恢复操作,此时第一操作系统仅仅恢复到了能够启动的状态,而要想恢复到用户执行漏洞修复等处理前的状态,还需要对涉及到的用户文件进行恢复。因此,在第一操作系统正常启动之后,还可以对涉及到的用户文件进行恢复,具体对用户文件进行恢复的过程同样可以包括文件的替换、增加等操作。在实际应用中,如果第一操作系统是Windows操作系统,则具体的文件恢复操作同样可以调用系统的Native程序来完成。
当然,在对用户文件恢复的过程中,同样可以依据在步骤S102中记录下的被处理文件的位置、标识等信息,来实现文件的替换、增加、删除等操作。并且,在恢复的过程中,还可以对用户文件进行校验,以保证恢复后的文件的完整性、真实性。
具体在对用户文件进行校验时,与对系统核心文件的校验类似,只不过用户文件不像系统核心文件那样,具有操作系统开发公司的统一签名,因此,只能通过MD5值进行校验,具体的,假设生成的文件处理日志为:
操作类型:MoveFile
操作源路径:C:\$360SysReset$\Backup\Users\The_Evolution_of_TDL.pdf
操作目标路径:C:\Documents and Settings\Administrator\桌面\The_Evolution_of_TDL.pdf
是否含有第一操作系统开发公司的统一签名:否
文件MD5:8dbf8178793e22cae6606a45808708f520189
之后,如果需要对文件进行恢复,则第一操作系统会读取这条日志准备进行“逆操作”。
具体的逆操作步骤如下:
(1)判断C:\$360SysReset$\Backup\Users\The_Evolution_of_TDL.pdf的MD5是否为8dbf8178793e22cae6606a45808708f520189,如果不是则说明C:\$360SysReset$\Backup\Users\The_Evolution_of_TDL.pdf文件备份错误,不能冒然进行逆操作
(2)如果上述判断没问题,则可以开始执行逆操作:MoveFile,将C:\$360SysReset$\Backup\Users\The_Evolution_of_TDL.pdf的文件移动到C:\Documents and Settings\Administrator\桌面\The_Evolution_of_TDL.pdf这个路径。
可见,在本发明实施例中,对于系统的核心文件,是在第二操作系统中进行恢复的,而对于用户文件,是在第一操作系统能够启动之后,在第一操作系统中恢复的,之所以这样进行是因为:第二操作系统仅仅是能够完成一些基本功能的小型操作系统,在这种操作系统中,可能无法处理路径过长的文件,或者路径中包含有非英文字符的文件;而对于一些用户文件而言,由于是用户进行保存或者命名的,可能会具有比较长的路径,并且,路径中经常会存在中文等非英文字符,因此,如果在第二操作系统中进行恢复,则可能会失败。例如,如果第二操作系统是剪裁过的DOS系统,则能够处理的文件一般有以下限制:文件的路径长度不能超过260个字符(DOS的能够处理的最大路径MAX_PATH是260),如超出则无法实现文件的替换等操作,另外,路径里不能包含有预置类型的字符等等。因此,在本发明实施例中,就采用了上述实现方式,最终使得操作系统能够恢复到用户执行某处理操作之前的状态。其中,所述的预置类型的字符可以包括在第二操作系统中无法识别的字符,或者第二操作系统保留的关键字等等。例如,在DOS系统中只能识别英文字符,而中文、日文等字符都无法识别,但是用户文件由于是由用户创建的,因此,对于非英文用户而言,文件名或者文件路径中都有可能包含非英文字符,对于这种文件,DOS系统中就无法进行替换等处理操作。另外,如果用户文件的文件路径中存在DOS系统的保留关键字,则DOS也无法处理。DOS系统的保留关键字是指DOS操作系统中的几个特殊名称,包括:COM1、COM2……COM9,LPT1、LPT2……LPT9,PRN,NUL,CON等。这些名称往往具有特殊的含义,例如,COM代表串口,LPT代表并口,PRN代表打印机,NUL代表空,CON代表屏幕。这些保留关键字意味着,任何文件都不能起这个名字。例如,如果用户想创建一个文件叫c:\con(注意,没有扩展名,就叫con),它在C盘根目录下,这在DOS系统下实际上是不可以的,而在Windows环境下,用户却可以创建出一个文件叫c:\con,因此,用户文件的文件路径中就很可能会包含这样的关键字,但这在DOS系统中是无法处理的,只有回到Windows操作系中才能处理。
需要说明的是,在第一操作系统恢复到能够正常启动的状态之后,系统恢复工具还可以将所有备份文件及痕迹清除掉,还可以将第二操作系统卸载,这样,用户再次启动计算机时,就不会再看到该第二操作系统的启动项了。
总之,在本发明实施例中,能够对用户执行的处理操作进行监控,如果发现用户执行某种可能会有风险的处理操作,就可以对该处理操作过程中产生的文件处理情况进行记录,并对处理前的文件进行备份,同时安装第二操作系统;这样,如果用户的处理操作确实导致第一操作系统损坏甚至不能正常启动,则可以启动第二操作系统,在第二操作系统中对系统的核心文件进行恢复,先将第一操作系统恢复到能够启动的状态;然后,再在第一操作系统中对用户文件进行恢复,最终将第一操作系统恢复到用户执行处理操作前的状态。可见,即使用户的处理操作导致操作系统不能正常启动,仍然能够实现对操作系统的恢复,避免当操作系统受到“重创”以至于不能正常启动时,就无法进行操作系统的恢复的问题。
与本发明实施例提供的操作系统恢复方法相对应,本发明实施例还提供了一种操作系统恢复系统,参见图2,包括:
监控单元201,用于以第一操作系统作为当前运行环境,对在所述第一操作系统中执行的处理操作进行监控;
记录备份单元202,用于当监控到预定的处理操作时,记录所述第一操作系统中的文件处理操作,对处理前的文件进行备份,并安装第二操作系统;其中,所述备份的文件包括用户文件以及所述第一操作系统的核心文件;所述用户文件包括所述第二操作系统中无法处理的文件;
第一恢复单元203,用于如果在预定的处理操作之后所述第一操作系统无法正常启动,则以所述第二操作系统作为当前运行环境,利用所备份的核心文件对所述第一操作系统进行恢复,以使得所述第一操作系统能正常启动;
第二恢复单元204,用于在所述第一操作系统正常启动后,利用所备份的用户文件对所述第一操作系统进行恢复,以便将所述第一操作系统恢复到执行所述预定的处理操作之前的状态。
其中,所述核心文件包括启动和进入所述第一操作系统所必需的文件。
其中,所述第二操作系统包括预安装环境、剪裁处理过的磁盘操作系统DOS或Linux操作系统。
所述第二操作系统中无法处理的文件包括:文件路径超过预置的长度阈值的用户文件,或者,文件中包含有预置类型的字符的用户文件。其中,所述预置类型的字符包括第二操作系统中不能识别的字符,如非英文字符等等,或者第二操作系统中预留的关键字符。
具体实现时,记录备份单元202具体可以用于:
记录被处理文件的位置信息及标识信息之间的对应关系;
第一恢复单元203具体用于:
根据所述对应关系以及所备份的核心文件的标识信息,确定所备份核心文件应恢复到的位置,并将所备份的核心文件恢复到对应的位置处;
第二恢复单元204具体用于:
根据所述对应关系以及所备份的用户文件的标识信息,确定所备份的用户文件应恢复到的位置,并将所备份的用户文件恢复到对应的位置处。
为了保证文件的完整性及真实性,该系统还可以包括:
属性信息记录单元,用于记录被处理文件的属性信息,所述属性信息包括是否具有第一操作系统开发公司的统一签名,和/或被处理文件的MD5值;
此时,第一恢复单元203具体用于:判断所备份的核心文件的属性信息是否与所记录的被处理文件的属性信息相同,如果相同,则触发执行所述利用所备份的核心文件对所述第一操作系统进行恢复的步骤;
第二恢复单元204具体可以用于:
判断所备份的用户文件的属性信息是否与所记录的被处理文件的属性信息相同,如果相同,则触发执行所述利用所备份的用户文件对所述第一操作系统进行恢复的步骤。
此外,该系统还可以包括:
启动入口生成单元,用于在安装所述第二操作系统之后,通过修改主引导记录MBR的方式生成所述第二操作系统的启动入口,以便在所述第一操作系统无法正常启动时,通过所述启动入口启动所述第二操作系统,以所述第二操作系统作为当前运行环境,对所备份的核心文件进行恢复。
总之,在本发明实施例中提供的上述操作系统恢复系统中,能够对用户执行的处理操作进行监控,如果发现用户执行某种可能会有风险的处理操作,就可以对该处理操作过程中产生的文件处理情况进行记录,并对处理前的文件进行备份,同时安装第二操作系统;这样,如果用户的处理操作确实导致第一操作系统损坏甚至不能正常启动,则可以启动第二操作系统,在第二操作系统中对系统的核心文件进行恢复,先将第一操作系统恢复到能够启动的状态;然后,再在第一操作系统中对用户文件进行恢复,最终将第一操作系统恢复到用户执行处理操作前的状态。可见,即使用户的处理操作导致操作系统不能正常启动,仍然能够实现对操作系统的恢复,避免当操作系统受到“重创”以至于不能正常启动时,就无法进行操作系统的恢复的问题。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明所提供的操作系统恢复方法及系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。