一种支持LINUX内核操作系统对系统盘热插拔的方法技术方案

技术编号:37410714 阅读:10 留言:0更新日期:2023-04-30 09:36
本发明专利技术公开了一种支持LINUX内核操作系统对系统盘热插拔的方法,a、检查可移动存储设备与系统盘的一致性;b、若卸载的可移动存储设备与系统盘一致,则不释放超级块,并挂起内核所有运行线程,等待设备插入;c、在可移动存储设备插入之后,挂载完成并开始自动mount时识别mount设备的设备id,并且与系统盘id进行对比;d、如果mount设备的id与系统盘的id一致,则将该设备映射到原系统盘的超级块之上,在完成数据的回写同步之后激活内核中所有线程,完成系统恢复;在进行系统盘的热插拔之后,重新插上拔出的系统盘能确保系统不必重启就能继续正常使用,同时系统盘的数据以及其他挂载磁盘的数据不会出现损坏丢失。数据不会出现损坏丢失。数据不会出现损坏丢失。

【技术实现步骤摘要】
一种支持LINUX内核操作系统对系统盘热插拔的方法


[0001]本专利技术属于操作系统使用
,尤其涉及一种支持LINUX内核操作系统对系统盘热插拔的方法。

技术介绍

[0002]目前以Linux为内核的桌面系统越来越得到使用者的青睐。使用可移动存储设备作为系统盘安装操作系统,从而方便使用者便携使用定制系统或保密系统的使用场景也被使用者从windows系统过渡到了Linux系统。在实际使用中, Windows 10操作系统可以在使用中热卸载系统磁盘,卸载后系统卡死,重新插上系统磁盘之后,Windows系统又能恢复正常,数据不会出现丢失等情况。但在以Linux为内核的操作系统中,则会出现系统彻底崩溃,系统盘数据遭到破坏,即使重新启动系统,系统也无法启动成功的情况。
[0003]以Linux为内核的操作系统无法在使用中进行系统盘的热插拔,从而无法在以可移动存储设备为系统盘的使用场景下安全稳定方便的运行。

技术实现思路

[0004]针对现有技术不足,本专利技术的目的在于提供一种支持LINUX内核操作系统对系统盘热插拔的方法,在进行系统盘的热插拔之后,重新插上拔出的系统盘能确保系统不必重启就能继续正常使用,同时系统盘的数据以及其他挂载磁盘的数据不会出现损坏丢失。
[0005]本专利技术提供如下技术方案:一种支持LINUX内核操作系统对系统盘热插拔的方法,包括以下步骤:a、检查可移动存储设备与系统盘的一致性,在可移动存储设备卸载时,匹配卸载设备是否与系统盘一致;b、若卸载的可移动存储设备与系统盘一致,则不释放超级块,并挂起内核所有运行线程,等待设备插入,若卸载的可移动存储设备与系统盘不一致则按正常流程处理;c、在可移动存储设备插入之后,挂载完成并开始自动mount时识别mount设备的设备id,并且与系统盘id进行对比;d、如果mount设备的id与系统盘的id一致,则将该设备映射到原系统盘的超级块之上,在完成数据的回写同步之后激活内核中所有线程,完成系统恢复;如果mount设备的id与系统盘的id不一致,则按正常流程处理。
[0006]优选的,在系统启动时,init线程启动,并读取/etc/fstab文件,完成挂载之后,重新读取/etc/fstab文件,找到根目录对应的uuid或者label值,轮询超级块链表、寻找到与uuid或label值匹配的超级块,将该超级块对象指针、uuid或者label值记录在一个全局变量对象中。
[0007]优选的,在内核umount函数中,对需要卸载的设备进行id对比,阻止内核对系统盘进行卸载及释放超级块,同时挂起内核线程,确保数据不在写入系统盘,防止出现大量I/O读写错误。
[0008]优选的,通过name获取nameidate值,通过nameidate值获取设备的uuid值或者label值,将该值与全局变量表中的系统盘id值对比。
[0009]优选的,在内核do_mount函数中,对需要挂载的设备进行id号对比,如果是系统盘重新插入,则直接恢复超级块与设备之间的映射关系,同时完成一次数据回写,防止数据丢失,之后启动所有挂起的内核线程,恢复系统运行状态。
[0010]优选的,在内核do_mount函数中,通过dir_name获取path值,在通过该值获取到nameidate后,通过nameidate值获取该设备的uuid或者label值,将该值与全局变量表中的系统盘id值对比。
[0011]优选的,恢复系统运行状态的同时,将全局变量表中的冻结参数置0。
[0012]与现有技术相比,本专利技术具有以下有益效果:(1)本专利技术一种支持LINUX内核操作系统对系统盘热插拔的方法,在内核do_mount函数中,对需要挂载的设备进行id号对比,如果是系统盘重新插入,则直接恢复超级块与设备之间的映射关系,同时完成一次数据回写,防止数据丢失,之后启动所有挂起的内核线程,恢复系统运行状态。
[0013](2)本专利技术一种支持LINUX内核操作系统对系统盘热插拔的方法,在init线程读取/etc/fstab文件,并完成挂载之后,重新读取/etc/fstab文件,并将系统盘对应的uuid或者label值写入,在内核umount函数中,对需要卸载的设备进行id号对比,阻止内核对系统盘进行卸载及释放超级块,同时挂起内核线程,确保数据不在写入系统盘,防止出现大量I/O读写错误。
[0014](3)本专利技术一种支持LINUX内核操作系统对系统盘热插拔的方法,通过适配不同版本的内核,将源码patch到内核代码中,在完成内核编译之后,即可使用该内核支撑各类以Linux为内核的桌面操作系统。
[0015](4)本专利技术一种支持LINUX内核操作系统对系统盘热插拔的方法,不需修改桌面系统层或者用户层的任何数据,无需让用户对系统进行任何配置,即可无感完成系统盘热插拔功能。
附图说明
[0016]为了更清楚地说明本专利技术实施方式的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0017]图1是本专利技术的系统启动时的流程图。
[0018]图2是本专利技术的存储盘拔出时的流程图。
[0019]图3是本专利技术的存储盘插入时的流程图。
具体实施方式
[0020]为使本专利技术实施方式的目的、技术方案和优点更加清楚,下面将结合本专利技术实施方式中的附图,对本专利技术实施方式中的技术方案进行清楚、完整地描述。显然,所描述的实施方式是本专利技术一部分实施方式,而不是全部的实施方式。基于本专利技术中的实施方式,本领
域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本专利技术保护的范围。
[0021]因此,以下对在附图中提供的本专利技术的实施方式的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施方式。基于本专利技术中的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本专利技术保护的范围。
[0022]实施例一:如图1

