LV. 31
GP 580

【心得】低階格式化和高階格式化差異性

樓主 藍色甲蟲 pardora
這篇文章應巴友的要求,又重PO一遍,佔了版面請見諒
----------------------------
我們先來談談硬碟在實務上的操作有二種
低階格式化是採直接操作
高階格式化是採間接操作
二者操作模式不同
直接操作的程式是用組合語言,是用直譯器交由機械操作
間接操作是採較高階的程式語言,需透編譯器操作
因為作業系統是把系統中的資源以抽象的方式加以包裝起來
以達到保護的作用
所以應用程式無法直接去存取硬體的資源
只能透過CPU和記憶體的處理採用間接的方式去存取硬體的資源
所以在操作的方式上,就有著很大的差異性

在來談硬碟資料結構
硬碟在作低階格式化時和高階格式化最大的不同點
首先要作高階格式化時
硬碟必需要先有MBR (Master boot record)和硬碟分割表才能運作
所以買來的新硬碟~必需先作fdisk分割動作
為何要先分割才能作format
因為
MBR最前面的446Bytes是放置開機時所用的啟動程式
也就是所謂的開機磁區~硬碟開機導引區
因為是採間接式操作
所以必需要在有編譯器及作業系統及程式的輔助下進行
( 編譯器和直譯器二者的差別不在本文的討論之中 )
沒有開機磁區,就不可能進入作業系統的保護模式當中
而開機磁區它的開始位元是從 000h (0)開始
從第446Bytes後的64Bytes是放硬碟分割表
每一個硬碟分割佔16Bytes
所以一顆硬碟可以最多分割到四個磁區
它的開始位元分別是從 1BEh (446),1CEh (462),1DEH (487),1EEH (494)
最後會有個佔2Bytes結束符號位在 1FEH (510),值固定為55 AA
供BOIS判斷MBR區的結束位置
你可以進入DOS模式下用工具軟體查看它的十六進位符號
它會大約如下

.....上面省略....
00000190: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ......
000001A0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ......
000001B0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 80 01 ....(開始)
000001C0: 01 00 06 FE 7F 04 3F 00 - 00 00 86 FA 3F 00 00 00 ..亂碼..
.....中間省略.....
000001F0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 55 AA ....(結束)
.....以下省略.....
.....硬碟資料數據..

開始和結束的值都是固定的,分割表的第1個Bytes稱為啟動狀態欄
前面的08h表示為可啟動分割區,若是非啟動分割區時,它的值為00h
若啟動狀態欄位不是 00h 或 08h 時
BOIS一開機就會顯示 Invalid Partition Table
中間的數值則視硬碟分割情況會有所不同
這些是屬於硬碟分割欄位
除了剛講的啟動狀態欄,接下來的偏移位置1h (1)佔1Bytes的是表示開始磁頭的位置
偏移位置2h (2)佔2Bytes的是表示開始磁區和磁柱位置
偏移位置4h (4)佔1Bytes的是表示分割型態
偏移位置5h (5)佔1Bytes的是表示結束磁頭位置
偏移位置6h (6)佔2Bytes的是表示結束磁區和磁柱位置
偏移位置8h (8)佔4Bytes的是表示分割區的相對位置
偏移位置Ch (12)佔4Bytes的是表示磁區數目
所有的廠牌的硬碟都是如此

-----------------------------------
備註一下:以上的00,在現實情況下通常不會是00,而是有正數值的
在這打00只是方便說明,另外FAT16及NTFS的位元起始值及徧移值也會有些不同
這是因為磁簇(cluster)大小分配方法不同而導致
但大體上的結構是相同的,本例是採FAT32來說明
-----------------------------------

這啥要談這些?
因為,高階格式化所作的
只是將我上面所列出來的東東
針對特定磁區分割欄位
作一次整理改寫和清除的動作
所以作format時,後面會指定分割磁區位置
像 format c: 只會去動到第一個磁區分割欄位資料
而不會去動到其他分割磁區的欄位
高階格式化中又分一般格式化及快速格式化
差別在於
一般格式化除了清除改寫MBR及硬碟分割表的數據外
還會檢查該磁區相對位置的所有的磁區磁柱磁頭
是否可以寫入讀取數據,如果不能,就列為壞軌
並沒有所謂的消磁動作
而快速格式化只有作清除改寫MBR及硬碟分割表的數據
除了這些數據之外
其他的硬碟資料數據並不會作改寫
一樣會維持原本的數據
所以如果有人誤作FOTMAT,FDISK(破壞性分割不算)
為啥可以救回資料
原因就在原,硬碟分割表及MBR有二份,另一份是備份資料
誤作FOTMAT或FDISK時
還可以從備份資料去判斷開始磁區磁柱磁頭和結束磁區磁柱磁頭位置
然後進行數據讀取,就可以達成資料救援的目的
所以沒有所謂的檔案覆蓋問題
因為對硬碟來講,所有的檔案不過是0和1所組成
只要能判斷從那裡開始,到那裡結束
數據就可以交由程式去組成一個可供人類讀取的檔案

