如果您正在使用或者準備購買固態硬盤(SSD),肯定會其已經有了一定的了解。由于固態硬盤的結構和機械硬盤有本質的不同,固態硬盤要實現真正的性能發揮需要TRIM指令等一些特殊的手段。不過大多數人并不知道,或者并沒有注意的是,除了某些較新的固態硬盤以外,分區以及格式化對于固態硬盤也有著極其重要的影響。如果您只是簡單地用XP或者其他一些較老的工具對固態硬盤進行分區和格式化的話,得到的性能可能會只有幾分之一!
注:Intel的固態硬盤在控制器層面上對這個問題進行了自動補償,因此如果您使用的是Intel的固態硬盤的話,可以跳過本文了。
一. 問題的根源
問題的根源要從固態硬盤的組成部分,閃存說起。目前的絕大多數閃存的組織結構是劃分成很多個512KB的塊(Block),而每個塊又由很多以4KB為單位的頁(Page)組成。這就好像我國的行政組織是劃分成眾多個省,每個省又劃分成很多個市一樣。閃存的工作原理決定了它的擦除操作是以塊(Block)為單位,而寫入操作則是以頁(Page)為最小單位。本站的固態硬盤技術專題可以讓您更多地了解固態硬盤以及閃存。
另一方面,我們的操作系統在管理硬盤時也有一個最小分配單元。NTFS的默認的最小分配單元的大小恰好也是4KB,這很不錯。不過問題在于,在進行分區時通常并不是從頭開始的,而是有一個偏移值。比如使用Windows XP的分區工具的話,這個偏移值會讓分區從一頁的中部開始。也就是說,操作系統的最小分配單元和固態硬盤的頁之間錯位了。這樣導致的結果就是,操作系統每次寫一個4KB的數據,在實際運行時都有會兩次寫操作。理想的情況應該是,操作系統的每個最小分配單元都恰好和閃存的一個頁對應起來,這樣操作系統每次寫一個4KB的數據,只需要實際的一次寫操作就可以完成。兩者之間的性能差距最多可能可以達到兩倍!
如果分區時沒有對齊,而且格式化時又沒有使用4KB作為最小分配單元的話,性能損失可能更大。在國外著名網站Anandtech的測試中,對某頂級固態硬盤使用FAT進行格式話,而且分區時也沒有對齊,結果4KB文件的寫入性能極其糟糕。換成對齊分區以及4KB的最小分配單元以后,4KB文件的寫入性能幾乎達到了之前的10倍!
二. 如何正確地分區和格式化
這個問題的解決方法其實簡單得很,那就是使用Windows7的分區工具來對您的固態硬盤進行分區,然后在格式化時使用4KB(4096B)作為分配單位大小即可。微軟早已認識到固態硬盤需要操作系統的良好支持,所以在Windows7中加入了TRIM指令和分區對齊等針對固態硬盤的優化。使用固態硬盤的話,Windows7是目前最佳的操作系統選擇。 但是如果沒有Windows7怎么辦呢?在XP和Vista下面,當然還是有辦法的,而且并不算復雜。當然,這涉及到重新分區,所以如果您的固態硬盤里面已經有數據的話,會全部丟失,所以需要做好備份。另外,您還需要準備好一個裝好系統的電腦。當然,這很簡單,先把系統裝在另一個硬盤即可,大多數使用固態硬盤的朋友應該都有不只一個硬盤吧?
這個操作可以通過一個免費的工具軟件Diskpar.exe來完成,您可以通過微軟的官方網站下載到這個軟件把固態硬盤連接到這個PC上,然后進入控制面板,在管理工具->計算機管理->磁盤管理中,找到您的固態硬盤當前是幾號盤。比如當前您的電腦中有兩塊硬盤的話,固態硬盤可能是1號盤。記下這個號碼。另外,把所有分區都刪除,進行之前請備份好數據。
在開始->運行中,鍵入CMD。在跳出來的命令行窗口中,來到您放置diskpar.exe的文件夾。首先您可以通過diskpar來再次判斷一下這個號碼是不是正確的。鍵入diskpar -i 1。(注:這里面的1應根據您在前面看到的數值來輸入。),回車后diskpar會輸出類似下面的信息:
---- Drive 1 Geometry Infomation ----Cylinders = 4139TracksPerCylinder = 240SectorsPerTrack = 63BytesPerSector = 512DiskSize = 32041820160 (Bytes) = 30557 (MB)
最后一行顯示的是硬盤的大小,比如例子中的30557(MB)是個30G的硬盤。如果您的結果算出來和您的硬盤大小不同,請再次到控制面板中確認硬盤號。如果無法確認硬盤號的話,最好就此打住,不然您可能會擦除掉電腦中其他硬盤的數據。
鍵入diskpar -s 1,這時會有如下顯示:Set partition can only be done on a raw drive.You can use Disk Manager to delete all existing partitionsAre you sure drive 1 is a raw device without any partition? (Y/N)
請確認您之前已經刪除這個固態硬盤上的所有分區,按下Y。---- Drive 1 Geometry Infomation ---- Cylinders = 4139TracksPerCylinder = 240SectorsPerTrack = 63BytesPerSector = 512DiskSize = 32041820160 (Bytes) = 30557 (MB)We are going to set the new disk partition.All data on this drive will be lost. continue (Y/N)?
Diskpar會顯示出硬盤信息以后,警告說硬盤上所有數據將會丟失,再次按下Y。Please specify starting offset (in sectors):
這里讓您可以設置前面提到的偏移值,請輸入128,然后回車。Please specify partition length (in MB) (Max = 30557):
這里讓您指定分區大小,假如您就分一個區的話,就直接輸入硬盤的容量。Done setting partition.---- New Partition information ----StatringOffset = 65536PartitionLength = 32041304064HiddenSectors = 128PartitionNumber = 1PartitionType = 7You now should use Disk Manager to format this partition 到這里,分區就完成了!您只需要到前面提到的控制面板中的磁盤管理中對分區進行格式化就可以了。記得分配單位大小選擇4096!
三. 驗證
如果您手里的固態硬盤已經使用了一段時間,只是想知道是不是對齊了,或者您按照上述方法進行了操作,但是對操作過程不夠放心,怕出什么錯,有一個簡便的方法讓您驗證您的固態硬盤的分區是不是對齊了。
在開始->運行中,鍵入msinfo32?;剀嚭筇鲆粋€系統信息的窗口,選擇組件->存儲->磁盤,這里會列出您的電腦中的所有硬盤的信息。找到固態硬盤,然后看它的分區起始偏移的值是不是4096的整數倍。如果不是的話,您的固態硬盤的性能還有很大的提升余地哦!
新聞熱點
疑難解答
圖片精選