CN101847101A - 一种嵌入式linux下USB存储设备自动挂载的方法 - Google Patents

一种嵌入式linux下USB存储设备自动挂载的方法 Download PDF

Info

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
Application number
CN200910106414A
Other languages
English (en)
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.)
TCL Corp
Original Assignee
TCL Corp
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 TCL Corp filed Critical TCL Corp
Priority to CN200910106414A priority Critical patent/CN101847101A/zh
Publication of CN101847101A publication Critical patent/CN101847101A/zh
Pending legal-status Critical Current

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

一种嵌入式linux下USB存储设备自动挂载的方法
技术领域
本发明涉及一种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文件格式。
CN200910106414A 2009-03-24 2009-03-24 一种嵌入式linux下USB存储设备自动挂载的方法 Pending CN101847101A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1877550A (zh) * 2006-01-13 2006-12-13 深圳创维-Rgb电子有限公司 电视机嵌入式Linux系统下USB存储设备实现实时热拔插的方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1877550A (zh) * 2006-01-13 2006-12-13 深圳创维-Rgb电子有限公司 电视机嵌入式Linux系统下USB存储设备实现实时热拔插的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
百度贴吧: "linux如何挂载U盘", 《HTTP://TIEBA.BAIDU.COM/P/363265751》 *

Cited By (21)

* Cited by examiner, † Cited by third party
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