低階格式化則完全不一樣
低階格式化採所謂的直接操作
所以在早期的主機板或目前的SCSI卡
在BOIS裡頭都能附加低階格式化程式來作低階格式化
這和高階格式化最大的不同點在於
高階格式化你必需在有作業系統的記憶體配置下進行
至少你也得進DOS模式下將高階格式化程式載入記憶體中才能執行格式化
DOS本身它也是作業系統
直接操作的情況下,可以在沒有作業系統,沒有記憶體保護模式下執行
所以以前的主機板和現在的SCSI硬碟控制卡內的BIOS
都能夠去內建低階格式化程式
因為...低階格式化它不需去判斷硬碟分割磁區開始及結束的磁區磁柱磁頭位置
它只要判斷硬碟開機磁區的起始值
也就是硬碟的第一個磁區位置(Cyliner 0,Head 0,Sector 1)
和硬碟的最後一個磁區位置
這些資料廠商都會事先寫入硬碟的晶片組BIOS上面
接下來低階格式化不需理會哪些是MBR,哪些是硬碟分割表,硬碟分割磁區有哪些
由於它可以不受制於電腦CPU的控制和記憶體保護直接操作硬碟
所以不會有某個特定磁頭磁柱資源遭電腦CPU和記憶體進行LOCK的動作
然後低階格式化程式會將硬碟從第一個磁區位置開始進行消磁,然後在重新給予磁力
從第一個磁頭到最後一個磁頭都會這樣作
最後統一將所有的磁頭全部變成0或1
所以你進入16位元模式下時
你會看到的資訊會變成

.....上面省略....
00000190: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ......
000001A0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ......
000001B0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ......
000001C0: 01 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ......
.....中間省略.....
000001F0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 ......

到最後一個磁區都變成 00

所有的MBR,硬碟分割表,硬碟分割欄位數據全都消失
這時如果要重新使用這顆硬碟的時候
就必需重新作FDISK建立起MBR及硬碟分割表
沒有MBR及硬碟分割表,FORMAT也無從判斷分割表起始和結束值
所以沒有分割過的硬碟就無法作FORMAT
所以...高階格式化和低階格式化二者的原理是完全不相同的

至於低階格式化傷不傷硬碟
事實上低階格式化確實是在對碟硬作大手術,當然也對硬碟有一定程度的影響
但是在怎麼傷也不會比BT和P2P軟體日積月累的狂操硬碟來得更傷
硬碟本身只是機戒原理的運作,本來就屬於消耗性產品
人為操作低階格式過程錯誤才是最常見到的致命打擊
因為各家硬碟的技術都不一樣,而且各家的技術從不對外透露的
每家硬碟技術應用在物理面上;硬碟磁盤上的計算就會不同
像Maxtor之前的BigDrive磁片技術,是將系統的定址位元數增至44位
利用這樣來而突破137GB容量的障礙
而且最大的特點是將單命令可轉移磁區數由原來的256個增至65536個
讓硬碟的指定磁區數改由16位來實現
這種技術在現在來講算滿常見的,路上隨手買一顆硬碟都有這樣的技術
但以那時期來說,如果拿其他低階格式化程式來作Maxtor的硬碟
由於定址位元數和磁區數跟各家不一樣
使用錯誤的低階格式化程式或是錯誤的操作
最後作出來的結果肯是造成CHS錯誤或是硬碟磁軌偏移,資料內容錯誤
硬碟當然只好報銷
雖然CHS錯誤,硬碟磁軌偏移,資料內容錯誤還免強可以修正
但要去找出相對應的硬碟位置和作換算動作也算滿麻煩的

PS:這篇文章,很多地方並沒有很嚴謹的說明,如有遺漏請見諒
但大體上的方向和說明是正確的,多少可供參考

板務人員:

1329 筆精華,11/23 更新
一個月內新增 2
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】