3所示,一种支持LINUX内核操作系统对系统盘热插拔的方法,包括以下步骤:a、检查可移动存储设备与系统盘的一致性,在可移动存储设备卸载时,匹配卸载设备是否与系统盘一致;b、若卸载的可移动存储设备与系统盘一致,则不释放超级块,并挂起内核所有运行线程,等待设备插入,若卸载的可移动存储设备与系统盘不一致则按正常流程处理;c、在可移动存储设备插入之后,挂载完成并开始自动mount时识别mount设备的设备id,并且与系统盘id进行对比;d、如果mount设备的id与系统盘的id一致,则将该设备映射到原系统盘的超级块之上,在完成数据的回写同步之后激活内核中所有线程,完成系统恢复;如果mount设备的id与系统盘的id不一致,则按正常流程处理。
[0023]在系统本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种支持LINUX内核操作系统对系统盘热插拔的方法,其特征在于,包括以下步骤:a、检查可移动存储设备与系统盘的一致性,在可移动存储设备卸载时,匹配卸载设备是否与系统盘一致;b、若卸载的可移动存储设备与系统盘一致,则不释放超级块,并挂起内核所有运行线程,等待设备插入,若卸载的可移动存储设备与系统盘不一致则按正常流程处理;c、在可移动存储设备插入之后,挂载完成并开始自动mount时识别mount设备的设备id,并且与系统盘id进行对比;d、如果mount设备的id与系统盘的id一致,则将该设备映射到原系统盘的超级块之上,在完成数据的回写同步之后激活内核中所有线程,完成系统恢复;如果mount设备的id与系统盘的id不一致,则按正常流程处理。2.根据权利要求1所述一种支持LINUX内核操作系统对系统盘热插拔的方法,其特征在于,在系统启动时,init线程启动,并读取/etc/fstab文件,完成挂载之后,重新读取/etc/fstab文件,找到根目录对应的uuid或者label值,轮询超级块链表、寻找到与uuid或label值匹配的超级块,将该超级块对象指针、uuid或者label值记录在一个全局变量对象中。3.根据权利要求1所述一种支持LINUX内核操作系统对系统盘热插拔的方法,其特征在于,在内核um...

【专利技术属性】
技术研发人员:盛宏鄢兵安杜一闫靖春
申请(专利权)人:正数网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1