Ads 468x60px

Pages

2011年10月29日 星期六

Macbook Pro 換裝 SSD 及 光碟機換硬碟

SSD 的容量可以用寸土寸金來形容,依目前的狀況和傳統硬碟來比,每 GB 的售價真的是相當昂貴;再加上一般民用市場主流的 MLC SSD 有著讓人不去注意也難的複寫次數限制,所以在幫你的 Mac 換裝 SSD 之後,最需要注意的原則就是:「盡可能地減少 SSD 的使用容量」、「盡可能縮減系統對 SSD 的寫入行為」。

所以,我換裝 SSD 之後對電腦做了下面幾項更動:

1. 將幾乎一年用不到一次的光碟機換裝成第二顆硬碟
2. 以noatime的方式掛載硬碟以減少不必要的寫入行為
3. 關閉安全休眠並刪除休眠映像檔以減少使用容量
4. 將個人資料夾中較常寫入與佔用容量較大的掛載到第二顆硬碟

設定noatime掛載

*nix的作業系統會對每一個檔案紀錄最後一次開啟( access )的時間,而這樣的功能其實不是說非常的必要。例如 Finder 內的搜尋目標有今天使用過的檔案、昨天使用過的檔案、或過去一週使用過的檔案等等,就是利用這個檔案屬性,而當我們使用 noatime 選項來掛載硬碟之後,就不會只開啟檔案就去更動其 access time 屬性了。

依個人需求斟酌,如果像我一樣覺得這並不是很重要的話,就可以選擇使用 noatime ,節省硬碟存取次數提昇些許效能,也許也可以讓硬碟的壽命延長一點點點…。詳細的作法如下:

使用文字編輯軟體建立一個檔案命名為 「com.你的名字.noatime.plist」(ex. /Library/LaunchDaemons/com.xfalcons.noatime.plist)並輸入以下內容

        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
   
        Label
        com.你的名字.noatime
        ProgramArguments
       
            mount
            -vuwo
            noatime
            /
       
        RunAtLoad
       
   
接著開啟 Terminal 輸入 「sudo chown root:wheel /Library/LaunchDaemons/com.xfalcons.noatime.plist」 指令,之後重新啟動電腦。如果在 Terminal 輸入 「mount」 後查看,掛載在root路徑下的硬碟顯示為 /dev/disk0s2 on / (hfs, local, journaled, noatime) 之類的就是搞定啦!

關閉安全休眠

OSX 方便的休眠功能,一直是我最喜歡的功能之一,只要把螢幕蓋上,就可以馬上把電腦帶走;而打開螢幕,馬上就可以回到先前的工作狀態。而安全休眠是什麼?為了防止電源耗盡而喪失休眠時記憶體中的資料,在電源即將耗盡時, OSX 會把記憶體中的資料寫入硬碟中的 sleep image 映像檔,在電源問題解決之後把資料再放回記憶體而回覆先前的工作狀態。

這個功能如果像我有安裝 8G 的 RAM ,那麼映像檔就會佔用硬碟 8G 的空間,算是滿可觀的…以 SSD 來說。同樣的,一次就要寫入 8G 的資料,對 SSD 來說更是要命…。一般來說,電源快要耗盡時我都會先把所有工作先存檔好,除非是要作電池校正,不然也不會常常讓電池用到電腦自動關機,所以我選擇關閉這個功能來騰出硬碟空間與減少寫入的機會。詳細的作法如下:

開啟 Terminal 輸入 「sudo pmset -a hibernatemode 0」 指令關閉安全休眠模式;接著輸入 「sudo rm /var/vm/sleepimage」 指令刪除休眠映像檔,就完成了。

搬移個人資料夾
還記得以前使用 PowerBook 的時候,壓根不會想要把音樂影片等東西塞在內建的硬碟,因為容量很小。而現在硬碟其實已經相對便宜了,之前換了 500G 的硬碟之後馬上把以前丟在外接硬碟的東西全部進來,到哪裡都可以找到自己喜歡的音樂、分享影片,在外面也隨時找的到需要的素材,著實方便很多。

這個部份我移動的資料夾有:桌面、文件、下載項目、影片、音樂、圖片、網站、還有 Dropbox 等幾個資料夾,都是比較常存取、使用容量也比較龐大的, SSD 中我主要只留下應用程式和資源庫資料夾,以方便快速地開啟程式。詳細作法如下:

先將要移動的資料夾全部完整複製一份到另外一個硬碟,之後再把原本 SSD 上的資料夾刪除,然後使用 Terminal 輸入 「ln -s /Volumes/你的第二棵硬碟名稱/資料夾名稱 /user/你的使用者簡稱/資料夾名稱」 (ex. ln -s /Volumes/Macintosh\ HD/Desktop /Users/funnyq/Desktop),就會在 SSD 上建立一個和另一顆磁碟連結的替身,而將檔案都存放在第二顆硬碟上。

