|
本帖隱藏的內容
硬盤(pán)分區是操作系統安裝過(guò)程中經(jīng)常談到的話(huà)題。對于一些簡(jiǎn)單的應用,硬盤(pán)分區并不成為一種障礙,但對于一些復雜的應用,就不能不深入理解硬盤(pán)分區機制的某些細節。本文將深層次地探討硬盤(pán)分區的基本原理及應用。
一 分區的一般概念
所謂分區,就是硬盤(pán)上建立來(lái)用作單獨存儲區域的部分,它分為主分區和擴充分區。主分區用來(lái)存放操作系統的引導記錄(在該主分區的第一扇區)和操作系統文件;擴充分區一般用來(lái)存放數據和應用程序。
一個(gè)硬盤(pán)可以被分為1—4個(gè)分區,最多能有4個(gè)主分區。如果有擴充分區,則最多可以有3個(gè)主分區。一般只有一個(gè)擴充分區,它可以被劃分成多個(gè)邏輯驅動(dòng)器。我們必須顯式地建立主分區,但不必顯式地建立擴充分區。我們在建立第一個(gè)非主分區邏輯驅動(dòng)器時(shí),就隱式地建立了一個(gè)擴充分區,當我們增加邏輯驅動(dòng)器時(shí),也就是向該擴充分區中添加邏輯驅動(dòng)器。
二 問(wèn)題的提出
某臺PC機上已經(jīng)裝上了DOS和Windows操作系統,它們共用一個(gè)主分區,另有一個(gè)邏輯驅動(dòng)器D,現在準備在該機上裝上UNIX操作系統。由于UNIX操作系統的文件系統與DOS/Windows不兼容,因此不能在現存的DOS分區上再裝UNIX,而必須在硬盤(pán)上另建UNIX主分區。這樣一個(gè)硬盤(pán)上就有多個(gè)(這里是兩個(gè))主分區,我們必須提供一種方法來(lái)實(shí)現操作系統的選擇引導。
三 分區的深入理解
1.主分區和邏輯驅動(dòng)器 主分區的特性是在任何時(shí)刻只能有一個(gè)是活動(dòng)的,當一個(gè)主分區被激活以后,同一硬盤(pán)上的其他主分區就不能再被訪(fǎng)問(wèn)。所以一個(gè)主分區中的操作系統不能再訪(fǎng)問(wèn)同一物理硬盤(pán)上其他主分區上的文件。而邏輯驅動(dòng)器并不屬于某個(gè)操作系統,只要它的文件系統與啟動(dòng)的操作系統兼容,則該操作系統就能訪(fǎng)問(wèn)它。
主分區和邏輯驅動(dòng)器的一個(gè)重要區別是:每個(gè)邏輯驅動(dòng)器分配唯一的驅動(dòng)器名(盤(pán)符),而在同一硬盤(pán)上的所有主分區共享同一個(gè)驅動(dòng)器名,因為某一時(shí)刻只能有一個(gè)主分區是活動(dòng)的。這就意味著(zhù)某一時(shí)刻只能用共享驅動(dòng)器名訪(fǎng)問(wèn)活動(dòng)的那個(gè)主分區。
2.驅動(dòng)器名的分配 啟動(dòng)系統時(shí),活動(dòng)分區上的操作系統將執行一個(gè)稱(chēng)為驅動(dòng)器映像的過(guò)程,它給主分區和邏輯驅動(dòng)器分配驅動(dòng)器名。所有的主分區首先被映像,而邏輯驅動(dòng)器用后續的字母指定。
例如,假定硬盤(pán)活動(dòng)分區的操作系統的文件系統與所有的邏輯驅動(dòng)器文件系統兼容,但如果邏輯驅動(dòng)器文件系統與啟動(dòng)的操作系統的文件系統不兼容,該邏輯驅動(dòng)器將被忽略。
如果你的PC有兩個(gè)硬盤(pán),則每個(gè)硬盤(pán)可以被分為1—4個(gè)分區,它們可以有各自的主分區和擴充分區。 如果文件系統兼容,操作系統將如上例那樣分配驅動(dòng)器名。
四 理解硬盤(pán)自舉
1.硬盤(pán)結構概述 硬盤(pán)的0頭0柱面1扇區叫主引導扇區,它不屬于任何分區。主引導扇區上放有主引導記錄,它主要由引導程序和分區表組成,它是由低級格式化程序建立的(一般由廠(chǎng)家完成)。分區表中含有各個(gè)分區的有關(guān)信息,如分區的起始及結束磁頭號、磁道號、扇區號,分區是否是活動(dòng)分區。當沒(méi)有建立分區時(shí),分區表是空的。主引導程序主要完成硬盤(pán)自舉。
分區是由各操作系統的分區程序完成的,分區程序向分區表中填寫(xiě)分區信息。任何分區必須使用相應操作系統的格式化命令格式化后才能使用。每個(gè)分區的第一扇區是相應操作系統的引導扇區,上有引導記錄。
2.硬盤(pán)啟動(dòng)的過(guò)程 系統自檢后,固化在ROM中的19號中斷復位硬盤(pán),讀取主引導記錄到內存,檢查分區表,尋找唯一的活動(dòng)分區,并根據分區表信息到活動(dòng)分區的第一扇區讀取引導記錄,把控制權交給引導記錄的引導程序,由引導程序完成操作系統的加載。
3.控制操作系統的啟動(dòng)
方法1: 由于分區表格式對各個(gè)操作系統的分區程序都是透明的,因此可以用任一操作系統的分區程序來(lái)指定活動(dòng)分區,重啟計算機就可以切換到另一個(gè)主分區上的操作系統。
方法2: 由硬盤(pán)啟動(dòng)過(guò)程我們可以看到,19號中斷將活動(dòng)分區的第一扇區讀入內存后,將控制權交給它。利用這樣的一種特性,我們可以建立一個(gè)特殊的主分區,并將它設置為活動(dòng)的,它的第一個(gè)扇區存放的不是引導記錄,而是一個(gè)提供操作系統選擇的程序,再由它來(lái)把你所選擇的操作系統的引導記錄讀入內存并執行引導程序。這樣的程序叫做引導管理程序,它可由操作系統或第三方軟件開(kāi)發(fā)商提供。
需要指出的是,我們在啟動(dòng)Windows 95/98時(shí),按F8進(jìn)入的選擇界面并不是引導管理程序提供的,而是Windows在安裝時(shí)寫(xiě)入本主分區第一扇區引導程序用來(lái)控制本操作系統啟動(dòng)方式的程序提供的。
五 問(wèn)題的解決
通過(guò)上面的討論,我們就可以輕易地解決文章開(kāi)始提出的問(wèn)題了。
1.備份數據 由于硬盤(pán)上要增加主分區,必須減小擴充分區,因此首先必須備份D盤(pán)數據(注意前面我們的假設:只有一個(gè)主分區和一個(gè)邏輯分區)。
2.建立UNIX分區 用UNIX系統盤(pán)啟動(dòng)系統,運行分區程序,建立UNIX主分區,格式化后安裝操作系統。同時(shí)為UNIX建立一個(gè)邏輯驅動(dòng)器用來(lái)存儲數據和應用程序。
3.為DOS/Windows建立邏輯驅動(dòng)器 用DOS系統盤(pán)啟動(dòng)系統,運行DOS分區程序,增加一個(gè)邏輯驅動(dòng)器用來(lái)存儲DOS/Windows數據和應用程序。 這樣我們就可以使DOS/Windows和UNIX共享硬盤(pán)了。我們可以使用在“控制系統的啟動(dòng)”里講的任意一種方法來(lái)選擇啟動(dòng)DOS/Windows和UNIX。如果要使用第二種方法,必須安裝引導管理程序。
計算機病毒的磁盤(pán)存儲結構
對于計算機病毒的存儲結構來(lái)說(shuō),不同類(lèi)型的病毒,在磁盤(pán)上的存儲結構是不同的。
1.磁盤(pán)空間的總體劃分 經(jīng)過(guò)格式化后的磁盤(pán)包括:主引導記錄區(只有硬盤(pán)有)、引導記錄區、文件分配表 (FAT)、目錄區和數據區。 主引導記錄區和引導記錄區中存有DOS系統啟動(dòng)時(shí)所用的信息。 文件分配表(FAT)是反映當前磁盤(pán)扇區使用狀況的表。每張DOS盤(pán)含有兩個(gè)完全 相同的FAT表,即FAT1和FAT2,FAT2是一張備份表。FAT與目錄一起對磁盤(pán)數據 區進(jìn)行管理。 目錄區存放磁盤(pán)上現有的文件目錄及其大小、存放時(shí)間等信息。 數據區存儲和文件名相對應的文件內容數據。
(1)軟盤(pán)空間的總體劃分 當使用DOS的外部命令FORMAT格式化一張軟盤(pán)后,不僅把磁盤(pán)劃分為若干磁 道,每一磁道劃分為若干扇區,而且同時(shí)把劃分的扇區分為五大區域,它們分別是引導記 錄區、文件分配表1、文件分配表2、根目錄區以及數據區。
對于軟盤(pán)只有一個(gè)引導區,引導區在磁盤(pán)的0面0道1扇區,它的作用是在系統啟動(dòng) 時(shí)負責把系統兩個(gè)隱含文件IO.SYS和MSDOS.SYS裝入內存,并提供DOS進(jìn)行磁盤(pán) 讀寫(xiě)所必需的磁盤(pán)I/O參數表。 文件分配表(FAT表)是反映磁盤(pán)上所有文件各自占用的扇區的一個(gè)登記表,此表非 常重要,一旦被破壞,將無(wú)法查找文件的內容。即使對DOS內部精通的人,要修復FAT表 損壞的磁盤(pán)文件,亦非易事,開(kāi)銷(xiāo)很大。為此系統在劃分磁盤(pán)區域時(shí),保留了兩份完全相同 的文件分配表。 根目錄區是記載磁盤(pán)上所有文件的一張目錄登記表。主要記載每個(gè)文件的文件名、擴 展名、文件屬性、文件長(cháng)度、文件建立日期、建立時(shí)間以及其他一些重要信息。
(2)硬盤(pán)空間的總體劃分 對于不同類(lèi)型、不同介質(zhì)的磁盤(pán),DOS劃分磁盤(pán)的格式是不同的。對于硬盤(pán)來(lái)說(shuō), 由于其存儲空間比較大,為了允許多個(gè)操作系統分享硬盤(pán)空間,并希望能從磁盤(pán)啟動(dòng) 系統,DOS在格式化硬盤(pán)時(shí),把硬盤(pán)劃分為主引導記錄區和多個(gè)系統分區。
對于硬盤(pán)空間的分配由兩個(gè)部分組成:第一部分就是整個(gè)硬盤(pán)的第一扇區,這一扇區 稱(chēng)之為硬盤(pán)的主引導程序扇區,它由兩部分內容組成,一是主引導程序,二是分區信息表。 主引導程序是硬盤(pán)啟動(dòng)時(shí)首先執行的程序,由它裝入執行活動(dòng)分區(活動(dòng)分區)引導程序, 從而進(jìn)一步引導系統。分區信息表登記各個(gè)分區引導指示符、操作系統指示符以及該分區 占用硬盤(pán)空間的位置及其長(cháng)度;第二部分是各個(gè)系統分區。各個(gè)系統分區是提供給各操作 系統使用的區域,每一區域只能存放一種操作系統,在該區域中的系統具有自己的引導記 錄、文件分配表區、文件目錄區以及數據區。 若整個(gè)硬盤(pán)歸DOS使用,硬盤(pán)上信息由5部分即第1扇區的主引導程序和分區信息 表、分區引導程序、文件分配表區、文件根目錄區、文件數據區。
硬盤(pán)主引導扇區很特殊,它不在DOS的管轄范圍內。所以用DOS的非常駐命令 FORMAT、FDISK、DEBUG都不能觸及它。當該扇區損壞時(shí),硬盤(pán)不能啟動(dòng)。 用FORMAT、FDISK都不能修復它。DEBUG的L命令和W命令都不能用于主引導扇區。只有 在DEBUG下借用INT 13H或低級格式化方能修復。
2.系統型病毒的磁盤(pán)存儲結構 系統型病毒是指專(zhuān)門(mén)傳染操作系統的啟動(dòng)扇區,主要指傳染硬盤(pán)主引導扇區和DOS 引導扇區的病毒。系統型病毒在磁盤(pán)上的存儲結構是這樣的,病毒程序被劃分為兩部分, 第一部分存放在磁盤(pán)引導扇區中,第二部分則存放在磁盤(pán)其他的扇區中。病毒程序在感染 一個(gè)磁盤(pán)時(shí),首先根據FAT表在磁盤(pán)上找到一個(gè)空白簇(如果病毒程序的第二部分占用 若干個(gè)簇,則需要找到一個(gè)連續的空白簇),然后將病毒程序的第二部分以及磁盤(pán)原引導 扇區的內容寫(xiě)入該空白簇,接著(zhù)將病毒程序的第一部分寫(xiě)入磁盤(pán)引導扇區。 但是,由于磁盤(pán)不同,病毒程序第二部分所占用的空白簇的位置就不同,而病毒程序 在侵入系統時(shí),又必須將其全部程序裝入內存,在系統啟動(dòng)時(shí)道德裝入的是磁盤(pán)引導扇區 中的病毒程序,該段程序在執行時(shí)要將其第二部分裝入內存,這樣第一部分必須知道其第 二部分所在簇的簇號或邏輯扇區號。為此,在病毒程序感染一個(gè)磁盤(pán)時(shí),不僅要將其第一 部分寫(xiě)入磁盤(pán)引導扇區,而且必須將病毒程序第二部分所在簇的簇號(或該簇第一扇區的 邏輯扇區號)記錄在磁盤(pán)的偏移地址01F9處,存放其第二部分所在簇第一扇區的邏輯扇 區號。
另外,由于DOS分配磁盤(pán)空間時(shí),必須將分配的每一簇與一個(gè)文件相聯(lián)系,但是,系 統型病毒程序第二部分所占用的簇沒(méi)有對應的文件名,它們是以直接磁盤(pán)讀寫(xiě)的方式被 存取的,這樣它們所占用的簇就有可能被DOS分配給新建立的磁盤(pán)文件,從而被覆蓋。為 了避免這樣的情況發(fā)生,病毒程序在將其第二部分寫(xiě)入空白簇后,立即將這些簇在FAT 中登記項的內容,強制地標記為壞簇(FF7H),經(jīng)過(guò)這樣處理后,DOS就不會(huì )將這些簇分 配給其他新建立的文件。
3.文件型病毒的磁盤(pán)存儲結構 文件型病毒是指專(zhuān)門(mén)感染系統中的可執行文件,即擴展名為.COM、.EXE的文件。 對于文件型的病毒來(lái)說(shuō),病毒程序附著(zhù)在被感染文件的首部、尾部、中部或“空閑”部位, 病毒程序沒(méi)有獨立占用磁盤(pán)上的空白簇。也就是說(shuō),病毒程序所占用的磁盤(pán)空間依賴(lài)于 其宿主程序所占用的磁盤(pán)空間。但是,病毒入侵后一定會(huì )使宿主程序占用的磁盤(pán)空間 增加。 絕大多數文件型病毒屬于所謂外殼病毒,什么是文件外殼呢?簡(jiǎn)單地說(shuō)是計算機軟件 的一種層次結構。比方說(shuō)計算機軟件公司編制了一種教育軟件,經(jīng)過(guò)設計調試,軟件本身 的功能已經(jīng)很完善,可以作為獨立的磁盤(pán)文件提供給用戶(hù)。但為了提高產(chǎn)品的商品化程 序,公司決定為軟件加一個(gè)漂亮的封面,為此設計人員可以在已經(jīng)完成的軟件基礎上附加 一段顯示封面的程序。通常我們稱(chēng)軟件本身為內核,而附加的顯示封面程序稱(chēng)為外殼,加載運行關(guān)系!
盡管在結構上外殼接在內核后面,但運行的順序仍然是先顯示封面再跳 轉去執行內核?蓤绦形募耐鈿ひ话憔哂邢鄬Κ毩⒌墓δ芎徒Y構,去掉外殼將不會(huì )影響 內核部分的運行。 如果我們用“病毒外殼”去替換圖中的“封面外殼”,那么就已經(jīng)說(shuō)明了文件型病毒的 基本機理。 計算機病毒一般不傳染數據文件,這是由于數據文件是不能執行的,如果病毒傳染了 數據文件以后,病毒自身得不到執行權,也就不能進(jìn)行進(jìn)一步的傳播,所以計算機病毒不 可能存在于數據文件中,但可能修改和破壞數據文件。
|
|