[心得] 在Windows XP下使用SSD的心得
請服用好讀版 http://www.ptt.cc/bbs/Storage_Zone/M.1415523754.A.CFE.html
只是為了讓自己工作上爽一點
在之前出差前夕把公司的筆電硬碟換成SSD
(系統是XP Pro)
但沒有時間處理細節
所以...driver仍是pciide, 也沒有4KB對齊
最近稍微有時間,想把這些問題解一解
一來這SSD是我自費的,把它弄對齊對壽命也好一點
二來既然用了就把效能調好 把SSD的效果發揮出來
以下就簡述我做了些什麼,當作分享
筆電是 thinkpad T400
1. IDE mode 換成 AHCI mode
原本系統是跑在IDE mode
參考這篇 http://goo.gl/zkhcqY
a. 先去lenovo 網站找到
"Intel Matrix Storage Manager Driver for Windows 7 (32-bit), Vista (32-bit)
and XP (32-bit) - ThinkPad "
我記得裡面有個 .bat 執行了它就自動把 driver 複製到系統裡
b. 重開機 在BIOS裡從 compatible mode 改成 AHCI mode
c. 進入 Windows
這時 Windows 發現硬體是一個 AHCI controller
它會在硬碟裡尋找相對應的driver
如果沒做第a.步 就會藍底白字
d. 成功進入 Windows。執行AS SSD,你會看到 driver 從 pciide 變成 iaStor
2. 這時我的 alignment 是 31K - bad (用AS SSD看)
這個的由來是 XP 是由 sector 為單位去建 partition
因為歷史因素 它通常把第一個partition建在 sector 63的地方
1個sector 為512 bytes, 63個sector 為31.5KB
AS SSD 就說它是 31KB
某些 Windows 命令列指行會秀 32KB
實際上 它就是沒有 4KB-aligned
3. 為解決沒有4KB-aligned問題,我使用免費的 EaseUS Todo Backup
將整顆硬碟複製到外接硬碟
再還原回去(用EaseUS 開機光碟)
還原時要記得勾選"optimize for SSD" 意思就是它會幫你在還原時做好4K-align
(這裡我遇到機器的bug...
還原完要進Windows 時 有時是 logon process 出問題
有時是 VGA not initialized
都會藍底白字。
我猜是過熱。
結果猜對。我過3小時後再開機就正常。)
4. AS SSD 顯示 align to 4K, 但卻是bad
https://farm4.staticflickr.com/3952/15554459550_8585a09801_o.png
我百思不得其解。
大家不都是公認就是 align to 4K嗎? 為什麼還 bad
我還去找AS SSD 作者的網站,沒找到解答
最後我猜是這個答案:
AS SSD作者認為:我的系統必須做到align to 64KB,它才會給OK
(你看它那個提示文字! 不知道有沒有網友也在XP上試的,是不是XP上都要64KB?)
https://farm4.staticflickr.com/3951/15560638380_c526e7df11_o.jpg
Paragon Hard Disk Manager顯示我的C:有4K對齊
https://farm8.staticflickr.com/7519/15554458890_d9948e5c03_o.jpg
AOMEI Partition Assistant 顯示我的C:有4K對齊
https://farm8.staticflickr.com/7478/15554104617_fdd2f9c04d_o.jpg
用AS SSD查看D: 它也要求要 align to 64KB
https://farm4.staticflickr.com/3949/15560638510_9abce5de14_o.jpg
但是根據微軟的網頁 http://support.microsoft.com/kb/314878/en-us#top
其實 NTFS 的最大 cluster(又名 allocation unit)size 就是4KB
(我的C: D: 確定是NTFS)
只是 若FAT的話 2GB ~ 4GB 會使用 64KB cluster
不知道 AS SSD的作者是否把程式寫成:
只要OS是XP 為了應付所有的狀況 它就要求partition要64KB對齊(不論實際情況為何)
有做到就給OK 沒做到就給bad
網路上找到的XP設定 我看過的是把系統碟起始位置設到1024KB
1024KB是64KB的整數倍 所以AS SSD給OK了
我本來也想學他那樣做 但後來發現只是AS SSD不知為何要求64KB-align
我就不做了
5. [補充:有關 Windows XP不支援trim]
Windows XP不支援trim,
所以當你在OS下刪掉了某些檔案 SSD韌體不知道這些檔案所使用的碟區內容已作廢
所以它內部還會搬來搬去 影響效能也無謂的降低SSD壽命
我的SSD是美光M500 240GB
上網查的結果 美光曾經有出過Crucial Wiper tool 但只支援M225
不同韌體可能是不同team在開發 所以硬上可能無濟於事
至於想藉由第三方軟體來幫忙trim
我認為是不可能的。
trim的工具必須要能直接與韌體溝通(穿過driver);
通用性的軟體就算它寫下去的是全0 或是全1,你又怎麼知道韌體會不會檢查資料內容
如果它不檢查 那它依然會把它當成有效資料 在內部搬來搬去
所以.. 我並沒有找到tool可以幫我的M500做trim。
當它還在XP底下被使用時,我就先不管這事了吧。
//原po是在SSD產業工作。如果理解有任何錯誤,還請大力鞭。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.2.214
※ 文章網址: http://www.ptt.cc/bbs/Storage_Zone/M.1415523754.A.CFE.html
※ 編輯: landattack (114.32.2.214), 11/09/2014 17:05:19
→
11/09 17:12, , 1F
11/09 17:12, 1F
→
11/09 17:12, , 2F
11/09 17:12, 2F
→
11/09 17:12, , 3F
11/09 17:12, 3F
→
11/09 17:43, , 4F
11/09 17:43, 4F
→
11/09 17:43, , 5F
11/09 17:43, 5F
→
11/09 21:38, , 6F
11/09 21:38, 6F
推
11/10 01:49, , 7F
11/10 01:49, 7F
→
11/10 01:49, , 8F
11/10 01:49, 8F
→
11/10 01:49, , 9F
11/10 01:49, 9F
→
11/10 01:49, , 10F
11/10 01:49, 10F
推
11/10 01:56, , 11F
11/10 01:56, 11F
→
11/10 01:57, , 12F
11/10 01:57, 12F
→
11/10 01:57, , 13F
11/10 01:57, 13F
→
11/10 01:57, , 14F
11/10 01:57, 14F
推
11/10 04:41, , 15F
11/10 04:41, 15F
→
11/10 04:44, , 16F
11/10 04:44, 16F
→
11/10 04:47, , 17F
11/10 04:47, 17F
→
11/10 04:48, , 18F
11/10 04:48, 18F
推
11/10 07:15, , 19F
11/10 07:15, 19F
→
11/10 23:39, , 20F
11/10 23:39, 20F
→
11/10 23:39, , 21F
11/10 23:39, 21F
→
11/10 23:39, , 22F
11/10 23:39, 22F
→
11/11 09:45, , 23F
11/11 09:45, 23F
推
11/11 21:54, , 24F
11/11 21:54, 24F
→
11/11 21:54, , 25F
11/11 21:54, 25F
→
11/12 21:05, , 26F
11/12 21:05, 26F
關於Offset/Alignment @ xxK Cluster問題,我跑去Crucial forum問了。
希望能有人能回答。
關於Windows XP trim 的問題,後來想到其實還是有解法,即使你不是買Intel SSD。
Windows 7 開始支援trim command (從driver支援)
所以可以(1)將整個disk備份到別處 (2)用Windows 7 光碟開機,確認可以找到SSD
隨便你怎麼分割,將所有的分割區快速格式化 (格式化的過程中,就會下trim
command給SSD) (3) 重開機,用你的工具把disk還原回去
把你的SSD想成是一塊連續的空間
假設整個SSD可用容量是 128GiB (128 * 1024 * 1024 * 1024 bytes)
上面會有 sector 0 ~ 268435455
經過格式化後 因為有trim command 的緣故,SSD韌體會知道這絕大部分的sector
沒有有效資料; 它們是空的。
在Windows XP運作過程中,會寫入某些sectors,例如sector #5566,
當sector相關的檔案被刪除後,作業系統會更檔案系統表,檔案系統會知道
sector #5566沒資料(將來新資料可寫在這裡);但是SSD韌體不知道。
在XP的運行中,許多檔案被寫過又被刪除。我假設XP要寫新資料時,總是從前頭找
可用sector,這樣的話,就不會"汙染"太多sectors (使SSD韌體認為其有資料)
例如:裝完程式後,是60GB。日常使用中,總是使用空間在60GB ~ 70GB徘徊。
假設總容量是128GB,應該SSD韌體會認為有58GB是空的。
SSD不會去搬動那58GB。
所以上述那個『手動trim』的功夫不用常常作,除非你曾經磁碟用量到達90%以上。
第二個想法,是想知道有沒有軟體可以『讀NTFS表,對那些未被使用的sectors或
Allocation Units,下命令到driver層,讓driver去下trim』
這樣的話,就可以用Windows 7 光碟開機,跑一次這個軟體,就收工。
可以省下備份/還原的功夫。
(在Windows 安裝程式,按 shift + F10 可以叫出Command Line視窗)
※ 編輯: landattack (114.32.2.214), 11/12/2014 21:52:08
※ 編輯: landattack (114.32.2.214), 11/12/2014 21:54:04
推
11/13 08:25, , 27F
11/13 08:25, 27F