照這個方法做完之後,使用上會和只使用一個硬碟的時候一模一樣,一些應用程式存放資料的設定都不用再去更動他,一次搞定!設定過的相關位址會自動對應到第二個硬碟,不用再費心針對不同的應用程式一個一個修改設定。

然而,這個作法我有發現一個滿好笑的問題…。換裝 SSD 之後,重開機從蘋果 LOGO 出現到進入桌面可以開始工作,大約是15秒上下。尤其是進入桌面之後,以往常常會卡在桌面一片空白、等待一些常駐程式開啟的狀態很久很久。而現在一進到桌面,所有程式瞬間都開啟了!不過桌面常常還是一片空白…,我猜可能是因為開機太快了,而另一個硬碟還沒mount好或是還來不及反應所造成的。這個時候只要按下 Command+Option+Esc ,然後選擇 Finder 重新啟動就可以恢復正常了。

我的配置是將 SSD 主要作為 Startup Disk + Apps。這可使整體戴入時間加快好多,感覺良好。
而 Bootcamp 則安於 HD 內。

但你安 SSD,有一設定你一定要做,就是為你的 SSD 開啟 TRIM 功能。
詳細教程可在這:

http://blog.funnyq.com/2011/07/enable-trim-support-in-osx-lion/


***** Trim到底哪裡重要 ******
TRIM的目的就是在後台,允許每一個寫入刪除步驟都進行一次余塊垃%圾清除,好讓ssd時刻保持最好性能,intel提供的toolbox也是同樣道理,只是手動運行或者定期運行,不如trim開啟在後台每一個步驟運行來的方便
為何要清除余塊垃%圾,ssd在寫入部分的性能會降低,但是都知道數據直接刪除並不代表真的刪除了,只是記錄刪除,實際上數據還在,所以ssd如果刪除不需要的文件,但是此文件依然還存在,就會導致ssd的測試性能下降(實際上對於使用文件一點作用都沒有,就是測試好看而已,因為有文件的地方就已經降低性能了,提高空餘部分的性能只是心裡滿足)

[ quoted from: http://gdgt.com/question/in-os-x-lion-how-do-you-enable-trim-support-for-ssds-f16/ ]

Don't use TRIM Enabler, it's bad software! It replaces a Lion kernel extension with one from 10.6.8! You should revert the change ASAP. Using an older extension is only going to cause problems and conflicts with dependent extensions. I called the developer out about this problem and he claims that he's going to update TRIM enabler to simply patch, instead of replace, but he hasn't yet...and he deleted my comment :P

Instead, you can run the following Terminal commands:

So, here's the proper way to enable TRIM support. Copy these commands out, find/delete all "[REMOVE ME]" placeholders so the commands are contiguous, and run them in Terminal:

→ Backup the file we're patching:
sudo cp /System/Library/Extensions/IOAHCIFamily.[REMOVE ME]kext/Contents/PlugIns/IOAHCIBlockStorage[REMOVE ME].kext/Contents/MacOS/IOAHCIBlockStorage /IOAHCIBlockStorage.original

→ Patch the file to enable TRIM support:
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61[REMOVE ME]\x6C\x00).{9}(\x00\x51)|$1\x00\x00\x00\[REMOVE ME]x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.[REMOVE ME]kext/Contents/PlugIns/IOAHCIBlockStorage[REMOVE ME].kext/Contents/MacOS/IOAHCIBlockStorage

→ Clear the kext caches
sudo kextcache -system-prelinked-kernel
sudo kextcache -system-caches

→ Now, Reboot!

→ If in the future you want to disable TRIM support:
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61[REMOVE ME]\x6C\x00).{9}(\x00\x51)|$1\x41\x50\x50\[REMOVE ME]x4C\x45\x20\x53\x53\x44$2|sg' /System/Library/Extensions/IOAHCIFamily.[REMOVE ME]kext/Contents/PlugIns/IOAHCIBlockStorage[REMOVE ME].kext/Contents/MacOS/IOAHCIBlockStorage

→ Or if something goes horribly wrong, restore the backup:
sudo cp /IOAHCIBlockStorage.original /System/Library/Extensions/IOAHCIFamily.[REMOVE ME]kext/Contents/PlugIns/IOAHCIBlockStorage[REMOVE ME].kext/Contents/MacOS/IOAHCIBlockStorage

All the patch does is edit the IOAHCIBlockStoage file, patching out the string "APPLE SSD" to zeros. This happens to enable TRIM support for all SSDs.

Please visit my post about these Terminal commands here: digitaldj.net­/2011­/07­/21­/trim­-enabler­-for­-lion/

0 意見:

張貼留言