CN105589657A - 一种实现移动存储挂载的方法及装置 - Google Patents
一种实现移动存储挂载的方法及装置 Download PDFInfo
- Publication number
- CN105589657A CN105589657A CN201410571607.5A CN201410571607A CN105589657A CN 105589657 A CN105589657 A CN 105589657A CN 201410571607 A CN201410571607 A CN 201410571607A CN 105589657 A CN105589657 A CN 105589657A
- Authority
- CN
- China
- Prior art keywords
- space
- storage
- carry
- memory
- memory space
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
Abstract
本申请公开了一种实现移动存储挂载的方法及装置,包括:当根据USB热插拔事件判定移动存储为存储设备且为插入事件时,在预定时长内周期性查询存储设备是否存在多媒体空间;当存在多媒体空间且多媒体空间存在存储空间时,查询存储空间的文件系统类型;根据查询到的文件系统类型进行移动存储的挂载。本发明通过对连接到Linux系统下的移动存储,在预设时长内周期性查询存储设备是否存在多媒体空间,使多媒体空间的查询得到延长,避免了通用流程中、部分移动存储因无法及时的识别多媒体存储空间而无法实现挂载的问题;另外,较通用流程只能实现存储设备分区的挂载,通过存储空间的文件系统类型实现挂载,更好的实现了移动存储在Linux系统下的挂载。
Description
技术领域
本申请涉及移动存储技术,尤指一种在Linux系统实现移动存储挂载的方法及装置。
背景技术
目前,Linux系统在工业方面已经得到广泛的应用,自内核2.6版本开始支持实时性后,军方也考虑使用Linux系统来替代昂贵的实时操作系统VxWorks系统(美国WindRiverSystem公司(简称风河公司)推出的一个实时操作系统)。然而,Linux系统对于移动存储,例如U盘、移动硬盘的支持仍不如Windows系统那样完美,需要用户进行挂载操作。在Linux系统下通用的识别与挂载U盘、移动硬盘的方法是通过脚本或者C程序来实现的,其通用流程大致如下:首先,获取USB热插拔事件;然后,依据USB热插拔事件判别移动存储是否为存储设备;接着,如果判别出移动存储是存储设备,且为插入事件,进而获取存储设备的分区信息,查询存储设备分区文件系统类型,依据存储设备分区的文件系统,挂载存储设备分区到指定的目录,实现存储设备的挂载;如果为拔出事件,则卸载存储设备。
移动终端如手机终端作为随身携带的通信设备,其一般拥有较大的存储空间,除了用于安装手机操作系统和应用外,在实际使用过程中,剩余的存储空间通常被用作虚拟存储。手机还支持SD卡扩容,当手机终端通过USB连接到计算机设备时(例如PC),手机终端上的虚拟存储和SD卡都相当于一个U盘。对于不同的计算机设备的操作系统,手机终端的接入模式是不同的,如Windows下要求选择“U盘”模式,Linux下要求选择“大容量存储”模式;只有选择了恰当的模式,计算机操作系统才可以探测到设备的存储空间,进而获取存储设备分区信息,查询存储设备分区文件系统类型,实现挂载。然而,选择模式有四五种之多,用户只能通过多次尝试,才可能实现手机在Linux系统上的挂载。
当手机作为USB设备接入Linux系统中时,需要手工或者通过守护进程来触发上述的通用流程来完成挂载,才可以在Linux上正常使用手机上的虚拟存储或者SD卡。然而在Linux上挂载手机终端的虚拟存储或者SD卡,这个通用流程容易出现以下问题:
1、通用流程要求用户在判别移动存储是否为存储设备且是否为插入事件前,完成“大容量存储”模式的选择。如果未完成“大容量存储”模式的选择,虽然Linux系统能识别到手机终端的存储设备,但由于手机终端的存储设备的驱动加载过程并未完成,无法识别存储设备分区。
2、用户在完成手机“大容量存储”模式选择下,Linux系统仍需要一段时间查询到存储设备分区文件系统类型,并在Linux系统内核中对存储设备及存储设备分区文件系统类型等相关记录进行更新,更无法查询出文件系统类型。
3、假如用户在判别移动存储是否为存储设备且是否为插入事件之后,完成手机“大容量存储”模式选择;如果Linux系统不能识别存储设备分区文件系统类型,就不会更新Linux系统内核中存储设备及存储设备分区文件系统类型等相关记录;除非用户或者系统再次调用底层的接口查询该存储设备。
4、SD卡的热插拔事件比较特殊,Linux系统不会自动给出存储设备分区热插拔事件,也就是说只给出SD卡作为移动存储热插拔事件,需要额外处理(例如:再次挂载或调用底层接口强行检测)才能触发系统给出存储设备分区名相关的事件。
5、虚拟存储空间的热插拔事件也很特殊,系统根本就不会给出存储设备分区名相关的事件。
6、在Linux下直接格式化未分区的U盘或移动硬盘,再重新插入也会出现系统不给出存储设备分区名的情况。另外,在挂载过程中,Linux系统只会识别出存储空间,而不会识别出存储设备分区,存储空间无法实现挂载。
综上,在Linux系统实现手机虚拟存储及SD卡的挂载在实现上存在诸多问题,在Linux下直接格式化未分区的U盘或移动硬盘,在挂载上也存在问题,根据现有挂载的通用流程,用户无法实现良好的挂载。
发明内容
为了解决上述问题,本发明提供一种实现移动存储挂载的方法及装置,能够解决Linux环境下,通用流程进行移动存储挂载存在的问题,实现对移动存储的良好挂载。
为了达到本发明的目的,本申请提供一种实现移动存储挂载的方法;包括:
当根据USB热插拔事件判定移动存储为存储设备且为插入事件时,在预定时长内周期性查询存储设备是否存在多媒体空间;
当存在多媒体空间且多媒体空间存在存储空间时,查询存储空间的文件系统类型;
根据查询到的文件系统类型进行移动存储的挂载。
进一步地,当未查询到所述存储设备存在多媒体空间,该方法还包括:
创建新的线程,周期性查询所述存储设备是否存在多媒体空间,当存在多媒体空间且多媒体空间存在存储空间时,继续执行所述查询存储空间的文件系统类型。
进一步地,查询存储空间的文件系统类型具体包括:
根据所述存储空间的存储空间名判断是否为存储设备分区,
当存储空间为存储设备分区时,根据存储设备分区名查询所述存储空间的文件系统类型;
当存储空间不是存储设备分区时,根据所述存储空间名查询所述存储空间的文件系统类型。
进一步地,当存储空间的文件系统类型是根据所述存储设备分区名查询获得时,所述根据查询到的文件系统类型进行移动存储的挂载具体包括:
根据查询到的所述文件系统类型将存储设备分区挂载到指定的目录;
当所述存储空间的文件系统类型是根据存储空间的存储空间名查询获得,所述根据查询到的文件系统类型进行移动存储的挂载具体包括:
根据查询到的文件系统类型将存储空间挂载到指定的目录。
进一步地,当查询不到存储空间的文件系统类型时,该方法还包括:提示用户进行格式化处理;
进行格式化处理:当所述存储空间为存储设备分区时,根据外部指令格式化存储设备分区,继续挂载存储设备分区到指定的目录;或,当所述存储空间不是存储设备分区时,根据外部指令格式化所述存储空间,继续挂载存储空间到指定的目录。
进一步地,当根据USB热插拔事件判定所述移动存储为存储设备且为卸载事件时,该方法还包括:卸载所述移动存储;
当根据所述USB热插拔事件判定所述移动存储不是存储设备时,该方法还包括:结束挂载。
进一步地,在完成移动存储的挂载后,该方法还包括:串行的记录移动存储的挂载信息到预先设定的文件或共享内存中,并进行更新。
进一步地,USB热插拔事件为:由Linux系统内核产生的、包含有设备路径信息、设备名、存储设备分区名、子系统信息的相应的事件。
进一步地,根据USB热插拔事件判定移动存储为存储设备具体包括:根据USB热插拔事件的所述移动存储的设备路径信息、子系统信息、存储设备分区名和设备名与存储设备的标识参数进行匹配获得。
进一步地,存储空间为:可存放文件的硬件存储体;
可存放文件的硬件存储体为:可格式化或已被格式化的空间。
进一步地,串行的记录移动存储的挂载信息到预先设定的文件或共享内存中具体包括:
通过单线程方式来串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中;或,
采用互斥锁、读写锁或信号量来实现多线程、和/或多进程的串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中。
进一步地,挂载为:根据系统命令或者相对应的API实现的所述移动存储的挂载;
卸载为:根据系统命令或者相对应的API实现的所述移动存储的卸载。
另一方面,本申请还提供一种实现移动存储挂载的装置,包括:第一查询单元、第二查询单元和挂载单元;其中,
第一查询单元,用于根据USB热插拔事件判定的移动存储为存储设备且为插入事件,在预定时长内周期性查询存储设备是否存在多媒体空间;
第二查询单元,用于判定存在多媒体空间且多媒体空间存在存储空间时,查询存储空间的文件系统类型;
挂载单元,用于根据查询到的文件系统类型进行移动存储的挂载。
进一步地,该装置还包括第三查询单元,为新创建的线程,用于在第一查询单元未查询到所述存储设备存在多媒体空间时,周期性查询所述存储设备是否存在多媒体空间,当存在多媒体空间且多媒体空间存在存储空间时,调用第二查询单元及挂载单元进行挂载操作。
进一步地,第二查询单元,具体用于判定存在多媒体空间且多媒体空间存在存储空间时,根据所述存储设备的存储空间名判断是否为存储设备分区,
当存储空间为存储设备分区时,根据存储设备分区名查询所述存储空间的文件系统类型;
当存储空间不是存储设备分区时,根据所述存储空间名查询所述存储空间的文件系统类型。
进一步地,挂载单元具体用于,
当存储空间的文件系统类型是根据所述存储设备分区名查询获得时,根据查询到的所述文件系统类型将存储设备分区挂载到指定的目录;
当存储空间的文件系统类型是根据所述存储设备的存储空间名查询获得,根据查询到的所述文件系统类型将存储空间挂载到指定的目录。
进一步地,该装置还包括提示格式化单元,用于查询不到存储空间的文件系统类型时,提示用户进行格式化处理;
进行格式化处理:当所述存储空间为存储设备分区时,根据外部指令格式化存储设备分区,继续挂载存储设备分区到指定的目录;或,
当存储空间不是存储设备分区时,根据外部指令格式化所述存储空间,继续挂载存储空间到指定的目录。
进一步地,该装置还包括非挂载处理单元,用于当根据USB热插拔事件判定移动存储为存储设备且为卸载事件时,卸载移动存储;
当根据USB热插拔事件判定所述移动存储不是存储设备时,结束挂载。
进一步地,该装置还包括记录更新单元,用于在完成移动存储的挂载后,串行的记录移动存储的挂载信息到预先设定的文件或共享内存中,并进行更新。
进一步地,记录更新单元具体用于,通过单线程方式来串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中;或,
采用互斥锁、读写锁或信号量来实现多线程、和/或多进程的串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中。
进一步地,第一查询单元,根据USB热插拔事件的移动存储的设备路径信息、子系统信息和设备名与存储设备的标识参数进行匹配获得所述移动存储为存储设备,和根据USB热插拔事件判定的移动存储为插入事件,在预定时长内周期性查询存储设备是否存在多媒体空间。
与现有技术相比,本发明提供的技术方案,包括:当根据USB热插拔事件判定移动存储为存储设备且为插入事件时,在预定时长内周期性查询存储设备是否存在多媒体空间;当存在多媒体空间且多媒体空间存在存储空间时,查询存储空间的文件系统类型;根据查询到的文件系统类型进行移动存储的挂载。本发明通过对移动存储连接到Linux系统下,在预设时长内周期性查询存储设备是否存在多媒体空间,使多媒体空间的查询得到延长,避免了通用流程中、部分移动存储因无法及时的识别多媒体存储空间而无法实现挂载的问题;另外,较通用流程只能实现存储设备分区的挂载,通过存储空间的文件系统类型实现挂载,实现了移动存储在Linux系统下的良好挂载。进一步地,通过设定新的线程进行多媒体空间的查询,使移动存储未按通用流程及时选定“大容量模式”的问题得到了解决。通过串行记录的方式记录挂载信息,简化了Linux上层应用查询挂载信息过程。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本发明实现移动存储挂载的方法的流程图;
图2为本发明实现终端应用切换的装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实现移动存储挂载的方法的流程图,如图1所示,包括:
步骤100、当根据USB热插拔事件判定移动存储为存储设备且为插入事件时,在预定时长内周期性查询存储设备是否存在多媒体空间;
需要说明的是,在进行USB热插拔事件判定之前,本发明方法和现有的通用流程一样都需要进行USB热插拔事件的获取。另外,这里的预设时长和预设周期是本领域技术人员根据经验获得的数值;例如预设时长是5~10S,预设时长太长会影响下一个设备的挂载;预设周期50~100ms,主要考虑效率。
本步骤中,USB热插拔事件为:由Linux系统内核产生的,包含有设备路径信息、设备名、存储设备分区名、子系统等一系列相应的事件。这里,相应的事件是指能够描述Linux系统识别出的硬件及过程的消息。
根据USB热插拔事件判定移动存储为存储设备具体包括:根据USB热插拔事件的移动存储的设备路径信息、子系统信息、存储设备分区名和设备名与存储设备的标识参数进行匹配获得。
需要说明的是,USB热插拔事件是为了提供给向内核注册过的上层应用程序,以获取内核信息的时间。其中设备名中,以U盘为例,在插入后的名称可能是/dev/sdc、存储设备分区名可能是/dev/sdc1等。根据USB热插拔事件的设备路径信息、子系统信息和设备名与存储设备的参数进行匹配获得是指:路径名中包含“usb”字符串、子系统信息包含“subsystem=block”和设备名为sdX或sdXy,其中X为字母,y为数字,如sdc或者sdc1”,则其与存储设备的标识参数是匹配的,判定其为存储设备。
当未查询到存储设备存在多媒体空间,本发明方法还包括:创建新的线程,周期性查询存储设备是否存在多媒体空间,当存在多媒体空间且多媒体空间存在存储空间时,继续执行查询存储空间的文件系统类型的步骤。
当移动存储为手机设备,没有在恰当的时间选择“大容量存储”模式时,则通过创建新的线程,进行周期性查询来处理,通过新的线程的周期性查询并处理SD卡或虚拟存储的挂载,该部分通过通用流程是无法实现挂载的,用户可以在任意时刻选择“大容量存储”模式。
步骤101、当存在多媒体空间且多媒体空间存在存储空间时,查询存储空间的文件系统类型。
本步骤中,存储空间为:可存放文件的硬件存储体。可存放文件的硬件存储体为:可格式化或已被格式化的空间。
需要说明的是,存储设备分区是存储空间的一种;如、未分区且直接被格式化的新U盘,在Linux下以一个设备名(如sdc,它没有存储设备分区sdcx,x是个数字)存在作为存储空间;U盘的一个分区也是存储空间(如sdc1)。本步骤中,查询存储空间的文件系统类型具体包括:根据存储空间的存储空间名判断是否为存储设备分区,
当存储空间为存储设备分区时,根据存储设备分区名查询存储空间的文件系统类型;
当存储空间不是存储设备分区时,根据存储空间的存储空间名查询存储空间的文件系统类型。
需要说明的是,多媒体空间主要是用于表明存储设备能否用于存储,如手机没有选择“大容量存储”模式,系统就认为没有多媒体空间,一旦选择完成,系统就认为有多媒体空间。
通过步骤100和步骤101中确定的移动存储是否存在多媒体空间和存储空间,是通过调用Linux系统的底层驱动接口或者相关的系统命令直接对相应的存储设备进行查询获得的,查询结果有四种可能:设备不存在;设备没有多媒体空间;设备有多媒体空间,但没有存储空间;设备有多媒体空间且有存储空间。查询到有存储空间后,更新Linux系统内核相关记录。该流程对U盘、移动硬盘来说,查询存在多媒体空间及存储空间其实质只进行一次查询,无需来回检测就可以执行完成。
如果手机用户很早就正确选择了恰当的USB接入模式,则在预定时长内周期性查询存储设备是否存在多媒体空间的特性表现为:需要花费较长的时间才能查到多媒体空间和存储空间,一般不需要另开线程处理。当设备为SD卡时,在预定时长内周期性查询存储设备是否存在多媒体空间的特性表现为:查到多媒体空间,并触发系统给出存储设备分区名。这个过程是通用流程处理不了的,即解决了通用流程对SD卡的热插拔事件进行处理存在的问题。当设备为虚拟存储时,特性表现为:能够查到多媒体空间和存储空间,没有存储设备分区,后续查询文件系统、挂载过程也只能通过存储空间名来进行。这些是通用流程处理不了的问题。
步骤102、根据查询到的文件系统类型进行移动存储的挂载。
本步骤中,当存储空间的文件系统类型是根据存储设备分区名查询获得时,根据查询到的文件系统类型进行移动存储的挂载具体包括:
根据查询到的文件系统类型将存储设备分区挂载到指定的目录;
当存储空间的文件系统类型是根据存储空间的存储空间名查询获得,根据查询到的文件系统类型进行移动存储的挂载具体包括:
根据查询到的文件系统类型将存储空间挂载到指定的目录。
本发明通过查询文件系统类型,依据文件系统类型,挂载存储设备分区或者存储空间到指定的目录。和通用流程相比,对存储空间的挂载进行了处理,可以兼容通用流程,很好地处理了对于存储空间,无法实现挂载的问题。
当查询不到存储空间的文件系统类型时,本发明方法还包括:提示用户进行格式化处理;
进行格式化处理:当存储空间为存储设备分区时,根据外部指令格式化存储设备分区,继续挂载存储设备分区到指定的目录;或,
当存储空间不是存储设备分区时,根据外部指令格式化所述存储空间,继续挂载存储空间到指定的目录。
当根据USB热插拔事件判定移动存储为存储设备且为卸载事件时,本发明方法还包括:卸载移动存储;
当根据USB热插拔事件判定所述移动存储不是存储设备时,本发明方法还包括:结束挂载。
本发明通过对卸载及非存储设备的处理,允许移动存储通过USB接入Linux后,即使没有选择“大容量存储”模式或选择错误,并直接拔出设备,也能够很好地处理。
在完成移动存储的挂载后,本发明方法还包括:串行的记录移动存储的挂载信息到预先设定的文件或共享内存中,并进行更新。
串行的记录移动存储的挂载信息到预先设定的文件或共享内存中具体包括:通过单线程方式来串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中;或,
采用互斥锁、读写锁或信号量来实现多线程、和/或多进程的串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中。
通过,记录移动存储的挂载信息及更新,可以实现挂载设备状态的实时查询,现有的环境下要实现查询需要在脚本下输入复杂的指令实现,操作复杂。
通过分析,现有的移动存储挂载过程中,U盘和移动硬盘在查询存储空间之前会进行多媒体空间识别,只是这个过程快,一般看不到。只有在存在多媒体空间时,才进行存储设备分区的查询,因此,当手机虚拟存储和SD卡接入时,没有在恰当时期选择“大容量存储”,Linux系统无法识别多媒体空间,如果只进行的一次多媒体空间查询未查询到多媒体空间,则后续挂载过程都无法正常进行。本发明通过对移动存储连接到Linux系统下,在预设时长内周期性查询存储设备是否存在多媒体空间,使多媒体空间的查询得到延长,避免了通用流程中、部分移动存储因无法及时的识别多媒体存储空间而无法实现挂载的问题;另外,较通用流程只能实现存储设备分区的挂载,通过存储空间的文件系统类型实现挂载,实现了移动存储在Linux系统下的良好挂载。进一步地,通过设定新的线程进行多媒体空间的查询,使移动存储未按通用流程及时选定“大容量模式”的问题得到了解决。通过串行记录的方式记录挂载信息,简化了Linux上层应用查询挂载信息过程。
本发明方法中,挂载为:根据系统命令或者相对应的API实现的移动存储的挂载;卸载为:根据系统命令或者相对应的API实现的移动存储的卸载。
图2为本发明实现移动存储挂载的装置的结构框图,如图2所示,包括:第一查询单元、第二查询单元和挂载单元;其中,
第一查询单元,用于根据USB热插拔事件判定的移动存储为存储设备且为插入事件,在预定时长内周期性查询存储设备是否存在多媒体空间。
第一查询单元,根据USB热插拔事件的所述移动存储的设备路径信息、子系统信息和设备名与存储设备的标识参数进行匹配获得所述移动存储为存储设备,和根据USB热插拔事件判定的移动存储为插入事件,在预定时长内周期性查询存储设备是否存在多媒体空间。
第二查询单元,用于判定存在多媒体空间且多媒体空间存在存储空间时,查询存储空间的文件系统类型;
第二查询单元,具体用于判定存在多媒体空间且多媒体空间存在存储空间时,根据存储空间的设备名判断是否为存储设备分区,
当存储空间为存储设备分区时,根据存储设备分区名查询存储空间的文件系统类型;
当存储空间不是存储设备分区时,根据存储空间的存储空间名查询存储空间的文件系统类型。
挂载单元,用于根据查询到的文件系统类型进行移动存储的挂载。
本发明装置还包括第三查询单元,为新创建的线程,用于在第一查询单元未查询到所述存储设备存在多媒体空间时,周期性查询所述存储设备是否存在多媒体空间,当存在多媒体空间且多媒体空间存在存储空间时,调用第二查询单元及挂载单元进行挂载操作。
需要说明的是,考虑到已经创建新的线程,这里可以在新的线程上直接实现第二查询单元和挂载单元的内容。
挂载单元具体用于,
当存储空间的文件系统类型是根据所述存储设备分区名查询获得时,根据查询到的文件系统类型将存储设备分区挂载到指定的目录;
当存储空间的文件系统类型是根据存储空间的存储空间名查询获得,根据查询到的文件系统类型将存储空间挂载到指定的目录。
本发明装置还包括提示格式化单元,用于查询不到存储空间的文件系统类型时,提示用户进行格式化处理;
进行格式化处理:当存储空间为存储设备分区时,根据外部指令格式化存储设备分区,继续挂载存储设备分区到指定的目录;或,
当存储空间不是存储设备分区时,根据外部指令格式化存储空间,继续挂载存储空间到指定的目录。
本发明装置还包括非挂载处理单元,用于当根据USB热插拔事件判定移动存储为存储设备且为卸载事件时,卸载移动存储;
当根据USB热插拔事件判定所述移动存储不是存储设备时,结束挂载。
记录更新单元,用于在完成移动存储的挂载后,串行的记录移动存储的挂载信息到预先设定的文件或共享内存中,并进行更新。
记录更新单元具体用于,通过单线程方式来串行的记录移动存储的挂载信息到预先设定的文件或共享内存中;或,
采用互斥锁、读写锁或信号量来实现多线程、和/或多进程的串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中。
为清楚陈述本发明,以下通过具体实施例,对本发明进行详细说明,实施例只为清楚说明本发明,并不用于限制本发明的保护内容。
实施例1
首先,获取Linux系统给出的USB热插拔事件;
通过USB热插拔事件(由Linux系统内核产生的,包含有设备路径信息、设备名、存储设备分区名信息的事件),通过设备路径信息中是否包含“usb”来确定USB设备,其次,利用子系统信息是否为“block”来判断存储设备,最后,通过设备名是否含有“sd”来判断系统将设备或者分区看成SCSI设备。U盘、移动硬盘、手机SD卡和虚拟存储等可读写的存储设备被系统识别为SCSI设备,如sdc、sdc1。
判定移动存储为插入事件,本发明仅对插入事件和卸载事件(或拔出事件)进行处理。
对于存储设备的插入事件,在预定时长内周期性查询存储设备是否存在多媒体空间;
对于U盘和移动硬盘而言,第一次就可以找到多媒体空间和存储空间;对于手机设备的SD卡或者虚拟存储,根据用户选择“大容量存储”模式的时机而定。若用户选择“大容量存储”模式在通用流程判别出移动存储是存储设备之前完成,则需要多次查找才可以找到多媒体空间,一般不需要建立新的线程,进行多媒体空间的查询。对于手机设备的SD卡,系统会发现它仅有多媒体空间,没有存储空间,但同时会触发系统产生新的USB热插拔信息,该信息给出SD卡的分区信息,这样旧的热插拔信息可以丢弃,而新的热插拔信息就会像U盘、移动硬盘那样进行处理。对于虚拟存储,系统会发现有多媒体空间和存储空间,可以直接的进行文件系统查询。若用户选择“大容量存储”模式时机不恰当,则需要创建新的线程进行多媒体空间的查询。
根据存储空间的设备名判断是否为存储设备分区,当存储空间为存储设备分区时,根据存储设备分区名查询存储空间的文件系统类型;
当存储空间不是存储设备分区时,根据存储空间的存储空间名查询存储空间的文件系统类型。
依据不同的文件系统类型,采用不同的挂载命令,实现挂载后无乱码,分区可读可写。
实现挂载后,利用一个独立的线程,串行记录信息;或者利用读写锁、互斥锁等形式实现多线程、和/或多进程串行记录信息,信息可以记录到文件或共享内存。
至此,一个有文件系统的U盘、移动硬盘、手机卡及虚拟存储就可以自动挂载。如果没有文件系统,则在系统界面上提示用户格式化。如果用户选择文件系统进行格式化,将会触发格式化相关的存储空间,格式化成功,则依据所选文件系统类型,继续进行挂载。
和挂载时进行记录相反,在进行卸载时,串行记录的信息会被删除。依据判定热插拔事件为拔出事件,查出相关的存储设备分区或者存储空间,直接调用卸载命令对存储设备分区或者存储空间进行卸载操作。并依据事件内容,如设备名、存储设备分区名,删除之前记录的相应挂载信息”
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请,如本发明实施方式中的具体的实现方法。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (21)
1.一种实现移动存储挂载的方法,其特征在于,包括:
当根据USB热插拔事件判定移动存储为存储设备且为插入事件时,在预定时长内周期性查询存储设备是否存在多媒体空间;
当存在多媒体空间且多媒体空间存在存储空间时,查询存储空间的文件系统类型;
根据查询到的文件系统类型进行移动存储的挂载。
2.根据权利要求1所述的方法,其特征在于,当未查询到所述存储设备存在多媒体空间,该方法还包括:
创建新的线程,周期性查询所述存储设备是否存在多媒体空间,当存在多媒体空间且多媒体空间存在存储空间时,继续执行所述查询存储空间的文件系统类型。
3.根据权利要求1或2所述的方法,其特征在于,所述查询存储空间的文件系统类型具体包括:
根据所述存储空间的存储空间名判断是否为存储设备分区,
当所述存储空间为存储设备分区时,根据存储设备分区名查询所述存储空间的文件系统类型;
当所述存储空间不是存储设备分区时,根据所述存储空间名查询所述存储空间的文件系统类型。
4.根据权利要求1或2所述的方法,其特征在于,当所述存储空间的文件系统类型是根据所述存储设备分区名查询获得时,所述根据查询到的文件系统类型进行移动存储的挂载具体包括:
根据查询到的所述文件系统类型将存储设备分区挂载到指定的目录;
当所述存储空间的文件系统类型是根据所述存储空间的存储空间名查询获得,所述根据查询到的文件系统类型进行移动存储的挂载具体包括:
根据查询到的所述文件系统类型将存储空间挂载到指定的目录。
5.根据权利要求3所述的方法,其特征在于,当查询不到存储空间的文件系统类型时,该方法还包括:提示用户进行格式化处理;
进行格式化处理:当所述存储空间为存储设备分区时,根据外部指令格式化存储设备分区,继续挂载存储设备分区到指定的目录;或,当所述存储空间不是存储设备分区时,根据外部指令格式化所述存储空间,继续挂载存储空间到指定的目录。
6.根据权利要求1或2所述的方法,其特征在于,当根据USB热插拔事件判定所述移动存储为存储设备且为卸载事件时,该方法还包括:卸载所述移动存储;
当根据所述USB热插拔事件判定所述移动存储不是存储设备时,该方法还包括:结束挂载。
7.根据权利要求1或2所述的方法,其特征在于,在完成所述移动存储的挂载后,该方法还包括:串行的记录移动存储的挂载信息到预先设定的文件或共享内存中,并进行更新。
8.根据权利要求1或2所述的方法,其特征在于,所述USB热插拔事件为:由Linux系统内核产生的、包含有设备路径信息、设备名、存储设备分区名、子系统信息的相应的事件。
9.根据权利要求1或2所述的方法,其特征在于,所述根据USB热插拔事件判定所述移动存储为存储设备具体包括:根据USB热插拔事件的所述移动存储的设备路径信息、子系统信息、存储设备分区名和设备名与存储设备的标识参数进行匹配获得。
10.根据权利要求1或2所述的方法,其特征在于,所述存储空间为:可存放文件的硬件存储体;
所述可存放文件的硬件存储体为:可格式化或已被格式化的空间。
11.根据权利要求7所述的方法,其特征在于,所述串行的记录移动存储的挂载信息到预先设定的文件或共享内存中具体包括:
通过单线程方式来串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中;或,
采用互斥锁、读写锁或信号量来实现多线程、和/或多进程的串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中。
12.根据权利要求6所述的方法,其特征在于,所述挂载为:根据系统命令或者相对应的API实现的所述移动存储的挂载;
所述卸载为:根据系统命令或者相对应的API实现的所述移动存储的卸载。
13.一种实现移动存储挂载的装置,其特征在于,包括:第一查询单元、第二查询单元和挂载单元;其中,
第一查询单元,用于根据USB热插拔事件判定的移动存储为存储设备且为插入事件,在预定时长内周期性查询存储设备是否存在多媒体空间;
第二查询单元,用于判定存在多媒体空间且多媒体空间存在存储空间时,查询存储空间的文件系统类型;
挂载单元,用于根据查询到的文件系统类型进行移动存储的挂载。
14.根据权利要求13所述的装置,其特征在于,该装置还包括第三查询单元,为新创建的线程,用于在第一查询单元未查询到所述存储设备存在多媒体空间时,周期性查询所述存储设备是否存在多媒体空间,当存在多媒体空间且多媒体空间存在存储空间时,调用第二查询单元及挂载单元进行挂载操作。
15.根据权利要求13或14所述的装置,其特征在于,所述第二查询单元,具体用于判定存在多媒体空间且多媒体空间存在存储空间时,根据所述存储设备的存储空间名判断是否为存储设备分区,
当所述存储空间为存储设备分区时,根据存储设备分区名查询所述存储空间的文件系统类型;
当所述存储空间不是存储设备分区时,根据所述存储空间名查询所述存储空间的文件系统类型。
16.根据权利要求13或14所述的装置,其特征在于,所述挂载单元具体用于,
当所述存储空间的文件系统类型是根据所述存储设备分区名查询获得时,根据查询到的所述文件系统类型将存储设备分区挂载到指定的目录;
当所述存储空间的文件系统类型是根据所述存储设备的存储空间名查询获得,根据查询到的所述文件系统类型将存储空间挂载到指定的目录。
17.根据权利要求15所述的装置,其特征在于,该装置还包括提示格式化单元,用于查询不到存储空间的文件系统类型时,提示用户进行格式化处理;
进行格式化处理:当所述存储空间为存储设备分区时,根据外部指令格式化存储设备分区,继续挂载存储设备分区到指定的目录;或,
当存储空间不是存储设备分区时,根据外部指令格式化所述存储空间,继续挂载存储空间到指定的目录。
18.根据权利要求13或14所述的装置,其特征在于,该装置还包括非挂载处理单元,用于当根据USB热插拔事件判定所述移动存储为存储设备且为卸载事件时,卸载所述移动存储;
当根据USB热插拔事件判定所述移动存储不是存储设备时,结束挂载。
19.根据权利要求13或14所述的装置,其特征在于,该装置还包括记录更新单元,用于在完成所述移动存储的挂载后,串行的记录移动存储的挂载信息到预先设定的文件或共享内存中,并进行更新。
20.根据权利要求19所述的装置,其特征在于,所述记录更新单元具体用于,通过单线程方式来串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中;或,
采用互斥锁、读写锁或信号量来实现多线程、和/或多进程的串行的记录所述移动存储的挂载信息到预先设定的文件或共享内存中。
21.根据权利要求13或14所述的装置,其特征在于,所述第一查询单元,根据USB热插拔事件的所述移动存储的设备路径信息、子系统信息和设备名与存储设备的标识参数进行匹配获得所述移动存储为存储设备,和根据USB热插拔事件判定的移动存储为插入事件,在预定时长内周期性查询存储设备是否存在多媒体空间。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410571607.5A CN105589657A (zh) | 2014-10-23 | 2014-10-23 | 一种实现移动存储挂载的方法及装置 |
PCT/CN2015/074118 WO2016061978A1 (zh) | 2014-10-23 | 2015-03-12 | 一种实现移动存储挂载的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410571607.5A CN105589657A (zh) | 2014-10-23 | 2014-10-23 | 一种实现移动存储挂载的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105589657A true CN105589657A (zh) | 2016-05-18 |
Family
ID=55760156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410571607.5A Withdrawn CN105589657A (zh) | 2014-10-23 | 2014-10-23 | 一种实现移动存储挂载的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105589657A (zh) |
WO (1) | WO2016061978A1 (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095527A (zh) * | 2016-06-07 | 2016-11-09 | 国云科技股份有限公司 | 一种适用于云平台虚拟机的存储池实现方法 |
CN107368308A (zh) * | 2017-07-06 | 2017-11-21 | 苏州蜗牛数字科技股份有限公司 | 一种android游戏主机加载硬盘分区作为数据分区的方法及装置 |
CN107832235A (zh) * | 2017-11-28 | 2018-03-23 | 苏州佳世达电通有限公司 | 一种自动格式化存储设备的方法和装置 |
CN108646986A (zh) * | 2018-05-17 | 2018-10-12 | 广州视源电子科技股份有限公司 | 一种用于Linux系统电视终端挂载可移除存储设备的方法和装置 |
CN108958664A (zh) * | 2018-07-24 | 2018-12-07 | 深圳Tcl数字技术有限公司 | 硬盘格式化方法、装置及计算机可读存储介质 |
CN109101435A (zh) * | 2018-06-28 | 2018-12-28 | 深圳市众鸿科技股份有限公司 | 移动存储设备的多分区识别方法及系统、车载终端 |
CN110109765A (zh) * | 2019-05-15 | 2019-08-09 | 深圳市网心科技有限公司 | 存储装置识别方法、电子设备、系统及介质 |
CN110308938A (zh) * | 2019-07-01 | 2019-10-08 | 青岛海信传媒网络技术有限公司 | 插拔外设事件的管理方法和装置 |
CN110598428A (zh) * | 2019-08-22 | 2019-12-20 | 中国电子科技集团公司第二十八研究所 | 一种基于Linux用户空间的USB设备管控系统 |
CN111045834A (zh) * | 2018-10-15 | 2020-04-21 | 中兴通讯股份有限公司 | 云桌面下usb存储设备访问的方法、设备和存储介质 |
CN111104412A (zh) * | 2018-10-25 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 基于单线程的并发控制方法、装置和系统 |
CN112231761A (zh) * | 2020-12-14 | 2021-01-15 | 统信软件技术有限公司 | 一种设备挂载方法、计算设备及可读存储介质 |
CN113703682A (zh) * | 2021-08-26 | 2021-11-26 | 杭州华橙软件技术有限公司 | 文件挂载方法、装置、存储介质及电子装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107831534A (zh) * | 2017-12-15 | 2018-03-23 | 合肥国为电子有限公司 | 基于u盘交互的无缆存储式地震仪数据采集装置及方法 |
CN113157647B (zh) * | 2021-03-29 | 2024-04-26 | 普联技术有限公司 | 一种访问挂载文件的方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877550A (zh) * | 2006-01-13 | 2006-12-13 | 深圳创维-Rgb电子有限公司 | 电视机嵌入式Linux系统下USB存储设备实现实时热拔插的方法 |
CN101488114A (zh) * | 2009-02-18 | 2009-07-22 | 北京飞天诚信科技有限公司 | Linux系统下USB设备的处理方法 |
CN101520792A (zh) * | 2008-12-17 | 2009-09-02 | 康佳集团股份有限公司 | 一种自动挂载与识别系统文件的方法及其系统 |
CN101589592A (zh) * | 2006-02-27 | 2009-11-25 | 微软公司 | 多协议可移动存储设备 |
CN101847101A (zh) * | 2009-03-24 | 2010-09-29 | Tcl集团股份有限公司 | 一种嵌入式linux下USB存储设备自动挂载的方法 |
CN102609741A (zh) * | 2012-01-31 | 2012-07-25 | 上海艾尚通讯科技有限公司 | 一种移动设备及其内、外部存储卡间数据交换的方法 |
CN102682088A (zh) * | 2012-04-23 | 2012-09-19 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
CN103049327A (zh) * | 2011-10-14 | 2013-04-17 | 深圳市同洲电子股份有限公司 | 一种android系统挂载多存储设备的方法及装置 |
CN104007987A (zh) * | 2014-05-12 | 2014-08-27 | 浪潮电子信息产业股份有限公司 | 一种Linux下自动挂载的脚本 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101452369B (zh) * | 2007-11-29 | 2012-01-25 | 国际商业机器公司 | 用于控制usb大容量存储设备的逻辑单元的方法和系统 |
-
2014
- 2014-10-23 CN CN201410571607.5A patent/CN105589657A/zh not_active Withdrawn
-
2015
- 2015-03-12 WO PCT/CN2015/074118 patent/WO2016061978A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877550A (zh) * | 2006-01-13 | 2006-12-13 | 深圳创维-Rgb电子有限公司 | 电视机嵌入式Linux系统下USB存储设备实现实时热拔插的方法 |
CN101589592A (zh) * | 2006-02-27 | 2009-11-25 | 微软公司 | 多协议可移动存储设备 |
CN101520792A (zh) * | 2008-12-17 | 2009-09-02 | 康佳集团股份有限公司 | 一种自动挂载与识别系统文件的方法及其系统 |
CN101488114A (zh) * | 2009-02-18 | 2009-07-22 | 北京飞天诚信科技有限公司 | Linux系统下USB设备的处理方法 |
CN101847101A (zh) * | 2009-03-24 | 2010-09-29 | Tcl集团股份有限公司 | 一种嵌入式linux下USB存储设备自动挂载的方法 |
CN103049327A (zh) * | 2011-10-14 | 2013-04-17 | 深圳市同洲电子股份有限公司 | 一种android系统挂载多存储设备的方法及装置 |
CN102609741A (zh) * | 2012-01-31 | 2012-07-25 | 上海艾尚通讯科技有限公司 | 一种移动设备及其内、外部存储卡间数据交换的方法 |
CN102682088A (zh) * | 2012-04-23 | 2012-09-19 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
CN104007987A (zh) * | 2014-05-12 | 2014-08-27 | 浪潮电子信息产业股份有限公司 | 一种Linux下自动挂载的脚本 |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095527A (zh) * | 2016-06-07 | 2016-11-09 | 国云科技股份有限公司 | 一种适用于云平台虚拟机的存储池实现方法 |
CN107368308A (zh) * | 2017-07-06 | 2017-11-21 | 苏州蜗牛数字科技股份有限公司 | 一种android游戏主机加载硬盘分区作为数据分区的方法及装置 |
CN107832235A (zh) * | 2017-11-28 | 2018-03-23 | 苏州佳世达电通有限公司 | 一种自动格式化存储设备的方法和装置 |
CN108646986A (zh) * | 2018-05-17 | 2018-10-12 | 广州视源电子科技股份有限公司 | 一种用于Linux系统电视终端挂载可移除存储设备的方法和装置 |
CN108646986B (zh) * | 2018-05-17 | 2021-09-17 | 广州视源电子科技股份有限公司 | 一种用于Linux系统电视终端挂载可移除存储设备的方法和装置 |
CN109101435A (zh) * | 2018-06-28 | 2018-12-28 | 深圳市众鸿科技股份有限公司 | 移动存储设备的多分区识别方法及系统、车载终端 |
CN108958664A (zh) * | 2018-07-24 | 2018-12-07 | 深圳Tcl数字技术有限公司 | 硬盘格式化方法、装置及计算机可读存储介质 |
CN111045834A (zh) * | 2018-10-15 | 2020-04-21 | 中兴通讯股份有限公司 | 云桌面下usb存储设备访问的方法、设备和存储介质 |
CN111045834B (zh) * | 2018-10-15 | 2023-08-08 | 中兴通讯股份有限公司 | 云桌面下usb存储设备访问的方法、设备和存储介质 |
CN111104412A (zh) * | 2018-10-25 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 基于单线程的并发控制方法、装置和系统 |
CN111104412B (zh) * | 2018-10-25 | 2023-05-30 | 阿里巴巴集团控股有限公司 | 基于单线程的并发控制方法、装置和系统 |
CN110109765A (zh) * | 2019-05-15 | 2019-08-09 | 深圳市网心科技有限公司 | 存储装置识别方法、电子设备、系统及介质 |
CN110308938A (zh) * | 2019-07-01 | 2019-10-08 | 青岛海信传媒网络技术有限公司 | 插拔外设事件的管理方法和装置 |
CN110308938B (zh) * | 2019-07-01 | 2022-03-22 | 青岛海信传媒网络技术有限公司 | 插拔外设事件的管理方法和装置 |
CN110598428A (zh) * | 2019-08-22 | 2019-12-20 | 中国电子科技集团公司第二十八研究所 | 一种基于Linux用户空间的USB设备管控系统 |
CN110598428B (zh) * | 2019-08-22 | 2021-08-06 | 中国电子科技集团公司第二十八研究所 | 一种基于Linux用户空间的USB设备管控系统 |
CN112231761A (zh) * | 2020-12-14 | 2021-01-15 | 统信软件技术有限公司 | 一种设备挂载方法、计算设备及可读存储介质 |
CN112231761B (zh) * | 2020-12-14 | 2021-07-30 | 统信软件技术有限公司 | 一种设备挂载方法、计算设备及可读存储介质 |
CN113703682A (zh) * | 2021-08-26 | 2021-11-26 | 杭州华橙软件技术有限公司 | 文件挂载方法、装置、存储介质及电子装置 |
CN113703682B (zh) * | 2021-08-26 | 2024-02-23 | 杭州华橙软件技术有限公司 | 文件挂载方法、装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016061978A1 (zh) | 2016-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105589657A (zh) | 一种实现移动存储挂载的方法及装置 | |
EP2998861B1 (en) | Implementing and deleting method and device for intelligent terminal multi-operation system | |
WO2015062389A1 (zh) | 一种终端设备卸载系统应用的方法和装置 | |
EP3516511B1 (en) | Update migration system and method | |
CN104933090A (zh) | 一种信息搜索方法及终端 | |
CN107800757B (zh) | 用户行为记录方法及装置 | |
CN100437504C (zh) | 硬盘数据备份系统及方法 | |
CN109542635A (zh) | 配置信息更新方法、装置、计算机设备和存储介质 | |
CN102609290B (zh) | 电子产品的软件升级方法 | |
CN102609741A (zh) | 一种移动设备及其内、外部存储卡间数据交换的方法 | |
CN101236531B (zh) | 一种存储装置及其实现自动保护的方法 | |
CN109597707A (zh) | 克隆卷数据拷贝方法、装置及计算机可读存储介质 | |
CN104765631B (zh) | 一种移动终端的应用程序恢复方法及装置 | |
CN105117242A (zh) | 系统重置方法及终端 | |
KR101504490B1 (ko) | 디바이스 및 디바이스의 주소록 동기화 제어 방법 | |
US8595426B2 (en) | Handling commands within a write-once read-many storage device configuration | |
CN105389105A (zh) | 应用程序功能界面的移动方法、系统与移动装置 | |
CN106484779A (zh) | 文件操作方法及装置 | |
CN105425997A (zh) | 一种用户终端重启后的界面显示方法及用户终端 | |
CN103037107A (zh) | 一种智能触屏手机标签编辑系统及工作方法 | |
CN106649850A (zh) | 一种数据自动删除方法及装置 | |
US20080033948A1 (en) | Storage apparatus and method therefor | |
KR20100066735A (ko) | 이동저장장치를 이용한 자동백업 시스템 및 그 방법 | |
CN111475101B (zh) | 一种快闪存储器卡的修复方法、系统、装置和存储介质 | |
CN106599699B (zh) | 一种移动终端内实现数据安全删除的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20160518 |
|
WW01 | Invention patent application withdrawn after publication |