欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

無lvm的操作系統(tǒng)訪問基于lv卷的存儲(chǔ)設(shè)備的方法

文檔序號(hào):6575209閱讀:205來源:國知局

專利名稱::無lvm的操作系統(tǒng)訪問基于lv卷的存儲(chǔ)設(shè)備的方法
技術(shù)領(lǐng)域
:本發(fā)明涉及一種無LVM的操作系統(tǒng)訪問基于LV巻的存儲(chǔ)設(shè)備的方法。
背景技術(shù)
:LVM,邏輯盤巻管理(LogicalVolumeManager),是目前Linux操作系統(tǒng)下提供的一種在零停機(jī)前提下可以自如對(duì)文件系統(tǒng)的大小進(jìn)行調(diào)整,方便實(shí)現(xiàn)文件系統(tǒng)跨越不同磁盤和分區(qū)的一個(gè)解決方案。LVM是建立在硬盤和分區(qū)之上的一個(gè)邏輯層,來提高磁盤分區(qū)管理的靈活性。通過LVM系統(tǒng)管理員可以輕松管理磁盤分區(qū),如將若干個(gè)磁盤分區(qū)連接為一個(gè)整塊的巻組(VolumeGroup),形成一個(gè)存儲(chǔ)池。管理員可以在巻組上隨意創(chuàng)建邏輯巻(LV,LogicalVolumes),并進(jìn)一步在邏輯巻上創(chuàng)建文件系統(tǒng)。管理員通過LVM可以方便的調(diào)整邏輯巻的大小,并且可以對(duì)磁盤存儲(chǔ)按照巻組的方式進(jìn)行命名、管理和分配?;贚VM機(jī)制在磁盤建立的LV巻,在磁盤扇區(qū)起始位置是沒有分區(qū)表的。Linux是靠自己特有的LVM機(jī)制,來區(qū)別和操作磁盤上不同的LV巻的。當(dāng)一個(gè)沒有LVM機(jī)制的操作系統(tǒng),例如Windows操作系統(tǒng),訪問一個(gè)由LVM機(jī)制管理的磁盤時(shí),它是找不到分區(qū)的。也就是說,如果一個(gè)沒有LVM機(jī)制的主機(jī),如安裝Windows操作系統(tǒng)的計(jì)算機(jī),直接對(duì)該磁盤分區(qū)地址訪問,是得不到分區(qū)信息的,即無法識(shí)別該f茲盤。例如,對(duì)于采用LVM才幾制的USB移動(dòng)^更盤,接入安裝Windows操作系統(tǒng)的計(jì)算機(jī)后,Windows操作系統(tǒng)是無法識(shí)別出該移動(dòng)硬盤LV巻的。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的主要目的在于提供一種無LVM的操作系統(tǒng)訪問基于LV巻的存儲(chǔ)設(shè)備的方法,以實(shí)現(xiàn)無LVM操作系統(tǒng)的主機(jī)可以直接識(shí)別基于LVM機(jī)制在磁盤上所建立的LV巻。本發(fā)明提供一種無LVM的操作系統(tǒng)訪問基于LV巻的存儲(chǔ)設(shè)備的方法,包括步驟A、構(gòu)造一具有主引導(dǎo)扇區(qū)的虛擬磁盤;B、將虛擬磁盤的各個(gè)存儲(chǔ)地址映射到所要訪問的LV巻的各個(gè)存儲(chǔ)地址;C、對(duì)虛擬/磁盤的存儲(chǔ)地址進(jìn)行訪問時(shí),訪問該存4諸地址所映射到的LV巻的存儲(chǔ)地址。由此可知,通過在基于LVM機(jī)制的磁盤上構(gòu)造一具有主引導(dǎo)扇區(qū)的虛擬磁盤,可以使無LVM操作系統(tǒng)的主機(jī)識(shí)別并訪問基于LVM才幾制的》茲盤。上述的方法中,其特征在于,步驟A中構(gòu)造所述主引導(dǎo)扇區(qū)的虛擬磁盤的步驟包括Al、申請(qǐng)?zhí)囟ㄗ止?jié)的內(nèi)存緩沖區(qū)作為虛擬磁盤的虛擬主引導(dǎo)扇區(qū);A2、對(duì)所創(chuàng)建的虛擬主引導(dǎo)扇區(qū)進(jìn)行賦值以使所述虛擬磁盤可訪問。由此可知,申請(qǐng)?zhí)囟ㄗ止?jié)的內(nèi)存緩沖區(qū)作為虛擬磁盤的虛擬主引導(dǎo)扇區(qū),利用設(shè)備已有硬件資源,不用額外增加硬件,低成本消耗下實(shí)現(xiàn)較方便地生產(chǎn)或改裝基于LVM機(jī)制的磁盤。上述的方法中,其特征在于,步驟A2所述對(duì)所創(chuàng)建的虛擬主引導(dǎo)扇區(qū)進(jìn)行賦值包括獲取LV巻的主引導(dǎo)記錄扇區(qū)的主引導(dǎo)記錄啟動(dòng)程序和啟動(dòng)字符串,并賦值給所述虛擬主引導(dǎo)扇區(qū)的主引導(dǎo)記錄啟動(dòng)程序和主引導(dǎo)記錄啟動(dòng)字符串;根據(jù)磁盤結(jié)構(gòu)對(duì)虛擬磁盤分區(qū)表進(jìn)行賦值。由此可知,利用已有Linux下的系統(tǒng)函數(shù)獲取LV巻的主引導(dǎo)記錄扇區(qū)的主引導(dǎo)記錄啟動(dòng)程序和啟動(dòng)字符串,并賦值給所述虛擬主引導(dǎo)扇區(qū)的主引導(dǎo)記錄啟動(dòng)程序和主引導(dǎo)記錄啟動(dòng)字符串,可以構(gòu)造出虛擬磁盤分區(qū)的主引導(dǎo)記錄啟動(dòng)程序和啟動(dòng)字符串。上述的方法中,其特征在于,所述對(duì)虛擬磁盤分區(qū)表進(jìn)行賦值包括將包含的表示虛擬磁盤分區(qū)開始的扇區(qū)地址的字節(jié)設(shè)置為表示虛擬i茲盤分區(qū)開始的扇區(qū)地址;將包含的表示虛擬磁盤分區(qū)占用的總扇區(qū)數(shù)的字節(jié)設(shè)置為LV巻所占扇區(qū)數(shù)目與所申請(qǐng)的特定字節(jié)的內(nèi)存緩沖區(qū)所占扇區(qū)數(shù)之和。由此可知,對(duì)虛擬》茲盤分區(qū)開始的扇區(qū)地址的字節(jié)i殳置,以及對(duì)虛擬磁盤分區(qū)占用的總扇區(qū)數(shù)的字節(jié)設(shè)置,可以構(gòu)造出虛擬磁盤主引導(dǎo)分區(qū)的開始扇區(qū)地址和總扇區(qū)數(shù)。上述的方法中,其特征在于,所述對(duì)虛擬磁盤分區(qū)表進(jìn)行賦值包括將包含的表示虛擬磁盤分區(qū)引導(dǎo)標(biāo)示的字節(jié)設(shè)置為表示非活動(dòng)分區(qū);將包含的表示虛擬磁盤分區(qū)開始地址格式的字節(jié)設(shè)置為表示非CHS格式;將包含的表示虛擬磁盤分區(qū)的類型的字節(jié)設(shè)置為表示分區(qū)類型為fat32文件系統(tǒng);將包含的表示虛擬磁盤分區(qū)結(jié)束地址格式的字節(jié)設(shè)置為表示非CHS格式;由此可知,上述虛擬分區(qū)表具有較好磁盤分區(qū)表格式,其值可被靈活地設(shè)置。上述的方法中,其特征在于,所述LV巻所占扇區(qū)數(shù)目采用如下方式獲得獲取LV巻的所占的字節(jié)數(shù);根據(jù)下述公式計(jì)算LV巻所占扇區(qū)數(shù)LV巻所占扇區(qū)數(shù)=乙V巻的所占的字節(jié)數(shù)/512。由此可知,利用上述公式計(jì)算出LV巻所占扇區(qū)數(shù),能進(jìn)一步推出虛擬磁盤分區(qū)占用的總扇區(qū)數(shù)。上述的方法中,其特征在于,所述步驟B包括Bl、根據(jù)虛擬磁盤分區(qū)表中表示虛擬磁盤分區(qū)開始的扇區(qū)地址作為虛擬》茲盤分區(qū)起始地址;B2、根據(jù)獲取的各個(gè)丄V巻所占扇區(qū)數(shù)目計(jì)算出各個(gè)LV巻所占存儲(chǔ)設(shè)備的存儲(chǔ)地址數(shù);B3、以所述虛擬磁盤分區(qū)起始地址為偏移量,將虛擬磁盤分區(qū)該起始地址后的各個(gè)存儲(chǔ)地址依次映射到所述各個(gè)LV巻的存儲(chǔ)地址。由此可知,可以將虛擬磁盤的各個(gè)存儲(chǔ)地址映射到所要訪問的LV巻的各個(gè)存儲(chǔ)地址。上述的方法中,其特征在于,步驟C所述訪問為讀取時(shí),所述訪問的步驟包括C71、計(jì)算實(shí)際訪問的LV巻扇區(qū)的起始地址,包括實(shí)際訪問LV—A巻扇區(qū)的起始地址=(請(qǐng)求讀的扇區(qū)地址-127)x512;C72、由計(jì)算出的實(shí)際訪問LV巻扇區(qū)的起始地址,根據(jù)所述讀取指令中的所讀取字節(jié)長度進(jìn)行讀取。由此可知,才艮據(jù)虛擬》茲盤與LV巻之間的良好映射,可以通過訪問虛擬磁盤的存儲(chǔ)地址,間接對(duì)該存儲(chǔ)地址所映射到的LV巻的存儲(chǔ)地址進(jìn)行讀操作。上述的方法中,其特征在于,步驟C所述訪問為寫數(shù)據(jù)時(shí),所述訪問的步驟包括C81、計(jì)算實(shí)際訪問LV巻扇區(qū)的起始地址,包括實(shí)際訪問LV—A巻扇區(qū)的起始地址=(請(qǐng)求寫的扇區(qū)地址-127)x512;C82、由計(jì)算出的實(shí)際訪問LV巻扇區(qū)的起始地址,將所述寫數(shù)據(jù)指令中的數(shù)據(jù)進(jìn)行寫入LV巻中。由此可知,才艮據(jù)虛擬石茲盤與LV巻之間的良好映射,可以通過訪問虛擬磁盤的存儲(chǔ)地址,間接對(duì)該存儲(chǔ)地址所映射到的LV巻的存儲(chǔ)地址進(jìn)行寫操作。圖1為LVM巻組管理的磁盤中的LV巻與虛擬磁盤映射關(guān)系示意圖2為通過USB總線訪問基于LVM巻組的磁盤中的分區(qū)的流程圖3為虛擬磁盤存儲(chǔ)空間與LV巻存儲(chǔ)空間的映射關(guān)系圖;圖4為讀取LV巻的磁盤的流程圖;圖5為寫LV巻的磁盤的流程圖。具體實(shí)施例方式對(duì)于沒有LVM機(jī)制的操作系統(tǒng),如Windows操作系統(tǒng)(本實(shí)施方式將以此為例),訪問磁盤時(shí)是以其所規(guī)定的邏輯扇區(qū)尋址方式訪問磁盤,由于與基于LVM機(jī)制在》茲盤上創(chuàng)建LV巻方式不同,因而無法直接訪問所述^茲盤上創(chuàng)建的LV巻。本發(fā)明在所述基于LVM機(jī)制管理的磁盤中設(shè)置一具有LVM機(jī)制的系統(tǒng)程序(如基于Linux的程序),由所述程序通過創(chuàng)建一虛擬磁盤建立磁盤上的LV巻與Windows才乘作系統(tǒng)訪問的邏輯扇區(qū)的映射關(guān)系,實(shí)現(xiàn)Windows才喿作系統(tǒng)可通過所述虛擬》茲盤訪問磁盤上的LV巻。其中,所述i茲盤可以為安裝有Linux系統(tǒng)程序的移動(dòng)硬盤,或者為安裝Linux系統(tǒng)的移動(dòng)播放裝置,如基于Liunx系統(tǒng)的MP3/MP4硬盤播放器等。首先對(duì)如圖1示出的基于LVM機(jī)制管理的磁盤中的LV巻與虛擬磁盤映射關(guān)系進(jìn)行說明,包括磁盤101:表示物理存儲(chǔ)介質(zhì),可為硬盤、移動(dòng)硬盤、U盤(或稱閃存盤)等;邏輯巻組(LVM,LogicalVolumeGroup)102:是指在一個(gè)或多個(gè)》茲盤101分區(qū)中劃出一片區(qū)域組成的邏輯巻組空間。LVM巻組類似于非LVM系統(tǒng)中的物理磁盤,其由物理巻(物理巻是LVM的基本存儲(chǔ)邏輯塊,指硬盤分區(qū)或從邏輯上與磁盤分區(qū)具有同樣功能的設(shè)備,如RAID)組成;邏輯巻(LV,LogicalVolume)103:是從LVM巻組中劃出的一片空間組成一個(gè)獨(dú)立的巻,即LV巻。LV巻的空間要小于LVM巻組中可以使用的空間,LV巻必須歸屬于一個(gè)LVM巻組。LV巻類似于非LVM系統(tǒng)中的石更盤分區(qū),在LV巻上可以建立文件系統(tǒng),如ext2、ext3、reiserfs、ntfs文件系統(tǒng)等;虛擬磁盤104:本發(fā)明中用于將一個(gè)以上的LV巻虛擬組成的一個(gè)虛擬的i茲盤;USB接口層105:表示由USB設(shè)備(USBDEVICE)芯片所組成的一個(gè)邏輯中間層;它有自己的邏輯扇區(qū)尋址空間,與磁盤的實(shí)際邏輯扇區(qū)尋址空間——對(duì)應(yīng);負(fù)責(zé)接收主機(jī)發(fā)送過來的命令,解析其命令,并執(zhí)行其操作,從磁盤中讀取扇區(qū)數(shù)據(jù)返回給主機(jī)或?qū)⒅鳈C(jī)發(fā)送過來的數(shù)據(jù)寫入指定扇區(qū);主機(jī)106:本例中為安裝Windows操作系統(tǒng)(如Windows98、WindowsXP、WindowsNT、WinCE等操作系統(tǒng))的設(shè)備,如PC機(jī)或筆記本電腦。如圖2示出了安裝Windows操作系統(tǒng)的主機(jī)106通過USB總線訪問基于LVM機(jī)制在磁盤上創(chuàng)建的LV巻103的流程圖,當(dāng)接收所述主機(jī)106對(duì)磁盤101訪問的指令后,扭j亍以下步驟步驟201:根據(jù)預(yù)先設(shè)計(jì)的分區(qū)表結(jié)構(gòu),創(chuàng)建一虛擬主引導(dǎo)扇區(qū),并創(chuàng)建虛擬磁盤104的分區(qū)表。具體包括首先,靜態(tài)申請(qǐng)一個(gè)65024字節(jié)(虛擬》茲盤104前127塊扇區(qū),每塊扇區(qū)512字節(jié),一共512x127字節(jié))的內(nèi)存緩沖區(qū)(iovst—mem—partition),其中前512字節(jié),即第一個(gè)扇區(qū)作為虛擬主引導(dǎo)扇區(qū),存放創(chuàng)建的虛擬磁盤分區(qū)表。其中,所創(chuàng)建的虛擬主引導(dǎo)扇區(qū)地址如下表1所示進(jìn)行分配:<table>tableseeoriginaldocumentpage11</column></row><table>然后,對(duì)所創(chuàng)建的虛擬主引導(dǎo)扇區(qū)進(jìn)行賦值。具體包括主引導(dǎo)記錄啟動(dòng)程序和啟動(dòng)字符串的賦值調(diào)用Linux操作系統(tǒng)提供的vfs_read函數(shù),獲取磁盤101上LV巻103的第一個(gè)扇區(qū)數(shù)據(jù),即主引導(dǎo)記錄扇區(qū)(MBR,MasterBootRecorder),然后將獲取的主引導(dǎo)記錄扇區(qū)的數(shù)據(jù)(即LV巻103的第一個(gè)扇區(qū)數(shù)據(jù))賦值給所述虛擬主引導(dǎo)扇區(qū),具體包括將第一個(gè)LV巻103的第一個(gè)扇區(qū)數(shù)據(jù)的主引導(dǎo)紀(jì)錄啟動(dòng)程序和啟動(dòng)字符串分別賦值給所創(chuàng)建的虛擬主引導(dǎo)分區(qū)表的主引導(dǎo)紀(jì)錄啟動(dòng)程序和啟動(dòng)字符串。保留域的賦值保留域填充為零。磁盤分區(qū)表域,即虛擬磁盤分區(qū)表,由4個(gè)分區(qū)表組成,每個(gè)分區(qū)具有16字節(jié),此處釆用分區(qū)O,其賦值如下虛擬磁盤分區(qū)表分區(qū)0的第0字節(jié)(用來表示虛擬磁盤104分區(qū)引導(dǎo)標(biāo)示)設(shè)置為0x0,表示將此分區(qū)設(shè)置為非活動(dòng)分區(qū);虛擬磁盤分區(qū)表分區(qū)0的第1~3字節(jié)(用來表示虛擬磁盤104分區(qū)開始地址的CHS格式)設(shè)置為0x0,表示不采用CHS格式,固將其設(shè)置為零;虛擬磁盤分區(qū)表分區(qū)0的第4字節(jié)(用來表示虛擬磁盤104分區(qū)的類型)設(shè)置為0xc,表示分區(qū)類型為fat32文件系統(tǒng);虛擬磁盤分區(qū)表分區(qū)0的第5~7字節(jié)(用來表示虛擬磁盤104分區(qū)結(jié)束地址的CHS格式)設(shè)置為0x0,表示不采用CHS格式,固將其設(shè)置為零;虛擬》茲盤分區(qū)表分區(qū)0的第8~11字節(jié)(用來表示虛擬i茲盤分區(qū)104開始的扇區(qū)地址)設(shè)置為Ox80,表示分區(qū)開始的扇區(qū)地址為0x80;虛擬磁盤分區(qū)表分區(qū)0的第1215字節(jié)(用來表示虛擬磁盤104分區(qū)占用的總共的扇區(qū)數(shù))設(shè)置為LV巻103的實(shí)際所占扇區(qū)數(shù)目與所申請(qǐng)的127塊扇區(qū)之和。比如,本實(shí)施例一共有三個(gè)LV巻103,其名稱分別為LV一A巻、LV—B巻和LV_C巻,各巻總共的所有扇區(qū)數(shù)=LV—A巻的扇區(qū)數(shù)目+LV—B巻的扇區(qū)數(shù)目+LV—C巻的扇區(qū)數(shù)目+127。其中,對(duì)于虛擬磁盤104分區(qū)所占扇區(qū)數(shù)目的獲取,將在下文進(jìn)行描述。主引導(dǎo)紀(jì)錄有效標(biāo)記的賦值設(shè)置為Oxaa55,表示分區(qū)表結(jié)束標(biāo)記。至此,所創(chuàng)建的虛擬主引導(dǎo)扇區(qū)賦值完畢。另外,對(duì)于內(nèi)存緩沖區(qū)其他126塊扇區(qū),即第2—127塊扇區(qū),其值也填充為零,用于作為保留區(qū)域。對(duì)于上文提到的虛擬磁盤104分區(qū)所占扇區(qū)數(shù)目的獲取步驟,包括以下步驟首先,調(diào)用Linux內(nèi)核系統(tǒng)函數(shù)flip—open,打開LV巻103(LV巻103以一文件方式存在);然后,調(diào)用Linux內(nèi)核系統(tǒng)函數(shù)i—size_read獲取LV巻103的所占字節(jié)多少,即LV巻103的文件長度file—length(LV—A與LV—B、LV_C的文件長度之和);并由LV巻103文件長度計(jì)算出LV巻103的所占總共扇區(qū)l丈目num—sectors=file—length/512;從而,計(jì)算出虛擬磁盤104的所占字節(jié)多少,即虛擬磁盤104的所占字節(jié)=file—length+127x512;以及計(jì)算出虛擬磁盤104的所占扇區(qū)數(shù)目=num—sectors+127。這里的127即所申"i青的虛擬f茲盤104前127塊扇區(qū)。步驟202:根據(jù)虛擬磁盤分區(qū)表中提供的表示虛擬磁盤分區(qū)開始的扇區(qū)地址作為起始地址,即將從虛擬磁盤第128塊扇區(qū)開始,根據(jù)各個(gè)LV巻的扇區(qū)實(shí)際數(shù)量進(jìn)行偏移計(jì)算,將虛擬磁盤104第128塊以后的扇區(qū)存儲(chǔ)空間映射到所要訪問的各個(gè)LV巻103的各個(gè)存儲(chǔ)空間。具體參見如圖3示出的虛擬磁盤104存儲(chǔ)空間與LV巻103存儲(chǔ)空間的映射關(guān)系,其中虛擬磁盤104的地址表示如下內(nèi)容OxOOOOOOx001FF:即步驟201所建立的表示虛擬磁盤104的第1塊扇區(qū)(扇區(qū)0),為構(gòu)建的虛擬主引導(dǎo)扇區(qū),由512個(gè)字節(jié)組成;0x002000x0FFFF:即步驟201所建立的表示虛擬》茲盤104的第2~127塊扇區(qū)(扇區(qū)1—126),為保留區(qū)域,全部用零填充;Oxl0000(0xl0000+MAX_A-1):即本步驟建立的表示虛擬磁盤104的數(shù)據(jù)存儲(chǔ)空間的第一部分,按照一對(duì)一的關(guān)系直接映射到實(shí)際的LV一A巻的存儲(chǔ)空間中;其中映射到的LV_A巻存儲(chǔ)空間地址為0~(MAX—A-l);(0xl0000+MAX—A)~(0xl0000+MAX—A+MAX—B-1):即本步驟建立的表示虛擬磁盤104的數(shù)據(jù)存儲(chǔ)空間第二部分,按照一對(duì)一的關(guān)系直接映射到實(shí)際的LV—B巻的存儲(chǔ)空間中;其中映射到的LV—B巻存儲(chǔ)空間地址為0(MAX—B-l);(OxlOOOO+MAX—A+MAX—B)~(0xl0000+MAX_A+MAX—B+MAX—C-l):即本步驟建立的表示虛擬磁盤104的數(shù)據(jù)存儲(chǔ)空間的第三部分,按照一對(duì)一的關(guān)系直接映射到實(shí)際的LV—C巻的存儲(chǔ)空間中;其中映射到的LV—C巻存儲(chǔ)空間地址為0~(MAX_C-1)。步驟203:當(dāng)安裝Windows系統(tǒng)的主機(jī)106訪問所述LV巻103的磁盤101時(shí),通過訪問所建立的虛擬磁盤104的存儲(chǔ)空間的方式,訪問所映射到的各個(gè)LV巻103的存儲(chǔ)空間,實(shí)現(xiàn)對(duì)該具有LV巻的磁盤101的數(shù)據(jù)讀耳又或?qū)懭氲炔僮鳌O旅嬉宰x寫為例對(duì)主機(jī)106訪問LV巻103的^茲盤101的過程進(jìn)行詳細(xì)說明當(dāng)建立完所述虛擬》茲盤104,主才幾106通過USB總線發(fā)送READCAPABILITY命令給USB接口層105后,USB接口層105將虛擬磁盤104所占扇區(qū)數(shù)作為最大邏輯扇區(qū)數(shù)返回給主機(jī)。如圖4示出的讀取LV巻103的磁盤101的流程圖,主機(jī)106通過USB總線發(fā)送讀命令時(shí),將所要讀的扇區(qū)地址和所讀的長度給USB接口層105;USB接口層105解析此命令,識(shí)別出為讀操作并解析出請(qǐng)求讀的扇區(qū)地址和長度,之后包括以下步驟步驟2031:判斷請(qǐng)求讀的扇區(qū)地址大于或等于虛擬磁盤104的最大扇區(qū)數(shù)時(shí),則返回越界訪問錯(cuò)誤碼,程序返回,否則執(zhí)行下一步。步驟2032:判斷請(qǐng)求讀的扇區(qū)地址等于0(即第一個(gè)扇區(qū))時(shí),進(jìn)行如下操作,否則執(zhí)行步驟2033。步驟2032a:判斷若請(qǐng)求讀的長度等于0或大于127時(shí),返回越界訪問錯(cuò)誤碼函數(shù)返回;否則執(zhí)行下一步。步驟2032b:判斷請(qǐng)求讀的長度等于1時(shí),將構(gòu)造出的虛擬磁盤分區(qū)表返回給主機(jī)106;否則執(zhí)行下一步。步驟2032c:執(zhí)行此步驟時(shí),則請(qǐng)求讀的長度大于1且小于127,由于第一個(gè)扇區(qū)(O扇區(qū))為構(gòu)造出的虛擬磁盤分區(qū)表,1到127扇區(qū)長度的內(nèi)容全部用零填充,故將填充的O數(shù)據(jù)返回給主機(jī)106。步驟2033:判斷請(qǐng)求讀的扇區(qū)地址大于0且小于等于分區(qū)開始的扇區(qū)數(shù)127,則將填充的O數(shù)據(jù)返回;否則執(zhí)行下一步。步驟2034:l丸行此步驟時(shí),則請(qǐng)求讀的扇區(qū)地址大于分區(qū)開始的扇區(qū)數(shù)127,進(jìn)行如下操作步驟2034a:請(qǐng)求讀的扇區(qū)地址-虛擬》茲盤分區(qū)開始的扇區(qū)地址,然后將其差值乘以512,最終將會(huì)得到實(shí)際讀訪問LV一A巻扇區(qū)的起始地址;步驟2034b:根據(jù)實(shí)際讀訪問LV_A巻扇區(qū)的起始地址,讀取所述長度的數(shù)據(jù)返回給主機(jī)106。這里說的是,本文中扇區(qū)地址的單位例如第n扇區(qū),所述扇區(qū)起始地址的單位是物理地址。參見圖5示出的寫LV巻103的磁盤101的流程圖,主機(jī)106通過USB總線發(fā)送寫命令時(shí),將所要寫的扇區(qū)地址和所要寫的數(shù)據(jù)給USB接口層105;USB接口層105解析此命令,識(shí)別出為寫操作并解析出請(qǐng)求寫的扇區(qū)地址和數(shù)據(jù),之后包括以下步驟步驟20301:如果請(qǐng)求寫的扇區(qū)地址大于或等于虛擬磁盤104的最大扇區(qū)數(shù)時(shí),則返回越界訪問錯(cuò)誤碼,程序返回;否則執(zhí)行下一步。步驟20302-20303:如果請(qǐng)求寫的扇區(qū)地址等于0或請(qǐng)求寫的扇區(qū)地址大于0且小于等于127時(shí),USB接口層105忽略此寫操作,程序返回;否則,執(zhí)行步驟20304的如下操作。步驟20304a:請(qǐng)求寫的扇區(qū)地址-虛擬磁盤分區(qū)開始的扇區(qū)地址,然后將其差值乘以512,最終將會(huì)得到實(shí)際寫LV一A巻扇區(qū)的起始地址;步驟20304b:將要寫入的數(shù)據(jù)從實(shí)際寫LV—A巻扇區(qū)的起始地址開始寫入。對(duì)于多個(gè)LV巻103,如LV—B,LV_C:實(shí)際訪問LV—B巻的扇區(qū)起始地址=(請(qǐng)求訪問的扇區(qū)地址-虛擬石茲盤分區(qū)開始的扇區(qū)地址-LV—A巻的最大扇區(qū)數(shù))x5i2;實(shí)際訪問LV—C巻的扇區(qū)起始地址=("i貪求訪問的扇區(qū)地址-虛擬》茲盤分區(qū)開始的扇區(qū)地址_LV—A巻的最大扇區(qū)數(shù)-LV—B巻的最大扇區(qū)數(shù))x512。以此類推,可以計(jì)算出多個(gè)巻存在時(shí)的實(shí)際訪問地址。由上可以看出,通過建立的虛擬磁盤104與LV巻103存儲(chǔ)空間的的映射關(guān)系,當(dāng)Windows系統(tǒng)的主機(jī)需要訪問LV103巻的存儲(chǔ)空間時(shí),其訪問所建立的虛擬磁盤104即可實(shí)現(xiàn)訪問所映射到的LV103巻的存儲(chǔ)空間的數(shù)據(jù)。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明。例如本實(shí)施例以安裝Windows操作系統(tǒng)的設(shè)備作為實(shí)施例進(jìn)行說明,也可以是安裝其他無LVM機(jī)制的操作系統(tǒng)的設(shè)備,如手機(jī)、DVD機(jī)所使用的操作系統(tǒng)等。另外,以上雖然以USB接口為例進(jìn)行說明,是考慮到以LV巻的磁盤作為移動(dòng)硬盤為例。不難理解,也可以是其他接口,如串口、并口、1394火線接口等。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種無LVM的操作系統(tǒng)訪問基于LV卷的存儲(chǔ)設(shè)備的方法,其特征在于,包括A、構(gòu)造一具有主引導(dǎo)扇區(qū)的虛擬磁盤;B、將虛擬磁盤的各個(gè)存儲(chǔ)地址映射到所要訪問的LV卷的各個(gè)存儲(chǔ)地址;C、對(duì)虛擬磁盤的存儲(chǔ)地址進(jìn)行訪問時(shí),訪問該存儲(chǔ)地址所映射到的LV卷的存儲(chǔ)地址。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A中構(gòu)造所述主引導(dǎo)扇區(qū)的虛擬磁盤的步驟包括Al、申請(qǐng)?zhí)囟ㄗ止?jié)的內(nèi)存緩沖區(qū)作為虛擬磁盤的虛擬主引導(dǎo)扇區(qū);A2、對(duì)所創(chuàng)建的虛擬主引導(dǎo)扇區(qū)進(jìn)行賦值以使所述虛擬磁盤可訪問。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟A2所述對(duì)所創(chuàng)建的虛擬主引導(dǎo)扇區(qū)進(jìn)行賦值包括獲取LV巻的主引導(dǎo)記錄扇區(qū)的主引導(dǎo)記錄啟動(dòng)程序和啟動(dòng)字符串,并賦值給所述虛擬主引導(dǎo)扇區(qū)的主引導(dǎo)記錄啟動(dòng)程序和主引導(dǎo)記錄啟動(dòng)字符串;根據(jù)磁盤結(jié)構(gòu)對(duì)虛擬磁盤分區(qū)表進(jìn)行賦值。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述對(duì)虛擬磁盤分區(qū)表進(jìn)行賦值包括將包含的表示虛擬磁盤分區(qū)開始的扇區(qū)地址的字節(jié)設(shè)置為表示虛擬i茲盤分區(qū)開始的扇區(qū)地址;將包含的表示虛擬磁盤分區(qū)占用的總扇區(qū)數(shù)的字節(jié)設(shè)置為LV巻所占扇區(qū)數(shù)目與所申請(qǐng)的特定字節(jié)的內(nèi)存緩沖區(qū)所占扇區(qū)數(shù)之和。5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述對(duì)虛擬磁盤分區(qū)表進(jìn)行賦值包括將包含的表示虛擬磁盤分區(qū)引導(dǎo)標(biāo)示的字節(jié)設(shè)置為表示非活動(dòng)分區(qū);將包含的表示虛擬磁盤分區(qū)開始地址格式的字節(jié)設(shè)置為表示非CHS格式;將包含的表示虛擬磁盤分區(qū)的類型的字節(jié)設(shè)置為表示分區(qū)類型為fat32文件系統(tǒng);將包含的表示虛擬磁盤分區(qū)結(jié)束地址格式的字節(jié)設(shè)置為表示非CHS格式。6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述LV巻所占扇區(qū)數(shù)目釆用如下方式獲得獲取LV巻的所占的字節(jié)數(shù);根據(jù)下述公式計(jì)算LV巻所占扇區(qū)數(shù)LV巻所占扇區(qū)數(shù)二LV巻的所占的字節(jié)數(shù)/512。7.根據(jù)權(quán)利要求4、5或6所述的方法,其特征在于,所述步驟B包括Bl、根據(jù)虛擬i茲盤分區(qū)表中表示虛擬i茲盤分區(qū)開始的扇區(qū)地址作為虛擬萬茲盤分區(qū)起始地址;B2、根據(jù)獲取的各個(gè)LV巻所占扇區(qū)數(shù)目計(jì)算出各個(gè)LV巻所占存儲(chǔ)設(shè)備的存儲(chǔ)地址數(shù);B3、以所述虛擬》茲盤分區(qū)起始地址為偏移量,將虛擬磁盤分區(qū)該起始地址后的各個(gè)存儲(chǔ)地址依次映射到所述各個(gè)LV巻的存儲(chǔ)地址。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,步驟C所述訪問為讀取時(shí),所述訪問的步驟包括C71、計(jì)算實(shí)際訪問的LV巻扇區(qū)的起始地址,包括實(shí)際訪問LV—A巻扇區(qū)的起始地址=(請(qǐng)求讀的扇區(qū)地址-127)x512;C72、由計(jì)算出的實(shí)際訪問LV巻扇區(qū)的起始地址,根據(jù)所述讀取指令中的所讀取字節(jié)長度進(jìn)行讀取。9.根據(jù)權(quán)利要求7所述的方法,其特征在于,步驟C所述訪問為寫數(shù)據(jù)時(shí),所述訪問的步驟包括C81、計(jì)算實(shí)際訪問LV巻扇區(qū)的起始地址,包括實(shí)際訪問LV—A巻扇區(qū)的起始地址=(請(qǐng)求寫的扇區(qū)地址-127)x512;C82、由計(jì)算出的實(shí)際訪問LV巻扇區(qū)的起始地址,將所述寫數(shù)據(jù)指令中的數(shù)據(jù)進(jìn)行寫入LV巻中。全文摘要本發(fā)明提供了一種無LVM的操作系統(tǒng)訪問基于LV卷的存儲(chǔ)設(shè)備的方法,包括構(gòu)造一具有主引導(dǎo)扇區(qū)的虛擬磁盤;將虛擬磁盤的各個(gè)存儲(chǔ)地址映射到所要訪問的LV卷的各個(gè)存儲(chǔ)地;對(duì)虛擬磁盤的存儲(chǔ)地址進(jìn)行訪問時(shí),訪問該存儲(chǔ)地址所映射到的LV卷的存儲(chǔ)地址。使用本發(fā)明,解決無LVM機(jī)制的操作系統(tǒng)無法識(shí)別基于LVM的存儲(chǔ)裝置,即實(shí)現(xiàn)無LVM操作系統(tǒng)的主機(jī)可以直接識(shí)別基于LVM機(jī)制在磁盤上所建立的LV卷。文檔編號(hào)G06F3/06GK101609393SQ20091008947公開日2009年12月23日申請(qǐng)日期2009年7月21日優(yōu)先權(quán)日2009年7月21日發(fā)明者勇劉申請(qǐng)人:北京數(shù)帥科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
正定县| 开封市| 安远县| 台山市| 神池县| 米泉市| 鄱阳县| 沾化县| 绵阳市| 永寿县| 临夏县| 绥江县| 平阴县| 达日县| 宿州市| 麟游县| 通辽市| 德兴市| 鄱阳县| 石楼县| 金溪县| 沅江市| 天气| 青浦区| 朔州市| 贺州市| 工布江达县| 景洪市| 隆昌县| 连江县| 宣武区| 旺苍县| 湘西| 潜江市| 襄垣县| 元江| 大关县| 梁山县| 扎兰屯市| 方山县| 平罗县|