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

一種在Windows下調(diào)整磁盤分區(qū)的方法及裝置的制作方法

文檔序號(hào):6424568閱讀:250來(lái)源:國(guó)知局
專利名稱:一種在Windows下調(diào)整磁盤分區(qū)的方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明 涉及計(jì)算機(jī)領(lǐng)域,尤其涉及的是一種在Windows下調(diào)整NTFS分區(qū)位置和大小的方法及裝置。
背景技術(shù)
隨著科技的發(fā)展和人們生活水平的不斷提高,計(jì)算機(jī)的使用越來(lái)越普及,計(jì)算機(jī)已經(jīng)成為人們不可缺少的一部分。磁盤是計(jì)算機(jī)的主要外部存儲(chǔ)設(shè)備,并以扇區(qū)為最小存儲(chǔ)單元。在使用磁盤時(shí), 磁盤會(huì)劃分為若干分區(qū),一個(gè)分區(qū)即為磁盤上的一塊連續(xù)扇區(qū)空間,在磁盤上有絕對(duì)的起始位置和容量大小,如圖1所示,磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[j,k],(k>j),共 k-j+1個(gè)扇區(qū)大小。在安裝Windows操作系統(tǒng)時(shí),系統(tǒng)會(huì)被安裝到一個(gè)分區(qū)(通常就是我們熟知的C 盤)。分區(qū)一旦被劃分出來(lái),其在磁盤上的起始位置和容量大小就固定了,不能隨意改變,當(dāng)用戶使用計(jì)算機(jī)的過(guò)程中,如果出現(xiàn)C盤空間不足的情況,現(xiàn)有技術(shù)中只能采取把C格式化重新分區(qū),分個(gè)大的C盤,這樣做既費(fèi)時(shí)費(fèi)力,也容易導(dǎo)致用戶的數(shù)據(jù)丟失,給計(jì)算機(jī)的操作和使用帶來(lái)了不便。并且目前改變NTFS分區(qū)起始位置和大小的方法有三大不足1.不支持改變分區(qū)的起始位置;2. Vista/ffindows7下無(wú)法直接寫磁盤扇區(qū),因而無(wú)法支持Vista/Windows 7 最新操作系統(tǒng);3.在操作Windows分區(qū)時(shí)無(wú)法對(duì)Windows分區(qū)進(jìn)行有效保護(hù),導(dǎo)致操作完成后,Windows有不能正常啟動(dòng)的風(fēng)險(xiǎn)。因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述缺陷,提供一種在Windows 下調(diào)整磁盤分區(qū)的方法及裝置,提供了一種在保護(hù)現(xiàn)有Windows的前提下,調(diào)整分區(qū)的起始位置和容量大小的方法,并支持Vista/Windows 7最新操作系統(tǒng),為用戶提供了方便。本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案如下
一種在Windows下調(diào)整磁盤分區(qū)的方法,其中,所述的方法包括如下步驟
A、接收調(diào)整磁盤分區(qū)大小的操作指令;
B、進(jìn)入WindowsNative模式,加載Windows系統(tǒng)分區(qū)保護(hù)機(jī)制,并加載磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng);
C、判斷被調(diào)整的磁盤分區(qū)是調(diào)大還是調(diào)小,當(dāng)調(diào)小時(shí)轉(zhuǎn)到步驟D,當(dāng)調(diào)大時(shí)直接將 NTFS分區(qū)簇占用信息的范圍調(diào)大,并跳到步驟E ;
D、對(duì)被調(diào)整的磁盤分區(qū)的文件進(jìn)行遍歷,判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是否在調(diào)整范圍以內(nèi);當(dāng)判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是在調(diào)整范圍以外時(shí),則移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi),并更新文件內(nèi)容的簇占用信息,進(jìn)入步驟E ;Ε、根據(jù)調(diào)整后的磁盤分區(qū)大小和文件簇占用信息,更新文件系統(tǒng)的簇占用信息,以及更新文件系統(tǒng)的啟動(dòng)引導(dǎo)扇區(qū)進(jìn)入步驟F ;
F、判斷調(diào)整后的磁盤分區(qū)的起始偏移是否發(fā)生了變化,當(dāng)調(diào)整后的磁盤分區(qū)的起始偏移發(fā)生了變化,轉(zhuǎn)到步驟G,否則轉(zhuǎn)到步驟H ;
G、根據(jù)調(diào)整后的磁盤分區(qū)偏移變化情況,對(duì)調(diào)整后的磁盤分區(qū)進(jìn)行整體移動(dòng),從調(diào)整前的偏移移向調(diào)整后的偏移,進(jìn)入步驟H;
H、再次重啟Windows系統(tǒng)。所述在Windows下調(diào)整磁盤分區(qū)的方法,其中,所述磁盤分區(qū)包括NTFS分區(qū)、 FAT32分區(qū)、exFAT分區(qū)。所述在Windows下調(diào)整磁盤分區(qū)的方法,其中,所述步驟D中的移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi)還包括通過(guò)扇區(qū)讀寫驅(qū)動(dòng)來(lái)移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi)。所述在Windows下調(diào)整磁盤分區(qū)的方法,其中,所述步驟G進(jìn)一步包括
G1、當(dāng)調(diào)整后的磁盤分區(qū)的偏移減少了 a個(gè)扇區(qū)時(shí),則先在調(diào)整后的磁盤分區(qū)后部增大a個(gè)扇區(qū),并更新文件系統(tǒng)的扇區(qū)占用信息;
G2、將增大a個(gè)扇區(qū)后的磁盤分區(qū)的所有扇區(qū)向前移動(dòng)a個(gè)扇區(qū),則完成調(diào)整狀態(tài)。所述在Windows下調(diào)整磁盤分區(qū)的方法,其中,所述Windows系統(tǒng)分區(qū)保護(hù)機(jī)制, 用于保護(hù)Windows系統(tǒng)分區(qū),通過(guò)文件系統(tǒng)過(guò)濾驅(qū)動(dòng),對(duì)Native環(huán)境下系統(tǒng)進(jìn)行的讀寫操作進(jìn)行攔截,并進(jìn)行重定向。所述在Windows下調(diào)整磁盤分區(qū)的方法,其中,所述磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng)為一內(nèi)核態(tài)的驅(qū)動(dòng)程序,用于在移動(dòng)文件的內(nèi)容,要寫磁盤時(shí),通過(guò)給該內(nèi)核驅(qū)動(dòng)程序發(fā)送請(qǐng)求,將要寫的磁盤扇區(qū)內(nèi)容由該內(nèi)核驅(qū)動(dòng)程序?qū)崿F(xiàn)磁盤扇區(qū)的寫操作。一種在Windows下調(diào)整磁盤分區(qū)的裝置,其中,包括 接收模塊,用于接收調(diào)整磁盤分區(qū)大小的操作指令;
調(diào)整初始加載模塊,用于進(jìn)入Windows Native模式,加載Windows系統(tǒng)分區(qū)保護(hù)機(jī)制, 并加載磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng);
第一判斷模塊,用于判斷被調(diào)整的磁盤分區(qū)是調(diào)大還是調(diào)小;
調(diào)小處理模塊,用于當(dāng)對(duì)被調(diào)整的磁盤分區(qū)調(diào)小時(shí),對(duì)被調(diào)整的磁盤分區(qū)的文件進(jìn)行遍歷,判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是否在調(diào)整范圍以內(nèi);當(dāng)判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是在調(diào)整范圍以外時(shí),則移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi),并更新文件內(nèi)容的簇占用信息;
更新模塊,用于根據(jù)調(diào)整后的磁盤分區(qū)大小和文件簇占用信息,更新文件系統(tǒng)的簇占用信息;并更新文件系統(tǒng)的啟動(dòng)引導(dǎo)扇區(qū)。所述在Windows下調(diào)整磁盤分區(qū)的裝置,其中,其還包括
第二判斷模塊,用于判斷調(diào)整后的磁盤分區(qū)的起始偏移是否發(fā)生了變化; 偏移模塊,用于當(dāng)調(diào)整后的磁盤分區(qū)的起始偏移發(fā)生了變化,根據(jù)調(diào)整后的磁盤分區(qū)偏移變化情況,對(duì)調(diào)整后的磁盤分區(qū)進(jìn)行整體移動(dòng),從調(diào)整前的偏移移向調(diào)整后的偏移; 調(diào)整后啟動(dòng)模塊,用于分區(qū)調(diào)整完成,正常啟動(dòng)Windows。所述在Windows下調(diào)整磁盤分區(qū)的裝置,其中,所述磁盤分區(qū)包括NTFS分區(qū)、 FAT32分區(qū)、exFAT分區(qū);所述調(diào)小處理模塊進(jìn)一步包括
扇區(qū)讀寫驅(qū)動(dòng)單元,用于通過(guò)扇區(qū)讀寫驅(qū)動(dòng)來(lái)移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi)。
所述在Windows下調(diào)整磁盤分區(qū)的裝置,其中,所述偏移模塊進(jìn)一步包括 偏移增大單元,用于當(dāng)調(diào)整后的磁盤分區(qū)的偏移減少了 a個(gè)扇區(qū)時(shí),則先在調(diào)整后的
磁盤分區(qū)后部增大a個(gè)扇區(qū),并更新文件系統(tǒng)的扇區(qū)占用信息;
前移單元,用于將增大a個(gè)扇區(qū)后的磁盤分區(qū)的所有扇區(qū)向前移動(dòng)a個(gè)扇區(qū),則完成調(diào)整狀態(tài)。本發(fā)明所提供的一種在Windows下調(diào)整磁盤分區(qū)的方法及裝置,通過(guò)將起始位置變化的分區(qū)大小調(diào)整轉(zhuǎn)化為起始位置不變的分區(qū)大小調(diào)整,從而實(shí)現(xiàn)分區(qū)位置變化調(diào)整的支持;在Vista/Windows 7下,通過(guò)內(nèi)核驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)磁盤扇區(qū)的寫操作;在操作 Windows分區(qū),通過(guò)保護(hù)機(jī)制,實(shí)現(xiàn)Windows系統(tǒng)分區(qū)的保護(hù),保證操作系統(tǒng)的完整性,并且在分區(qū)時(shí)可以有效地保護(hù)用戶的數(shù)據(jù),其給計(jì)算機(jī)增加了新的功能能在Windows下隨意調(diào)整NTFS分區(qū),并具有改變分區(qū)的起始位置的功能,保證了分區(qū)后系統(tǒng)的安全性,為用戶提供了方便。


