[OSX] Mac 無法休眠怎麼辦?

失眠的Mac…

(註:這個 Bug 在 10.7.3 官方更新後應該已經修正了。)

平常只要在家裡,我的習慣是把電腦接上螢幕來使用,以前要睡覺時習慣就把 MacBook Pro 的螢幕闔上,讓它陪睡進入休眠狀態,多省些電費買王老吉來喝…。不過自從更新到 Lion 之後,這個闔上螢幕的動作就被改成了關閉 MBP 的螢幕,只由外接螢幕輸出影像,如果要讓電腦進入休眠狀態,必須要從選單點選或是使用鍵盤快捷鍵「Command + Option + Eject」才行。

其實這個改變也還好,沒有造成什麼困擾,糟糕的是兩三個月前突然發現,我的 MBP 它失眠了!不管有沒有外接螢幕,有沒有外接其他週邊設備,它就是沒辦法進入休眠狀態,指示燈不會呼吸,只會恆亮;風扇依然在轉;硬碟也依舊微微地振動著…除非我拔掉他的電源線它才會乖乖入睡。

沒錯,這個情形最簡單的解決方式就是拔掉電源線讓它睡眠之後,再插回去!但這只是一時的作法啊…我一直以為是系統錯亂才會讓電腦沒辦法休眠,但在官方討論區又有很多人有同樣的 issue,看來應該是 Lion 本身的問題才是。直到昨天看到了這個 Blog 我才豁然開朗…

A deep bite 的作者也是提到,暫時的作法是拔掉電源線讓電腦先進入休眠狀態後,再插回去,這是最快的。而如果要徹底搞清楚電腦到底為什麼不肯睡覺的話,就只能靠老朋友終端機了…。

打開 Terminal 之後輸入:

pmset -g assertions

按下 Enter 後會像下圖這樣列出一長串的系統狀態

Terminal

以這個例子來說,圖中最上面三段敘述就說明了電腦因為哪些程序的關係而沒辦法進入休眠狀態,分別是 Boom(一個音效軟體)和* Internet 分享*,只要關閉相關程式、設定,或是直接用 kill 指令把它給停掉,電腦就可以安心入睡了…

還好原來不是系統錯亂…嚇死我了嚇死我了!

[Apps] 如何有效提昇寫作效率

Title pic

似乎很多人已經習慣使用微軟的 Word 來當作最基本的應用程式來編輯文字,就連臨時記個電話住址、或是寫下購物清單之類的小事,也是打開 Word 來作。個人是怎麼也用不慣啦…甚至還在寫學位論文時,我都硬要使用 Pages 來寫。其實不能說我是 anti-MS、而是太多時候微軟總是偏好把事情搞得太過於複雜。

好吧,這邊要談的不是這類大型的文書處理軟體,而是「記事本.exe(還是筆記本?)」或是「文字編輯.app」這類純文字文件編輯軟體。

幹嘛用純文字?

可能很多人會覺得,只有 geek 或宅宅才會堅持使用 txt 文件,其實不是這樣的啊!現今所有可以讀取數位檔案的裝置,應該絕大部份都能簡便地直接打開 *.txt 檔,所以比起 *.docx 來說,相容性和可攜性都高得太多;除此之外,檔案的大小也迷你得多。

先把文字記錄下來,有需要的時候再複製進文書處理軟體做進一步的排版,看似脫褲子放屁 — 多此一舉,其實在一些應用的配合之下,好處還滿多的。如果你有隨身攜帶智慧型手機或是平板電腦的習慣,那麼更是應該考慮一下這樣的文字整理方式。

以下,將會提到一些我自己常用的 Work flow、服務、及軟體,可以幫助我們活用純文字文件,並增進文字編輯工作的效率。

繼續閱讀 [Apps] 如何有效提昇寫作效率

[OSX] 在 Lion 中開啟 Trim 支援

從 OSX 10.6.7 的更新出現之後,蘋果的作業系統開始支援 SSD 的 Trim 指令,對於固態硬碟來說,這是一件很重要的事情,畢竟攸關硬碟效能壽命的維持啊!但是蘋果卻只針對由自家升級出廠的 SSD 開啟 Trim 指令,而不是所有所有支援 Trim 指令的 SSD 都享受得到…(好繞口!)

後來有人發現關鍵是在一個 kernel extension 檔案上。在這個檔案中, Trim 指令的支援與否是以硬碟的硬體型號描述來判斷,只會在硬體型號描述中符合「APPLE SSD」字串的情形下才會開啟。因此很自然的又有人用修改該 kernel extensions 檔案的方式,讓所有第三方 SSD 都能符合條件,更有人寫成了方便的小程式 Trim Enabler,讓大家都可以輕鬆的開啟 Trim 指令。

但是在系統昇級到 Lion 之後呢?由於 Trim Enabler 會把這個 kernel extensions 置換成 Snow Leopard 上的舊版本,這樣的動作會不會有什麼不良影響或是造成系統不穩定沒人可以保證,所以還是手動一步一步慢慢來比較保險,況且整個程序其實也不會太複雜。 繼續閱讀 [OSX] 在 Lion 中開啟 Trim 支援

光碟機改裝第二個硬碟,然後呢?

hdd

今天意外發現,在把光碟機改裝成第二個硬碟之後,似乎我們都忽略了一件重要的事情…,那就是 apm 造成 load cycle count 數值大增的這個老問題。這除了會讓硬碟有異音以外,理論上對於硬碟壽命也會有影響,所以還是對系統稍微作一些調整比較好。雖然以前針對裝在正規硬碟槽位置的硬碟有作過調整了,改裝到光碟機位置時卻忘記了這件重要的事情。

