CN101847101A - 一种嵌入式linux下USB存储设备自动挂载的方法 - Google Patents
一种嵌入式linux下USB存储设备自动挂载的方法 Download PDFInfo
- Publication number
- CN101847101A CN101847101A CN200910106414A CN200910106414A CN101847101A CN 101847101 A CN101847101 A CN 101847101A CN 200910106414 A CN200910106414 A CN 200910106414A CN 200910106414 A CN200910106414 A CN 200910106414A CN 101847101 A CN101847101 A CN 101847101A
- Authority
- CN
- China
- Prior art keywords
- usb memory
- memory device
- carry
- storage device
- usb storage
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种嵌入式linux下USB存储设备自动挂载的方法,其步骤如下:启动应用程序,读取linux下的分区表文件,获取USB存储设备分区信息;根据所述USB存储设备分区信息确定并记录所述USB存储设备路径,创建所述USB存储设备挂载点;采用相应的文件系统格式对USB存储设备进行挂载。本发明所提供的方法,由于通过采用相应的文件系统格式,根据USB存储设备分区信息确定并记录USB存储设备路径创建的USB存储设备挂载点,对USB存储设备进行挂载的方式,实现了USB存储设备在嵌入式linux下自动挂载,达到USB存储设备即插即用的功能。
Description
技术领域
本发明涉及一种USB存储设备挂载的方法,尤其涉及一种嵌入式linux下USB存储设备自动挂载的方法。
背景技术
在现有技术中,Linux操作系统下的USB存储设备是不能够自动挂载的,在插上USB存储设备后,还需要用户手动输入挂载命令,才能将该USB存储设备挂载到指定目录。但以嵌入式linux为操作系统的电子产品面向的是普通消费者,他们可能没有相关的专业知识,不能自己手动完成USB存储设备的挂载,同时,电子产品也可能没有提供键盘来供用户输入命令。
因此,现有技术有待于改进与发展。
发明内容
本发明的目的在于提供一种嵌入式linux下USB存储设备自动挂载的方法,实现在嵌入式linux操作系统下,USB存储设备可以自动挂载,达到USB存储即插即用的功能。
本发明的技术方案如下:
一种嵌入式linux下USB存储设备自动挂载的方法,其步骤如下:
A、启动应用程序,读取linux下的分区表文件,获取USB存储设备分区信息;
B、根据所述USB存储设备分区信息确定并记录所述USB存储设备路径,创建所述USB存储设备挂载点;
C、采用相应的文件系统格式对USB存储设备进行挂载。
所述的方法,其中,所述应用程序采用线程方式运行。
所述的方法,其中,所述分区表文件包括至少一个USB存储设备分区信息。
所述的方法,其中,所述USB存储设备分区信息包括:主设备号、次设备号、设备块大小、设备名称。
所述的方法,其中,所述步骤A包括以下步骤:
A1、获取分区表文件中某一USB存储设备分区信息,并对该USB存储设备的主设备号、次设备号、设备块大小、以及设备名称进行分析。
所述的方法,其中,所述步骤B还包括步骤:
B1、判断确定所述USB存储设备未被挂载过。
所述的方法,其中,所述步骤C还包括步骤:
C1、采用某一文件系统格式对所述USB存储设备进行挂载,并判断挂载是否成功;
C2、判断确定挂载失败,则卸载该设备,并采用下一文件系统格式对所述USB存储设备进行挂载,否则执行步骤C3;
C3、判断确定挂载成功,则返回步骤A1,检测是否有其他USB存储设备需要挂载。
所述的方法,其中,所述文件系统格式包括:FAT文件格式、FAT32文件格式、NIFS文件格式、EXT文件格式、EXT2文件格式、EXT3文件格式。
本发明所提供的一种嵌入式linux下USB存储设备自动挂载的方法,由于通过采用相应的文件系统格式,根据USB存储设备分区信息确定并记录USB存储设备路径创建的USB存储设备挂载点,对USB存储设备进行挂载的方式,实现了USB存储设备在嵌入式linux下自动挂载,达到USB存储设备即插即用的功能。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图对本发明的各较佳实施例进行更为详细的描述。
本发明的嵌入式linux操作系统下USB存储设备自动挂载的方法,在启动应用程序后,预先读取linux操作系统下的分区表文件/proc/partitions,该分区表文件包括所有USB存储设备的分区信息,其格式如下:
major | minor | #blocks | name |
3 | 64 | 156290904 | hdb |
3 | 65 | 1 | hdb1 |
3 | 69 | 156280288 | hdb5 |
31 | 0 | 32768 | mtdblock0 |
31 | 1 | 128 | mtdblock1 |
在上述USB存储设备分区信息表中,major字段标志该USB存储设备的主设备号、minor标志该USB存储设备的次设备号、#blocks标志该USB存储设备的块大小、name标志该USB存储设备的名称。
其中,#blocks和name为重要字段,通过#blocks字段,可以知道该分区的大小,从而进一步确定该分区是否能够成功挂载。在USB存储设备分区信息表中,包括了所有USB存储设备的所有分区信息,如扩展分区,而扩展分区所需的小分区由于#blocks过小不能够成功挂载,如上述USB存储设备分区信息表中的hdb1分区(创建扩展分区所需要的小分区),其#blocks大小仅为1,因此,在筛选可挂载分区的时就应将其忽略。
name字段也是一个较为重要的字段,在进行分区挂载时,需要提供该分区的USB存储设备路径,在name字段前加上“/dev/”就成为该分区的USB存储设备路径。如hdb5USB存储设备,其USB存储设备路径为“/dev/hdb5”。
分区挂载时还需要指定该分区所要挂载点,即要挂载的目标目录,linux下的/tmp目录在内存中是一个虚拟目录,因此,可以将该分区挂载在/tmp目录下。一般来说某一USB存储设备可能具有多个分区,因此,在/tmp目录下需要建立多个子目录,目录的命名可以采用”USB”加上该分区在分区表中的行号,例如hdb5分区,其在分区信息表中位于第5行,则其目标目录命名为”USB05”。
获取到上述信息后,则可以进行USB存储设备分区的挂载。USB存储设备分区挂载的文件系统格式主要包括:FAT文件格式、FAT32文件格式、NTFS文件格式、EXT文件格式、EXT2文件格式、以及EXT3文件格式等等,其USB存储设备挂载的原理为利用C语言库函数中的挂载mount函数,该函数的原型如下:
int mount(const char*source,const char*target,const char*filesystemtype,unsigned long mountflags,const void*data);
其中,该挂载mount函数中,各参数的含义如下:
const char:为常量字符;
source:将要挂上的文件系统,通常是一个设备名;
target:文件系统所要挂在的目标目录;
filesystemtype:文件系统格式,可以是″ext2″,″msdos″,″proc″,″nfs″,″iso9660″等等;
mountflags:指定文件系统的读写访问标志;
data:文件系统特有的参数;
当挂载成功时,函数返回值为“0”,挂载失败函数返回值“-1”。
例如,对于hdb5设备,当其文件系统格式为FAT文件格式,其挂载函数为:
mount(″/dev/hdb5″,″/tmp/USB05″,″vfat″,0xc0ed0000,″utf8″);本发明的USB存储设备自动挂载前不能获取到该分区的文件系统格式,需要用不同的文件系统格式分别尝试挂载,通过判断挂载mount函数的返回值确定挂载是否成功。如先用FAT文件格式挂载mount(″/dev/hdb5″,″/tmp/USB05″,″vfat″,0xc0ed0000,″utf8″),如果返回值为“-1”,则挂载失败,将其卸载umount(″/tmp/USB05″)后尝试用NTFS文件格式挂载mount(″/dev/hdb5″,″/tmp/USB05″,″ntfs″,0xc0ed0000,″utf8″),如果返回值为“-1”,则挂载失败,将其卸载umount(″/tmp/USB05″)后尝试用EXT3文件格式挂载mount(″/dev/hdb5″,″/tmp/USB05″,″ntfs″,0xc0ed0000,NULL),如果返回值为“0”,则挂载成功,此时为成功挂载一个分区。再返回从分区信息表中获取下一行信息,并尝试进行挂载,直至分区信息表末尾。
本发明的嵌入式linux下USB存储设备自动挂载的方法,如图1所示,其具体流程如下:
S1、启动应用程序,打开linux分区信息表文件/proc/partitions;
S2、获取/proc/partitions文件中一行USB存储设备分区信息;
S3、解析该行USB存储设备分区信息,并获取所述USB存储设备的主设备号、次设备号、设备名称;
S4、根据所述USB存储设备的主设备号与设备名称,确定并记录所述USB存储设备路径/dev/*;
S5、判断所述USB存储设备是否被挂载过;
S6、当所述USB存储设备未被挂载过,则创建所述USB存储设备挂载点/tmp/usb*;
S7、采用vfat文件格式对所述USB存储设备进行挂载,并判断挂载是否成功;
S8、若挂载失败,则对所述USB存储设备进行卸载,否则执行步骤S13,并采用ntfs文件格式对所述USB存储设备进行挂载;
S9判断ntfs文件格式对USB存储设备挂载是否成功,若挂载失败,则对所述USB存储设备进行卸载,否则执行步骤S13;
S10、采用ext3文件格式对所述USB存储设备进行挂载,并判断挂载是否成功;
S11、若挂载失败,则对所述USB存储设备进行卸载,否则执行步骤S13;
S12、挂载成功,返回执行步骤S2检测其他USB存储设备是否需要进行挂载。
本发明所提供的嵌入式linux下USB存储设备自动挂载的方法,所采用的应用程序以线程方式运行,其开发与维护成本低,同时多个线程可以共享内存,极大地提高了程序的运行效率。
本发明所提供的嵌入式linux下USB存储设备自动挂载的方法,由于通过采用相应的文件系统格式,根据USB存储设备分区信息确定并记录USB存储设备路径创建的USB存储设备挂载点,对USB存储设备进行挂载的方式,实现了应用程序自动判断USB存储设备是否已经连接,并能挂载到指定目录下,即实现了USB存储设备在嵌入式linux下自动挂载,达到USB存储设备即插即用的功能。
应当理解的是,上述具体实施例的描述较为详细,不能因此而理解为对本发明专利保护范围的限制,本发明专利保护范围应以所附权利要求为准。
Claims (8)
1.一种嵌入式linux下USB存储设备自动挂载的方法,其步骤如下:
A、启动应用程序,读取linux下的分区表文件,获取USB存储设备分区信息;
B、根据所述USB存储设备分区信息确定并记录所述USB存储设备路径,创建所述USB存储设备挂载点;
C、采用相应的文件系统格式对USB存储设备进行挂载。
2.根据权利要求1所述的方法,其特征在于,所述应用程序采用线程方式运行。
3.根据权利要求1所述的方法,其特征在于,所述分区表文件包括至少一个USB存储设备分区信息。
4.根据权利要求3所述的方法,其特征在于,所述USB存储设备分区信息包括:主设备号、次设备号、设备块大小、设备名称。
5.根据权利要求4所述的方法,其特征在于,所述步骤A包括以下步骤:
A1、获取分区表文件中某一USB存储设备分区信息,并对该USB存储设备的主设备号、次设备号、设备块大小、以及设备名称进行分析。
6.根据权利要求5所述的方法,其特征在于,所述步骤B还包括步骤:
B1、判断确定所述USB存储设备未被挂载过。
7.根据权利要求1所述的方法,其特征在于,所述步骤C还包括步骤:
C1、采用某一文件系统格式对所述USB存储设备进行挂载,并判断挂载是否成功;
C2、判断确定挂载失败,则卸载该设备,并采用下一文件系统格式对所述USB存储设备进行挂载,否则执行步骤C3;
C3、判断确定挂载成功,则返回步骤A1,检测是否有其他USB存储设备需要挂载。
8.根据权利要求7所述的方法,其特征在于,所述文件系统格式包括:FAT文件格式、FAT32文件格式、NIFS文件格式、EXT文件格式、EXT2文件格式、EXT3文件格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910106414A CN101847101A (zh) | 2009-03-24 | 2009-03-24 | 一种嵌入式linux下USB存储设备自动挂载的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910106414A CN101847101A (zh) | 2009-03-24 | 2009-03-24 | 一种嵌入式linux下USB存储设备自动挂载的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101847101A true CN101847101A (zh) | 2010-09-29 |
Family
ID=42771727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910106414A Pending CN101847101A (zh) | 2009-03-24 | 2009-03-24 | 一种嵌入式linux下USB存储设备自动挂载的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101847101A (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664929A (zh) * | 2012-04-05 | 2012-09-12 | 福兴达科技实业(深圳)有限公司 | 移动终端及其管理大容量存储设备的方法 |
CN102682088A (zh) * | 2012-04-23 | 2012-09-19 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
CN103246594A (zh) * | 2013-04-08 | 2013-08-14 | 汉柏科技有限公司 | 一种基于Linux内核的用户态网卡自动探测方法 |
CN103546704A (zh) * | 2013-07-02 | 2014-01-29 | Tcl集团股份有限公司 | 一种用于识别插入电视的usb设备的方法和电视 |
CN104090822A (zh) * | 2014-07-11 | 2014-10-08 | Tcl通讯(宁波)有限公司 | Android系统下外部存储设备的切换方法及系统 |
CN104679676A (zh) * | 2014-11-27 | 2015-06-03 | 汉柏科技有限公司 | Usb设备的挂载方法及系统 |
CN104731633A (zh) * | 2015-04-15 | 2015-06-24 | 上海斐讯数据通信技术有限公司 | 一种Linux系统下多分区存储设备卸载失败后回滚方法及系统 |
CN105589657A (zh) * | 2014-10-23 | 2016-05-18 | 中兴通讯股份有限公司 | 一种实现移动存储挂载的方法及装置 |
CN105892940A (zh) * | 2016-03-29 | 2016-08-24 | 四川秘无痕信息安全技术有限责任公司 | 一种基于安卓平台获取手机分区挂载信息的方法 |
CN105892930A (zh) * | 2014-05-12 | 2016-08-24 | 北京同方微电子有限公司 | 一种大容量usim海量存储器分区挂载的实现方法 |
CN107025176A (zh) * | 2016-02-01 | 2017-08-08 | 北京同方微电子有限公司 | 一种调整大容量usim海量存储器分区容量系统及方法 |
CN108319524A (zh) * | 2018-02-02 | 2018-07-24 | 郑州云海信息技术有限公司 | 一种基板管理控制器通过kvm挂载文件夹的方法及装置 |
CN108549550A (zh) * | 2018-04-13 | 2018-09-18 | 郑州云海信息技术有限公司 | 一种硬盘挂载方法及装置 |
CN109101435A (zh) * | 2018-06-28 | 2018-12-28 | 深圳市众鸿科技股份有限公司 | 移动存储设备的多分区识别方法及系统、车载终端 |
CN110321172A (zh) * | 2019-06-03 | 2019-10-11 | 平安科技(深圳)有限公司 | 网络块设备的分区识别方法、装置、设备和存储介质 |
CN111722879A (zh) * | 2020-06-19 | 2020-09-29 | 浪潮电子信息产业股份有限公司 | U盘识别方法、Linux系统、设备及可读存储介质 |
CN117827768A (zh) * | 2024-03-05 | 2024-04-05 | 国网江西省电力有限公司电力科学研究院 | 一种基于ftp的u盘文件资源管理方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877550A (zh) * | 2006-01-13 | 2006-12-13 | 深圳创维-Rgb电子有限公司 | 电视机嵌入式Linux系统下USB存储设备实现实时热拔插的方法 |
-
2009
- 2009-03-24 CN CN200910106414A patent/CN101847101A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1877550A (zh) * | 2006-01-13 | 2006-12-13 | 深圳创维-Rgb电子有限公司 | 电视机嵌入式Linux系统下USB存储设备实现实时热拔插的方法 |
Non-Patent Citations (1)
Title |
---|
百度贴吧: "linux如何挂载U盘", 《HTTP://TIEBA.BAIDU.COM/P/363265751》 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102664929A (zh) * | 2012-04-05 | 2012-09-12 | 福兴达科技实业(深圳)有限公司 | 移动终端及其管理大容量存储设备的方法 |
CN102682088A (zh) * | 2012-04-23 | 2012-09-19 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
CN102682088B (zh) * | 2012-04-23 | 2016-11-09 | Tcl集团股份有限公司 | 一种存储设备的挂载方法、系统及电视 |
CN103246594A (zh) * | 2013-04-08 | 2013-08-14 | 汉柏科技有限公司 | 一种基于Linux内核的用户态网卡自动探测方法 |
CN103546704A (zh) * | 2013-07-02 | 2014-01-29 | Tcl集团股份有限公司 | 一种用于识别插入电视的usb设备的方法和电视 |
CN105892930A (zh) * | 2014-05-12 | 2016-08-24 | 北京同方微电子有限公司 | 一种大容量usim海量存储器分区挂载的实现方法 |
CN104090822B (zh) * | 2014-07-11 | 2018-10-26 | Tcl通讯(宁波)有限公司 | Android系统下外部存储设备的切换方法及系统 |
CN104090822A (zh) * | 2014-07-11 | 2014-10-08 | Tcl通讯(宁波)有限公司 | Android系统下外部存储设备的切换方法及系统 |
CN105589657A (zh) * | 2014-10-23 | 2016-05-18 | 中兴通讯股份有限公司 | 一种实现移动存储挂载的方法及装置 |
CN104679676A (zh) * | 2014-11-27 | 2015-06-03 | 汉柏科技有限公司 | Usb设备的挂载方法及系统 |
CN104731633A (zh) * | 2015-04-15 | 2015-06-24 | 上海斐讯数据通信技术有限公司 | 一种Linux系统下多分区存储设备卸载失败后回滚方法及系统 |
CN104731633B (zh) * | 2015-04-15 | 2018-02-13 | 上海斐讯数据通信技术有限公司 | 一种Linux系统下多分区存储设备卸载失败后回滚方法及系统 |
CN107025176A (zh) * | 2016-02-01 | 2017-08-08 | 北京同方微电子有限公司 | 一种调整大容量usim海量存储器分区容量系统及方法 |
CN105892940A (zh) * | 2016-03-29 | 2016-08-24 | 四川秘无痕信息安全技术有限责任公司 | 一种基于安卓平台获取手机分区挂载信息的方法 |
CN108319524A (zh) * | 2018-02-02 | 2018-07-24 | 郑州云海信息技术有限公司 | 一种基板管理控制器通过kvm挂载文件夹的方法及装置 |
US11327654B2 (en) | 2018-02-02 | 2022-05-10 | Zhengzhou Yunhai Information Technology Co., Ltd. | Method and device for baseboard management controller mounting folder with KVM |
CN108549550A (zh) * | 2018-04-13 | 2018-09-18 | 郑州云海信息技术有限公司 | 一种硬盘挂载方法及装置 |
CN109101435A (zh) * | 2018-06-28 | 2018-12-28 | 深圳市众鸿科技股份有限公司 | 移动存储设备的多分区识别方法及系统、车载终端 |
CN110321172A (zh) * | 2019-06-03 | 2019-10-11 | 平安科技(深圳)有限公司 | 网络块设备的分区识别方法、装置、设备和存储介质 |
CN111722879A (zh) * | 2020-06-19 | 2020-09-29 | 浪潮电子信息产业股份有限公司 | U盘识别方法、Linux系统、设备及可读存储介质 |
CN117827768A (zh) * | 2024-03-05 | 2024-04-05 | 国网江西省电力有限公司电力科学研究院 | 一种基于ftp的u盘文件资源管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101847101A (zh) | 一种嵌入式linux下USB存储设备自动挂载的方法 | |
US7809779B2 (en) | Method of creating symbolic link capable of being compatible with file system, and method and apparatus for accessing file or directory by using symbolic link | |
KR100714691B1 (ko) | 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법 | |
CN100470548C (zh) | 管理隐藏区域的装置和方法 | |
US8826259B2 (en) | Method and device for upgrading software in a consumer product | |
KR100291267B1 (ko) | 부트가능한데이터시디롬디스크제조시스템,그제조방법및그에의해제조딘시디롬디스크 | |
EP2169530B1 (en) | Method of managing memory storage space and a computer system | |
CN101082930A (zh) | 管理数据的设备和方法 | |
CN102289451A (zh) | 文件或文件夹查找方法和装置 | |
CN106709014B (zh) | 一种文件系统转换方法及装置 | |
KR100425678B1 (ko) | 디지탈 재생기에 적용되는 메모리 카드 및 그의 파일라이트/리드방법 | |
CN104681050A (zh) | 一种提取磁盘视频数据的方法和装置 | |
CN101963931A (zh) | 可扩展固件接口下的硬盘测试方法 | |
US20060289642A1 (en) | Method of simulating an optical disk drive by a memory card and method of reading the memory card | |
CN104133640A (zh) | 从休眠快速恢复 | |
KR20020081696A (ko) | 단편화를 감소시키기 위한 방법 및 장치 | |
CN103176832A (zh) | 一种类unix操作系统运行虚拟操作系统的方法及装置 | |
CN112380226A (zh) | 数据加载方法、装置、电子设备及存储介质 | |
CN100405330C (zh) | 一种获取fat文件系统剩余空间的方法及其装置 | |
KR100754195B1 (ko) | 멀티미디어 장치의 데이터 백업 방법 | |
CN100444166C (zh) | Fat文件系统中基于位置的接口访问方法及其装置 | |
CN109254953A (zh) | 一种基于fat文件的数据删除方法、数据存储设备及系统 | |
CN109901795B (zh) | 一种循环文件系统及文件定位方法 | |
JPH08263390A (ja) | メモリカード内のデータバックアップ方法 | |
KR100390487B1 (ko) | 메모리카드 및 그의 액세스방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100929 |