圖1是一種NTFS分區(qū)結(jié)構(gòu)示意圖。圖2是本發(fā)明實(shí)施例的第一種分區(qū)C狀態(tài)結(jié)構(gòu)示意圖。圖3是本發(fā)明實(shí)施例的第二種分區(qū)C狀態(tài)結(jié)構(gòu)示意圖。圖4是本發(fā)明實(shí)施例的第三種分區(qū)C狀態(tài)結(jié)構(gòu)示意圖。圖5是本發(fā)明實(shí)施例的第四種分區(qū)C狀態(tài)結(jié)構(gòu)示意圖。圖6是本發(fā)明實(shí)施例在Windows下調(diào)整磁盤分區(qū)的方法流程圖。圖7是本發(fā)明一具體應(yīng)用實(shí)施例調(diào)整后分區(qū)C狀態(tài)結(jié)構(gòu)示意圖。圖8是本發(fā)明具體實(shí)施例中分區(qū)C調(diào)小狀態(tài)結(jié)構(gòu)示意圖。圖9是本發(fā)明具體實(shí)施例中分區(qū)C偏移狀態(tài)結(jié)構(gòu)示意圖。圖10是本發(fā)明實(shí)施例在Windows下調(diào)整磁盤分區(qū)的裝置原理框圖。圖11是本發(fā)明實(shí)施例裝置的調(diào)小處理模塊內(nèi)部框圖。圖12是本發(fā)明實(shí)施例裝置的偏移模塊內(nèi)部框圖。
具體實(shí)施例方式本發(fā)明所提供的一種在Windows下調(diào)整磁盤分區(qū)的方法及裝置,所述磁盤分區(qū)包括NTFS分區(qū)、FAT32分區(qū)、exFAT分區(qū)。為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚、明確,以下參照附圖并舉實(shí)施例對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。其中,分區(qū)起始偏移位置和容量大小調(diào)整,歸納起來(lái)有以下幾種情況
1、分區(qū)起始偏移位置(簡(jiǎn)稱偏移或位置)不變的分區(qū)大小調(diào)整,如圖2和圖3所示,分區(qū) C由圖2的狀態(tài)調(diào)整到圖3的狀態(tài),分區(qū)有調(diào)大與調(diào)小兩種情況,這里只展示了調(diào)大的情況。其中,圖2的狀態(tài)磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[j,k],共計(jì)k_j+l個(gè)扇區(qū)大小。
圖3的狀態(tài)磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[j,k+b],(b>0)。2、分區(qū)起始偏移變化的分區(qū)大小調(diào)整,如圖2、圖4、圖5所示分區(qū)C由圖2的狀態(tài)調(diào)整到圖4的狀態(tài)或圖5的狀態(tài),(分區(qū)偏移有向前調(diào)與向后調(diào)兩種情況,這里只展示向前調(diào)的情況)。 其中,圖2的狀態(tài)為磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[j,k]。圖4的狀態(tài)為磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[j_a,k],(a>0)。圖5的狀態(tài)為磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[j_a,k+b],(a>0,b>0,j>a)。本發(fā)明實(shí)施例1提供了一種在Windows下調(diào)整NTFS分區(qū)的方法,如圖6所示,主要包括以下步驟
步驟S110、接收用戶輸入的確認(rèn)調(diào)整NTFS分區(qū)大小的操作指令;譬如,當(dāng)用戶需調(diào)整 C盤分區(qū),對(duì)C盤分區(qū)加大2個(gè)G的存儲(chǔ)空間,則輸入相應(yīng)的對(duì)C盤分區(qū)加大2個(gè)G的操作指令。步驟S120、重啟Windows系統(tǒng)。調(diào)整分區(qū)的指令輸入后,重新啟動(dòng)Windows系統(tǒng), 進(jìn)入步驟S130。步驟S130、進(jìn)入Windows Native模式,加載Windows系統(tǒng)分區(qū)保護(hù)機(jī)制,并加載磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng)。其中,Native模式是Windows啟動(dòng)后,用戶登陸前的一個(gè)運(yùn)行狀態(tài),本發(fā)明實(shí)施例中NTFS分區(qū)的調(diào)整操作就是在此運(yùn)行狀態(tài)下完成的。在此狀態(tài)下只有Windows的少量程序在運(yùn)行,磁盤的讀寫操作很少,可大大減少對(duì)分區(qū)調(diào)整操作的影響;類似于Windows自帶的分區(qū)檢查功能。關(guān)于Windows系統(tǒng)分區(qū)保護(hù)機(jī)制,在磁盤讀寫驅(qū)動(dòng)中,本發(fā)明分區(qū)調(diào)整操作是在 Native環(huán)境下完成了,Native環(huán)境下雖然只有少量進(jìn)程,對(duì)系統(tǒng)分區(qū)進(jìn)行讀寫,但無(wú)法鎖定系統(tǒng)分區(qū),對(duì)系統(tǒng)分區(qū)的讀寫通過(guò)驅(qū)動(dòng)完成的。因此可能存在一種沖突移動(dòng)文件時(shí)通過(guò)驅(qū)動(dòng)寫的扇區(qū),也是Native環(huán)境下系統(tǒng)進(jìn)行寫的扇區(qū)。如果沖突發(fā)生,會(huì)導(dǎo)致文件內(nèi)容的損壞,進(jìn)而破壞Windows系統(tǒng)分區(qū),導(dǎo)致在調(diào)整操作完成后,原來(lái)的Windows系統(tǒng)無(wú)法正常啟動(dòng)。為了避免這種的情況的發(fā)生,本發(fā)明中采用一種保護(hù)機(jī)制,即Windows系統(tǒng)分區(qū)保護(hù)機(jī)制,用于保護(hù)Windows系統(tǒng)分區(qū)。通過(guò)一個(gè)文件系統(tǒng)過(guò)濾驅(qū)動(dòng),對(duì)Native環(huán)境下系統(tǒng)進(jìn)行的讀寫操作進(jìn)行攔截,并進(jìn)行重定向,避免其與磁盤讀寫驅(qū)動(dòng)寫操作發(fā)生沖突。由于在Native環(huán)境下,系統(tǒng)進(jìn)行的讀寫操作非常少,因此這種重定向的保護(hù)機(jī)制,系統(tǒng)開銷非常少,也方便實(shí)現(xiàn)。文件系統(tǒng)過(guò)濾驅(qū)動(dòng)是工作在Windows內(nèi)核的一個(gè)程序。它在Windows啟動(dòng)時(shí)被加載運(yùn)行起來(lái),便執(zhí)行對(duì)Windows系統(tǒng)分區(qū)讀寫操作攔截的功能。任何對(duì)Windows系統(tǒng)分區(qū)的讀寫操作,都會(huì)先經(jīng)過(guò)文件系統(tǒng)過(guò)濾驅(qū)動(dòng)程序,文件系統(tǒng)過(guò)濾驅(qū)動(dòng)可以改變讀寫操作行為。為了避免上述的讀寫沖突,文件系統(tǒng)過(guò)濾驅(qū)動(dòng)會(huì)將所有Windows對(duì)系統(tǒng)分區(qū)上某扇區(qū)的讀寫操作改變對(duì)我們指定的其他地方的讀寫操作。這們就保證了每個(gè)扇區(qū)只會(huì)有一個(gè)程序在讀寫,避免讀寫并發(fā)沖突的問(wèn)題,也就保證Windows系統(tǒng)分區(qū)數(shù)據(jù)的完整性。關(guān)于實(shí)施例中的磁盤扇區(qū)讀寫驅(qū)動(dòng);自Windows Vista開始,微軟為提高 Windows系統(tǒng)的安全性,任何應(yīng)用程序?qū)Υ疟P或分區(qū)進(jìn)行寫操作,必須先鎖定磁盤或分區(qū),進(jìn)行獨(dú)占寫操作。在Windows運(yùn)行環(huán)境下,Windows有大量進(jìn)程在運(yùn)行,在不間斷的對(duì)磁盤進(jìn)行讀寫操作,因此本發(fā)明實(shí)施例中重啟轉(zhuǎn)到了 Native下完成調(diào)整操作。而在Native運(yùn)行環(huán)境下,雖然環(huán)境簡(jiǎn)單,也還有少量進(jìn)程在運(yùn)行,對(duì)系統(tǒng)分區(qū)進(jìn)行讀寫操作,因而也無(wú)法成功鎖定進(jìn)行寫操作。因此,本發(fā)實(shí)施例還實(shí)現(xiàn)了加載一個(gè)磁盤扇區(qū)讀寫驅(qū)動(dòng)程序,因?yàn)閮?nèi)核程序有較高的優(yōu)先級(jí),可不受操作系統(tǒng)限制對(duì)磁盤進(jìn)行讀寫。所以本發(fā)明實(shí)施例中在移動(dòng)文件的內(nèi)容時(shí),要寫磁盤時(shí),就會(huì)通過(guò)給內(nèi)核驅(qū)動(dòng)程序發(fā)送請(qǐng)求, 將要寫的磁盤扇區(qū)內(nèi)容由該內(nèi)核驅(qū)動(dòng)程序完成,從而實(shí)現(xiàn)磁盤扇區(qū)的成功寫操作。
磁盤讀寫驅(qū)動(dòng)程序也是工作在Windows內(nèi)核的一個(gè)程序。它的作用是進(jìn)行磁盤讀寫操作。自Vista、Win7后,任何非內(nèi)核程序在沒有獨(dú)占鎖定磁盤的條件下是無(wú)法對(duì)磁盤進(jìn)行寫操作的,而內(nèi)核程序則不受任何限制。Native下Windows少量系統(tǒng)進(jìn)程也在對(duì)磁盤進(jìn)行讀寫操作,無(wú)法獨(dú)占。因此,在移動(dòng)文件內(nèi)容時(shí),所有磁盤讀寫操作都會(huì)讓磁盤讀寫驅(qū)動(dòng)代為讀寫來(lái)達(dá)到目的。這樣文件系統(tǒng)過(guò)濾驅(qū)動(dòng)和磁盤扇區(qū)讀寫驅(qū)動(dòng)一起作用,既能對(duì)Windows系統(tǒng)分區(qū)進(jìn)行讀寫,又能避免讀寫沖突。完成,加載Windows系統(tǒng)分區(qū)保護(hù)機(jī)制,并加載磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng)后,進(jìn)入步驟 S140。步驟S140、判斷被調(diào)整的NTFS分區(qū)是調(diào)大還是調(diào)小,當(dāng)調(diào)小時(shí)轉(zhuǎn)到步驟S150,當(dāng)調(diào)大時(shí)轉(zhuǎn)到步驟S160。步驟S150、當(dāng)是對(duì)被調(diào)整的NTFS分區(qū)進(jìn)行調(diào)小,則需對(duì)被調(diào)小的NTFS分區(qū)的文件進(jìn)行遍歷,所謂遍歷(Traversal),是指沿著某條搜索路線,依次對(duì)樹中每個(gè)結(jié)點(diǎn)均做一次且僅做一次訪問(wèn)。并判斷被調(diào)整的NTFS分區(qū)文件內(nèi)容占用的簇是否在調(diào)整范圍以內(nèi)?
其中,簇是文件系統(tǒng)管理分配空間的最小單元,是幾個(gè)扇區(qū)的集合。一個(gè)簇的扇區(qū)數(shù)一般是2的η次方(η為自然數(shù),η>=0,且η<= 10)。簇可以直接理解為扇區(qū)。當(dāng)判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是在調(diào)整范圍以內(nèi)則不用移動(dòng)磁盤分區(qū)文件。而當(dāng)判斷被調(diào)整的NTFS分區(qū)文件內(nèi)容占用的簇是在調(diào)整范圍以外時(shí),則移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi),例如,當(dāng)需對(duì)C盤分區(qū)調(diào)小,而該C盤原有一 QQ文件內(nèi)容占用的簇是在調(diào)整范圍以外,則可在調(diào)整范圍內(nèi)查找空閑扇區(qū),通過(guò)扇區(qū)讀寫驅(qū)動(dòng)來(lái)移動(dòng)該QQ文件內(nèi)容到調(diào)整范圍以內(nèi)。并更新文件內(nèi)容的簇占用信息,進(jìn)入步驟S160。步驟S160、根據(jù)調(diào)整后的NTFS分區(qū)大小和文件簇占用信息,更新文件系統(tǒng)的簇占用信息;即如果是調(diào)大NTFS分區(qū),直接將NTFS分區(qū)簇占用信息的范圍調(diào)大,然后更新文件系統(tǒng)的簇占用信息。步驟S170、更新文件系統(tǒng)的啟動(dòng)引導(dǎo)扇區(qū)。步驟S180、判斷調(diào)整后的NTFS分區(qū)的起始偏移是否發(fā)生了變化(即判斷調(diào)整后的 NTFS分區(qū)的起始位置與調(diào)節(jié)前的NTFS分區(qū)的起始位置的偏移是否發(fā)生了變化?),當(dāng)調(diào)整后的NTFS分區(qū)的起始偏移發(fā)生了變化,轉(zhuǎn)到步驟S190,否則轉(zhuǎn)到步驟S200 ;
步驟S190、根據(jù)調(diào)整后的NTFS分區(qū)偏移變化情況,對(duì)調(diào)整后的NTFS分區(qū)進(jìn)行整體移動(dòng),從調(diào)整前的偏移移向調(diào)整后的偏移例如、當(dāng)調(diào)整后的NTFS分區(qū)的偏移減少了 a個(gè)扇區(qū)時(shí),則先在調(diào)整后的NTFS分區(qū)后部增大a個(gè)扇區(qū),并更新文件系統(tǒng)的扇區(qū)占用信息;然后將增大a個(gè)扇區(qū)后的NTFS分區(qū)的所有扇區(qū)向前移動(dòng)a個(gè)扇區(qū),則完成調(diào)整狀態(tài)。進(jìn)入步驟S200。步驟S200、再次重啟Windows系統(tǒng),進(jìn)入步驟S210 ; 步驟S210、正常啟動(dòng)Windows,分區(qū)調(diào)整完成。以下通過(guò)一具體的應(yīng)用實(shí)施例對(duì)本發(fā)明在Windows下調(diào)整NTFS分區(qū)的方法做進(jìn)一步詳細(xì)說(shuō)明
本具體應(yīng)用實(shí)施例中,調(diào)整前的分區(qū)狀態(tài)圖如圖2所示,在圖2的狀態(tài)中,磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[」沽],共計(jì)1^_+1個(gè)扇區(qū)大小。現(xiàn)在需同時(shí)調(diào)整C盤位置與大小,到圖7所示的狀態(tài)磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[j-a,k_b],(a>0,b>0, j>a, k>b)。其中,分區(qū)C從圖2所示的狀態(tài)到圖7所示的狀態(tài)7的變化中,分區(qū)偏移與大小同時(shí)發(fā)生了變化。本實(shí)施將通過(guò)以下步驟實(shí)現(xiàn)
首先,從圖2、圖7可以看到,由于從圖2所示的狀態(tài)到圖7所示的狀態(tài),分區(qū)C的大小減少了 b個(gè)扇區(qū),扇區(qū)范圍(k-b,k]在調(diào)整后就不屬于分區(qū)C的占用范圍,而當(dāng)是對(duì)被調(diào)整的NTFS分區(qū)進(jìn)行調(diào)小,則需對(duì)被調(diào)小的NTFS分區(qū)的文件進(jìn)行遍歷。所以本實(shí)施例中,由于從圖2所示的狀態(tài)到圖7所示的狀態(tài),分區(qū)C的大小減少了 b個(gè)扇區(qū),要對(duì)分區(qū)C的文件進(jìn)行遍歷,判斷是否有文件占用的扇區(qū)屬于范圍(k-b,k];如果是,就從扇區(qū)范圍[j,k-b]內(nèi)查找空閑扇區(qū),將文件內(nèi)容從扇區(qū)范圍(k-b,k]移動(dòng)到扇區(qū)范圍[j,k-b]。在移動(dòng)的過(guò)程中,要借助扇區(qū)讀寫驅(qū)動(dòng)。移動(dòng)文件內(nèi)容后更新文件的扇區(qū)占用信息;文件遍歷完后,更新文件系統(tǒng)的扇區(qū)占用信息。所有操作完成后,分區(qū)C變成了如圖8所示的中間狀態(tài)。其中,圖8所示的分區(qū)狀態(tài)為磁盤有η個(gè)扇區(qū),分區(qū)C的扇區(qū)范圍為[j,k-b], (b>0,k>b)。接著,處理分區(qū)偏移變化。在圖2到圖7所示的分區(qū)狀態(tài)中,分區(qū)C的偏移減少了 a個(gè)扇區(qū)。結(jié)合NTFS文件系統(tǒng)的特點(diǎn),本發(fā)明實(shí)施例中在圖8所示的分區(qū)狀態(tài)8的基礎(chǔ)上, 先在圖8所示的分區(qū)C后部增大a個(gè)扇區(qū)。變?yōu)槿鐖D9所示的狀態(tài)磁盤有η個(gè)扇區(qū),分區(qū) C的扇區(qū)范圍為[j,k-b+a], (a>0, b>0,k>b)。圖9所示的狀態(tài)增加了分區(qū)C的大小,不用移動(dòng)文件內(nèi)容,只要更新文件系統(tǒng)的扇區(qū)占用信息即可。即如果是調(diào)大NTFS分區(qū),直接將 NTFS分區(qū)簇占用信息的范圍調(diào)大,然后根據(jù)調(diào)整后的NTFS分區(qū)大小和文件簇占用信息,更新文件系統(tǒng)的簇占用信息。最后,為了將調(diào)整分區(qū)偏移,本發(fā)明實(shí)施中只需要在圖9所示的分區(qū)狀態(tài)的基礎(chǔ)上,將分區(qū)C的所有扇區(qū)向前移動(dòng)a個(gè)扇區(qū),即可實(shí)現(xiàn)最終的調(diào)整狀態(tài),即圖7所示的分區(qū) C的最終狀態(tài)。分區(qū)C的狀態(tài)從圖2所示的狀態(tài)開始,經(jīng)過(guò)圖8所示的狀態(tài)進(jìn)行大小調(diào)整、及圖9 所示的狀態(tài)9進(jìn)行偏移的變化,即可調(diào)整到最終的圖7所述的分區(qū)C的狀態(tài)。在實(shí)際操作過(guò)程中,由于圖9所示的分區(qū)C狀態(tài)只是變化分區(qū)的大小,不用移動(dòng)文件內(nèi)容,圖8所示的分區(qū)C狀態(tài)和圖9所示的分區(qū)C狀態(tài)9的變換操作可以合并為一個(gè)操作。由上可見,本發(fā)明實(shí)施例提供一種在Windows下調(diào)整磁盤分區(qū)的方法,提供了一種在保護(hù)現(xiàn)有Windows的前提下,調(diào)整分區(qū)的起始位置和容量大小的方法,并支持Vista/ Windows 7最新操作系統(tǒng),為用戶提供了方便。
基于上述實(shí)施例的在Windows下調(diào)整磁盤分區(qū)的方法,本發(fā)明實(shí)施例還提供了一 種在Windows下調(diào)整磁盤分區(qū)的裝置,如圖10所示,其包括
接收模塊910,用于接收用戶輸入的確認(rèn)調(diào)整NTFS分區(qū)大小的操作指令,并重啟 Windows系統(tǒng);具體如上所述。調(diào)整初始加載模塊920,用于重啟Windows系統(tǒng),進(jìn)入Windows Native模式,加載 Windows系統(tǒng)分區(qū)保護(hù)機(jī)制,并加載磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng);具體如上所述。第一判斷模塊930,用于判斷被調(diào)整的NTFS分區(qū)是調(diào)大還是調(diào)小;具體如上所述。調(diào)小處理模塊940,用于當(dāng)對(duì)被調(diào)整的NTFS分區(qū)調(diào)小時(shí),對(duì)被調(diào)整的NTFS分區(qū)的文件進(jìn)行遍歷,判斷被調(diào)整的NTFS分區(qū)文件內(nèi)容占用的簇是否在調(diào)整范圍以內(nèi);當(dāng)判斷被調(diào)整的NTFS分區(qū)文件內(nèi)容占用的簇是在調(diào)整范圍以外時(shí),則移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi),并更新文件內(nèi)容的簇占用信息;具體如上所述。更新模塊950,用于根據(jù)調(diào)整后的NTFS分區(qū)大小和文件簇占用信息,更新文件系統(tǒng)的簇占用信息;并更新文件系統(tǒng)的啟動(dòng)引導(dǎo)扇區(qū)。第二判斷模塊960,用于判斷調(diào)整后的NTFS分區(qū)的起始偏移是否發(fā)生了變化;具體如上所述。偏移模塊970,用于當(dāng)調(diào)整后的NTFS分區(qū)的起始偏移發(fā)生了變化,根據(jù)調(diào)整后的 NTFS分區(qū)偏移變化情況,對(duì)調(diào)整后的NTFS分區(qū)進(jìn)行整體移動(dòng),從調(diào)整前的偏移移向調(diào)整后的偏移;具體如上所述。調(diào)整后啟動(dòng)模塊980,用于分區(qū)調(diào)整完成,正常啟動(dòng)Windows,具體如上所述。如圖11所示,所述調(diào)小處理模塊940進(jìn)一步包括
扇區(qū)讀寫驅(qū)動(dòng)單元941,用于通過(guò)扇區(qū)讀寫驅(qū)動(dòng)來(lái)移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi),具體如上所述。如圖12所示,所述偏移模塊970進(jìn)一步包括
偏移增大單元971,用于當(dāng)調(diào)整后的NTFS分區(qū)的偏移減少了 a個(gè)扇區(qū)時(shí),則先在調(diào)整后的NTFS分區(qū)后部增大a個(gè)扇區(qū),并更新文件系統(tǒng)的扇區(qū)占用信息;具體如上所述。前移單元972,用于將增大a個(gè)扇區(qū)后的NTFS分區(qū)的所有扇區(qū)向前移動(dòng)a個(gè)扇區(qū), 則完成調(diào)整狀態(tài),具體如上所述。綜上所述,本發(fā)明所提供的一種在Windows下調(diào)整磁盤分區(qū)的方法及裝置,通過(guò)將起始位置變化的分區(qū)大小調(diào)整轉(zhuǎn)化為起始位置不變的分區(qū)大小調(diào)整,從而實(shí)現(xiàn)分區(qū)位置變化調(diào)整的支持;在Vista/Windows 7下,通過(guò)內(nèi)核驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)磁盤扇區(qū)的寫操作;在操作Windows分區(qū),通過(guò)保護(hù)機(jī)制,實(shí)現(xiàn)Windows系統(tǒng)分區(qū)的保護(hù),保證操作系統(tǒng)的完整性, 并且在分區(qū)時(shí)可以有效地保護(hù)用戶的數(shù)據(jù),其給計(jì)算機(jī)增加了新的功能能在Windows下隨意調(diào)整NTFS分區(qū),并具有改變分區(qū)的起始位置的功能,保證了分區(qū)后系統(tǒng)的安全性,為用戶提供了方便。應(yīng)當(dāng)理解的是,本發(fā)明的應(yīng)用不限于上述的舉例,對(duì)本領(lǐng)域普通技術(shù)人員來(lái)說(shuō),可以根據(jù)上述說(shuō)明加以改進(jìn)或變換,所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種在Windows下調(diào)整磁盤分區(qū)的方法,其特征在于,所述的方法包括如下步驟A、接收調(diào)整磁盤分區(qū)大小的操作指令;B、進(jìn)入WindowsNative模式,加載Windows系統(tǒng)分區(qū)保護(hù)機(jī)制,并加載磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng);C、判斷被調(diào)整的磁盤分區(qū)是調(diào)大還是調(diào)小,當(dāng)調(diào)小時(shí)轉(zhuǎn)到步驟D,當(dāng)調(diào)大時(shí)直接將 NTFS分區(qū)簇占用信息的范圍調(diào)大,并跳到步驟E ;D、對(duì)被調(diào)整的磁盤分區(qū)的文件進(jìn)行遍歷,判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是否在調(diào)整范圍以內(nèi);當(dāng)判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是在調(diào)整范圍以外時(shí),則移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi),并更新文件內(nèi)容的簇占用信息,進(jìn)入步驟E ;E、根據(jù)調(diào)整后的磁盤分區(qū)大小和文件簇占用信息,更新文件系統(tǒng)的簇占用信息,以及更新文件系統(tǒng)的啟動(dòng)弓I導(dǎo)扇區(qū)進(jìn)入步驟F ;F、判斷調(diào)整后的磁盤分區(qū)的起始偏移是否發(fā)生了變化,當(dāng)調(diào)整后的磁盤分區(qū)的起始偏移發(fā)生了變化,轉(zhuǎn)到步驟G,否則轉(zhuǎn)到步驟H ;G、根據(jù)調(diào)整后的磁盤分區(qū)偏移變化情況,對(duì)調(diào)整后的磁盤分區(qū)進(jìn)行整體移動(dòng),從調(diào)整前的偏移移向調(diào)整后的偏移,進(jìn)入步驟H;H、再次重啟Windows系統(tǒng)。
2.根據(jù)權(quán)利要求1所述在Windows下調(diào)整磁盤分區(qū)的方法,其特征在于,所述磁盤分區(qū)包括NTFS分區(qū)、FAT32分區(qū)、exFAT分區(qū)。
3.根據(jù)權(quán)利要求1所述在Windows下調(diào)整磁盤分區(qū)的方法,其特征在于,所述步驟D中的移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi)還包括通過(guò)扇區(qū)讀寫驅(qū)動(dòng)來(lái)移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi)。
4.根據(jù)權(quán)利要求2所述在Windows下調(diào)整磁盤分區(qū)的方法,其特征在于,所述步驟G進(jìn)一步包括G1、當(dāng)調(diào)整后的磁盤分區(qū)的偏移減少了 a個(gè)扇區(qū)時(shí),則先在調(diào)整后的磁盤分區(qū)后部增大a個(gè)扇區(qū),并更新文件系統(tǒng)的扇區(qū)占用信息;G2、將增大a個(gè)扇區(qū)后的磁盤分區(qū)的所有扇區(qū)向前移動(dòng)a個(gè)扇區(qū),則完成調(diào)整狀態(tài)。
5.根據(jù)權(quán)利要求1所述在Windows下調(diào)整磁盤分區(qū)的方法,其特征在于,所述Windows 系統(tǒng)分區(qū)保護(hù)機(jī)制,用于保護(hù)Windows系統(tǒng)分區(qū),通過(guò)文件系統(tǒng)過(guò)濾驅(qū)動(dòng),對(duì)Native環(huán)境下系統(tǒng)進(jìn)行的讀寫操作進(jìn)行攔截,并進(jìn)行重定向。
6.根據(jù)權(quán)利要求1所述在Windows下調(diào)整磁盤分區(qū)的方法,其特征在于,所述磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng)為一內(nèi)核態(tài)的驅(qū)動(dòng)程序,用于在移動(dòng)文件的內(nèi)容,要寫磁盤時(shí),通過(guò)給該內(nèi)核驅(qū)動(dòng)程序發(fā)送請(qǐng)求,將要寫的磁盤扇區(qū)內(nèi)容由該內(nèi)核驅(qū)動(dòng)程序?qū)崿F(xiàn)磁盤扇區(qū)的寫操作。
7.一種在Windows下調(diào)整磁盤分區(qū)的裝置,其特征在于,包括接收模塊,用于接收調(diào)整磁盤分區(qū)大小的操作指令;調(diào)整初始加載模塊,用于進(jìn)入Windows Native模式,加載Windows系統(tǒng)分區(qū)保護(hù)機(jī)制, 并加載磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng);第一判斷模塊,用于判斷被調(diào)整的磁盤分區(qū)是調(diào)大還是調(diào)??;調(diào)小處理模塊,用于當(dāng)對(duì)被調(diào)整的磁盤分區(qū)調(diào)小時(shí),對(duì)被調(diào)整的磁盤分區(qū)的文件進(jìn)行遍歷,判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是否在調(diào)整范圍以內(nèi);當(dāng)判斷被調(diào)整的磁盤分區(qū)文件內(nèi)容占用的簇是在調(diào)整范圍以外時(shí),則移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi),并更新文件內(nèi)容的簇占用信息;更新模塊,用于根據(jù)調(diào)整后的磁盤分區(qū)大小和文件簇占用信息,更新文件系統(tǒng)的簇占用信息;并更新文件系統(tǒng)的啟動(dòng)引導(dǎo)扇區(qū)。
8.根據(jù)權(quán)利要求7所述在Windows下調(diào)整磁盤分區(qū)的裝置,其特征在于,其還包括第二判斷模塊,用于判斷調(diào)整后的磁盤分區(qū)的起始偏移是否發(fā)生了變化;偏移模塊,用于當(dāng)調(diào)整后的磁盤分區(qū)的起始偏移發(fā)生了變化,根據(jù)調(diào)整后的磁盤分區(qū)偏移變化情況,對(duì)調(diào)整后的磁盤分區(qū)進(jìn)行整體移動(dòng),從調(diào)整前的偏移移向調(diào)整后的偏移;調(diào)整后啟動(dòng)模塊,用于分區(qū)調(diào)整完成,正常啟動(dòng)Windows。
9.根據(jù)權(quán)利要求7所述在Windows下調(diào)整磁盤分區(qū)的裝置,其特征在于,所述磁盤分區(qū)包括NTFS分區(qū)、FAT32分區(qū)、exFAT分區(qū);所述調(diào)小處理模塊進(jìn)一步包括扇區(qū)讀寫驅(qū)動(dòng)單元,用于通過(guò)扇區(qū)讀寫驅(qū)動(dòng)來(lái)移動(dòng)該文件內(nèi)容到調(diào)整范圍以內(nèi)。
10.根據(jù)權(quán)利要求8所述在Windows下調(diào)整磁盤分區(qū)的裝置,其特征在于,所述偏移模塊進(jìn)一步包括偏移增大單元,用于當(dāng)調(diào)整后的磁盤分區(qū)的偏移減少了 a個(gè)扇區(qū)時(shí),則先在調(diào)整后的磁盤分區(qū)后部增大a個(gè)扇區(qū),并更新文件系統(tǒng)的扇區(qū)占用信息;前移單元,用于將增大a個(gè)扇區(qū)后的磁盤分區(qū)的所有扇區(qū)向前移動(dòng)a個(gè)扇區(qū),則完成調(diào)整狀態(tài)。
全文摘要
本發(fā)明涉計(jì)算機(jī)領(lǐng)域,公開了一種在Windows下調(diào)整磁盤分區(qū)的方法及裝置。由于采用在分區(qū)時(shí)重啟Windows系統(tǒng),進(jìn)入Windows Native模式,加載Windows系統(tǒng)分區(qū)保護(hù)機(jī)制,并加載磁盤扇區(qū)讀寫內(nèi)核驅(qū)動(dòng),對(duì)被調(diào)整的NTFS分區(qū)的文件進(jìn)行遍歷,通過(guò)將起始位置變化的分區(qū)大小調(diào)整轉(zhuǎn)化為起始位置不變的分區(qū)大小調(diào)整,從而實(shí)現(xiàn)分區(qū)位置變化調(diào)整的支持;在操作Windows分區(qū),通過(guò)保護(hù)機(jī)制,實(shí)現(xiàn)Windows系統(tǒng)分區(qū)的保護(hù),保證操作系統(tǒng)的完整性,其給計(jì)算機(jī)增加了新的功能能在Windows下隨意調(diào)整NTFS分區(qū),并具有改變分區(qū)的起始位置的功能,保證了分區(qū)后系統(tǒng)的安全性,為用戶提供了方便。
文檔編號(hào)G06F17/30GK102184248SQ20111013184
公開日2011年9月14日 申請(qǐng)日期2011年5月20日 優(yōu)先權(quán)日2011年5月20日
發(fā)明者馮星, 賀輝超, 陳子文, 馬馮祥, 黃滌 申請(qǐng)人:深圳市萬(wàn)興軟件有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
崇信县| 澄江县| 昭平县| 呼和浩特市| 德州市| 保康县| 辰溪县| 六盘水市| 德安县| 丘北县| 手游| 庆城县| 兴宁市| 当阳市| 含山县| 芮城县| 财经| 蓝田县| 庐江县| 宝兴县| 肇庆市| 耿马| 新巴尔虎左旗| 明水县| 荣昌县| 留坝县| 屏边| 仪征市| 泸溪县| 三明市| 如皋市| 雅安市| 蒙阴县| 温泉县| 深泽县| 原阳县| 宣威市| 宣威市| 得荣县| 株洲市| 蒲江县|