我個人是使用 WD 的硬碟,WD 或其他硬碟,在 Mac 上會有彩球、仔細聽硬碟覺得一定間隔時間會有滴答聲響,這應該和硬碟的能源節約功能有關。大部分的硬碟是針對 Microsoft 作業系統的環境進行能源節約最佳化,而這些硬碟使用在 Linux 或是像 Mac 這樣以 Unix 為基礎的作業系統環境上,就會出現一些問題…。

Apple 隨機出貨的硬碟,應該都做過了某些調整而避開了這樣的現象,所以在自行更換過內接硬碟之後,往往容易發生硬碟有異音、或是一定間隔時間出現彩球等等的狀況。這樣的問題或許只是有微小的異音而不影響電腦的使用,但也有可能會造成彩球出現,甚至影響電池使用時間。這些在 Apple 官方討論區有滿多人提出來討論過,當中也有出現了一些解決方法。

要確認目前的硬碟是否有遇到這樣的問題而不自知,可以使用一些工具去觀察一下硬碟 S.M.A.R.T. 的資訊中 “Load Cycle Count" 的計數(例如 SMART Utility )。我想應該很多人都知道,這個數值有一定的極限,像 WD 似乎是保證 500000 次的 Load Cycle 。由於前面敘述的問題,會造成硬碟讀取臂頻繁的 Parking ,因而 Load Cycle 的增加會異常的快速…印象中一小時就會增加 100 左右。

所以呢!不管你是自行換過硬碟還是把光碟機改裝成了硬碟,在這邊都建議作一下 APM(advanced power management)的調整。詳細作法下述:

  1. 先到這裡下載 hdapm 這個小程式備用。這是作者 mckinlay 提供的一個工具讓我們可以調整 APM 的等級以解決上面提過的種種問題。
  2. 接著到這裡下載 Lingon 方便我們用比較圖形化的方式建立 LaunchDaemons 的設定檔。
  3. 把 hdapm 搬到路徑 /應用程式/工具程式/ 資料夾中,點兩下開啟讓系統認證。
  4. 打開 Lingon,點選左上角的+號建立新的設定檔,在彈出的視窗中選擇 User Daemons 後按下 Create。
  5. 右邊會出現很多設定選項,先在第一欄 Name 的位置填入 com.你的使用者名稱.launchd.hdapmd1
  6. 在第二欄 What 的部份填入 /Applications/Utilities/hdapm disk1 max
  7. 最後在第三欄的位置勾選 Run it when it is loaded by the system (at startup or login) 選項就好,其他都不用更動。

都做好之後按下左上角的 Save 並輸入密碼認證之後就可以重新開機了。

BUT事情似乎並沒有這麼簡單…。一般來說安裝系統的硬碟(也就是那顆貴的要命的 SSD)的 BSD name 會是 disk0、而裝在光碟機位置的硬碟應該會是 disk1 才對,但似乎有時後會顛倒過來,我不確定這是不是個案…。所以在完成上面步驟重新開機之後,記得到系統監視程式(console)觀察一下,有沒有 「com.你的使用者名稱.launchd.hdapmd1 Setting APM level to 0xfe: Success」這樣的訊息,並多重複幾次試試看,反正重開一次不用40秒…。如果遇到 BSD name 顛倒過來的情形,則會有像下面這樣的訊息 「Setting APM level to 0xfe: FAILED: APM not supported.」(SSD不支援也不需要APM)。

所以該怎麼辦呢?我不知道 hdapm 能不能用 UUIDs 去指定正確的硬碟,甚至也找不到要去哪裡查詢硬碟的UUID。然而,反正 SSD 也不支援 APM,就算設定了也只是 FAILED 不影響系統運作,索性就多建立了一個LaunchDaemons設定檔com.你的使用者名稱.launchd.hdapmd0)並指定 hdapm 的設定目標為 disk0 以防萬一。

如果有人知道怎麼解的也記得告訴我啊~

Macbook Pro 換裝 SSD 之後 OS 的設定 ( OSX 10.6 )

ssd

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

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

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

拆光碟機裝硬碟

購買一個 9.5mm 的光碟轉接架,將原本的光碟機拆下之後換上,就能讓 MBP 同時內建存取快速的 SSD 與容量充足的傳統硬碟,這個部份網路上相關的教學流傳已久, Google 搜尋一下應該很容易找到。這邊只提一下一個似乎沒人提到過的小地方…

R0013829

上面照片中的是 Mid 2010 款 15″ 的 Macbook Pro ,其中圈起來的部份,就是連接光碟機和主機板的SATA接線,連接主機板的這端,其實往上輕輕的拉就可以輕鬆的拔起來,不過在箭頭所指的地方,下面有類似泡綿的軟膠和主機板貼合在一起,很容易就沒注意到。如果沒小心的把他剝離,在取出光碟機的時候有可能會折損這條排線…。我是先把連接光碟機的這端拔下來(滿鬆的很好拔),取出光碟機之後再慢慢的拿下排線。

設定noatime掛載

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

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

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

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.你的名字.noatime</string>
        <key>ProgramArguments</key>
        <array>
            <string>mount</string>
            <string>-vuwo</string>
            <string>noatime</string>
            <string>/</string>
        </array>
        <key>RunAtLoad</key>
        <true />
    </dict> </plist>

接著開啟 Terminal 輸入 「sudo chown root:wheel /Library/LaunchDaemons/com.你的名字.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 使用愉快,壽命長長久久…哈哈哈!