您可以把整部硬碟想像成一塊大餅,以數百個同心圓(磁柱 cylinder)將它劃分成一圈圈,並將每一圈假設由內向外從0開始依序遞增編上號碼,如此便可利用這些號碼將硬碟規劃出數個區域,每一個區域我們稱之為分割(Partition) 。

  分割表是記錄所有分割屬性的地方,所謂屬性就是指例如每個正常人都有兩隻眼睛、一張嘴巴、五隻指頭...等等,那麼分割的屬性為何呢?假設要描述一個國家在地球上的地理位置,相信一定會有人使用經緯度多少到多少來表示該範圍,現在只是一個角色的變換,如果要描述硬碟上某區域的『地理位置』,勢必得要有一種可以表示的單位,方才所提到的數百個同心圓的編碼這時就派上了用場,它可不是經緯度,而是叫作磁柱(cylinder),分割表內記錄了各分割的啟始磁柱、結束磁柱、容量...等等,其存放的位置在第0面、第0軌、第1磁區,充其量它只是一個『資料』而已,如果分割表損毀了,這僅僅意味著硬碟上的『檔案資料』無法再以正常的程序讀出,而不會造成硬碟的硬體損壞,這是使用者應該要有的觀念!

  每個分割在硬碟上的開始與結束位置均不同,是故分割表內必須記錄各自的邊界資料,有的分割程式(包括本程式)於建立分割時會要使用者輸入『啟始磁柱』和『結束磁柱』,如此就是直接在設定邊界了。

實際上,硬碟是以 sectors(磁區), cylinder(磁柱), partitions(分割槽) 這些東西來作為儲存的單位,而最底層的實體硬碟單位就是 sectors 了,通常一個 sector 大約是 512 bytes 左右。不過,在磁碟進行格式化的時候,可以將數個 sector 格式化成為一個邏輯磁區(logical block),通稱為 block。blocks 為一個檔案系統(filesystem)存取的最小量。 那麼 partition 是什麼?簡單的來說,你知道你的 Windows 有所謂的 C:, D: 是吧!其實他們是同一顆硬碟,只是利用『磁碟分割表』(partition table)來將實體的硬碟規劃出不同的區塊。

舉個例子說,假設你的硬碟總共有 1024 個 cylinder (利用 blocks 結合而成的硬碟計算單位), 那麼你在這塊硬碟的檔頭地方 (就是磁碟分割表,可以想成要讀取一塊硬碟時最先讀取的地方)如果寫入你的 partitions 共有兩塊,一塊是 primary 一塊是 extended ,而且 extended 也只規劃成一個 logical ,那麼你的硬碟就是只有兩個槽啦(對於系統來說,真正能使用的有 Primary 與 Logical 的磁區, Extended 並無法直接使用的!需要再加以規劃成為 Logical 才行! ) ,而且在 partition table 也會記錄 primary 是由『第 n1 個 cylinder 到第 n2 個 cylinder 』,所以囉,這樣子一來,當系統要去讀取 primary (就是 c 槽)的時後,就只會在!n1~n2 之間的實體硬碟當中活動囉!

arrow
arrow
    全站熱搜

    viko1316 發表在 痞客邦 留言(0) 人氣()