Mac OS X 系統的日常維護和保養究竟應該包括哪些內容,一直眾說不一。網路上的文章更是花樣百出,少則一頁,多則十幾頁,甚至在某些問題上彼此矛盾,即使是蘋果自己的知識庫的文章都有相互矛盾的地方。比較全面的維護和保養的文章,一般都提及了以下內容:
1 運行日常維護指令碼 (Scripts)
2 清除緩衝 (Caches)
3 修理和備份屬性檔案
4 清理磁碟片段 (Defragment)
5 修複磁碟許可權
6 檢查並修理磁碟
7 清理案頭
8 重設 Safari;
9 重建 Spotlight 資料庫
更具體的,甚至規定了每日、每周、每月以及每季度使用者應該如何如何。從內容上看,它們實際上包括了檢修甚至是急救的內容,還包含一點系統最佳化的內容。而上面沒有提到的內容,則包括日常備份、軟體及韌體的升級、筆記本電池軟體的校正。
實際上,從使用者的日常使用來說,終歸蘋果電腦不是一輛車,不能象給車進行定期維修一樣往修車店裡送,而且除了某些基本的維護外,也沒必要每次保養都上全活兒。更主要的,如果在日常使用中每天、每星期、每月、每季度甚至每年都要花費那麼多的時間來進行維護和保養,這些時間累計起來恐怕比某些使用者的用機時間都長。即使是系統管理員也不可能對所管理的所有機器都定期上全活。甚至,我懷疑那些洋洋洒洒大書特書 Mac OS X 維修和保養的人,對自己的機器也是那麼保養的。維護和保養的目的其實應該以保證系統目前的效能為主,也就是說通過維護和保養,讓你的Mac OS X 能夠保持目前的效能就已經足夠了。這看起來很容易,但實際上並不是如此。換個說法就是,從系統和軟體初裝一切就續開始,通過一段時間的使用,3個月、半年、一年甚至更長時間,你 Mac OS X 系統還能跟初始安裝時的效能相差無幾,那就說明你的機器維護和保養做得相當充分。可是,有多少人能做到這點?
首先,先來逐條研究一下經常提到的維護和保養措施,來看看應該在什麼時候使用這些步驟,然後再歸納一下,看看使用者日常應該做些什麼。
1、運行日常維護指令碼(Scripts)
Unix 系統下有幾個指令檔,最主要的位於/etc/periodic/下的檔案夾中。以前,由於
Unix 系統往往做為公司或組織資訊系統的核心,所以一般也不停機。這些指令碼的設計目
的,就是針對不停機的Unix進行一定的清理。每到晚3點15分,系統就會開始運行每日清理指令碼對系統進行清理。根據不同的Mac OS X系統,這些清理包括清除 CrashReporter、tmp 檔案夾裡的檔案、清除垃圾檔案、檢查次
系統狀態、更新系統日誌、備份 NetInfo 和 asl 日誌等。清理完畢將在 /var/log/ 檔案夾
下產生 daily.out 檔案。每周六晚3點15分,系統開始運行每周清理指令碼進行每周清理。清理的內容包括重建 locate 和 whatis 資料庫,並各種日誌進行更替。最後在 /var/log/ 檔案夾下產生 weekly.out 檔案。每月第一天晚5點半,系統執行月清理指令碼,更替安裝日誌和傳真檔案,最終產生 monthly.out 。在更替日誌過程中,舊的記錄檔被壓縮,系統產生新的檔案,這樣就節約了磁碟空間。整個作用機制 (Leopard) 是,系統的 cron 或 launchd 首先在硬碟下的系統資產庫裡的LaunchDaemons 檔案夾裡找到 com.apple.weekly.plist、com.apple.monthly.plist、或 com.apple.monthly.plist 然後到 usr/sbin/ 裡啟動 periodic,periodic 到 /etc/ defaults/ 下找到 periodic.conf ,然後根據該檔案的設定,到 /etc/periodic/ 下運行相
應檔案夾裡的相應應用。應用啟動的時間的設定在上述的 plist 檔案中。Leopard 以外的
其它版本的 Mac OS X 的運作過程和清理內容與 Leopard 稍有不同。
由於這些指令檔是為不停機的系統編寫的,因此,只有在預設的時間裡,你的電腦沒有關機或休眠時,它們才能如期完成任務。如果由於機器休眠或關機而錯過了這些指令碼的已耗用時間,下次什麼時候運行就成了一個問題。在 Leopard 以前的版本,launchd 是根據系統定時器來設定指令碼已耗用時間的,而系統定時器不會電腦器的睡眠時間,因此會將定時的時間向後延遲,也就是說,如果你晚1點15分機器處於睡眠,此時距離啟動清理指令碼的時間為2小時。當你早晨8點將電腦喚醒後,系統定時仍然以為需要兩小時後才能進行清理,於是等到早上10點,你就會發現機器變得很慢,原因是此時機器自動啟動了清理指令碼。如果你每天只用1、2個小時的電腦,那將很難估計什麼時候機器會做自動清理。因此,就不如沒次開機或喚醒電腦後,主動運行這些清理指令碼。運行這些指令碼,可以通過執行終端的periodic 命令或者運行一些第三方軟體。使用終端命令,則需輸入:
sudo periodic 指令碼名指令碼名應該是 daily、weekly 或 monthly。如果要同時運行三個維護指令碼,則可輸入:sudo periodic daily weekly monthly一些第三方軟體也具有這個功能。在 Leopard 上,情況有所變化。當機器從睡眠中喚醒後,一旦發現系統沒有及時運行清理指令碼,它會立即開始自動調用這些指令碼。所以,Leopard 的使用者完全沒必要考慮自己運行清理指令碼的問題。
2、清除緩衝 (Caches)
首先要弄明白什麼叫緩衝以及緩衝是幹什麼用的,然後才能去考慮是否應該定期清除它。
電腦裡緩衝到處可見,主板上有緩衝,根據機型不同,可能是獨立的硬體也可能在處理器
上; 硬碟上有緩衝; 檔案系統裡仍然有緩衝,而應用,比如 Safari,也有緩衝。Cache 本身是個法語詞,表示的是臨時儲藏的地方。在電腦運行時,為了不讓處理器等待資料,人們就建立起一個個臨時儲存資料的地方。總言之,由於緩衝的存在,更由於系統和應用的相關資料儲存在緩衝中,系統和應用才會運行得快。換句話說,如果緩衝是空的,在系統運行時,機器首先查看緩衝,當沒有發現相關內容時,再去調用相關應用,並將系統和應用的資料和狀態存於緩衝中,這個過程就比直接從緩衝裡能找到這些資料和狀態慢得多。
但是如果緩衝裡面的東西太多或空間不足,在調用新應用或者是應用產生的資料量過大時,部分內容需要從緩衝中騰出去,才能在緩衝中添加新的東西。這個過程本身機器自己就可以控制。當然,如果要人為的清空緩衝,可能比機器的清空速度要快些,但是在這麼做的同時,你也將其它所有應用的緩衝都清除了,這勢必會影響那些應用的使用效能。主板上的緩衝記憶體,在關機後,內容便消失了;而以檔案形式儲存到硬碟裡的緩衝,隨系統或應用的使用方式而不同。可以說,只有少數情況下,需要人為地清除緩衝。比如,緩衝內的資料出現錯誤,造成系統或應用不能正常運行。當出現這種情況時,作為使用者你可以感覺到系統或應用的不正常,此時,你可能採取其它的障礙排除的步驟,而清空緩衝也是值得考慮的。通過上述的分析,不難看出,如果緩衝內的資料沒有錯誤,沒必要來清空緩衝,而清空緩衝以後,反而會對效能產生負面影響。因此,這個做法應該看作是故障清除的手段,沒必要日常定時進行。
清空緩衝的方法最好藉助其它應用,而不是自己一步步地刪除。可以用 Cocktail、
Leopard Cache Cleaner 或 Tiger Cache Cleaner。
3、修理和備份屬性檔案 (plist)
在系統資產庫、硬碟資產庫的 Preferences 和每個使用者的 Preferences 檔案夾記憶體在大
量plist檔案。這些檔案裡包含著系統或應用的設定,很多屬性檔案是在應用的使用中產生
的。當應用出現故障或存在bug,通過刪除這些屬性檔案,可以使應用恢複到初始狀態。在某些情況下,使用者通過應用介面下的預製或喜好設定 (Preferences),將該應用個人化。這些個人化資料就存在相應應用的plist檔案中。如果應用出現故障時,使用者把它的plist檔案刪除,此時,應用可能得以恢複,但是,使用者對該應用的個人化也丟了。這就是為什麼需要備份屬性檔案的理由。但是,多數情況下,應用本身提供的可修改的屬性是有限的,而且即使是個人化的資訊很重要、很難記住,一旦該應用設定完畢,以後就都按這個設定進行了。因此,即使是備份,備份一遍也就夠了,無須定期備份。因此,這不應該看作是日常維護的步驟。
4、整理磁碟片段 (Defragment)
電腦在向磁碟讀寫資料的時候並不總是將資料寫到持續的扇區。在電腦使用一段時間以後,經常編輯或變更的檔案可能會一小片一小片地分散在硬碟各處。檔案目錄將硬碟上這些小片的位置通知給作業系統。對於作業系統來說,檔案就象完整的一塊兒一樣。清理磁碟片段則是將檔案的所有片段複製、串連並轉移到持續的扇區,然後重建檔案目錄。這樣,就很便於作業系統對檔案的尋找。清理磁碟片段對於 Windows 系統來說有其必要性,但是,對於 Mac OS X 系統來說,通常情況下是不需要的。這是因為蘋果採用了若干技術儘可能地避免片段的產生。首先,HFS+格式盡量避免磁碟空間的重複使用,其次,HFS+的宗卷可以延遲排布 (Delayed Allocation),就是當某個磁碟段 (block) 面臨書寫資料時,為該資料所準備的磁碟空間大小不被算做自由空間,但是卻沒有列在自由空間表中,而這些資料則存於記憶體中,直到系統要清除緩衝或應用要求同步時,才一次性傾倒到硬碟上。除此之外,蘋果系統還採用了”Hot-File- Adaptive-clustering”技術,即檢查逐漸增加內容的檔案,一旦發現該這些檔案的片段過多,系統就自動清理該檔案的片段。另外,由於現在的硬碟容量、緩衝和速度的增加,許多應用對於添加和修改檔案的處理,從以前的附加到檔案上,改成現在的一次性重新書寫改檔案,這樣就避免了片段的產生。更應該注意的是,為了提高作業系統啟動效能,蘋果把一些檔案放在一起,如果把它們挪到別的地方去,系統將運行緩慢。總之,除非進行影視檔案的操作和編輯,需要大量的不間斷的磁碟空間來儲存檔案,否則,很沒必要對 Mac OS X 系統清理磁碟片段。如果要清理片段,可以使用 TechTool Pro 或iDefrag。
5、修理磁碟許可權
使用磁碟工具修理許可權會給人一種錯覺,因為它並不能修理硬碟上所有的檔案的許可權。對於使用蘋果的安裝軟體(Installer)來安裝的pkg檔案,在軟體安裝後,會在硬碟下資產庫
Receipts檔案夾裡留下一些印記。在 Mac OS 10.5 以前的版本中,這個 Receipts 檔案
夾會將pkg檔案存在該處,而對於使用 Leopard 的 packageMaker 軟體所做的安裝包來說,它在Receipts檔案夾裡只留下一個bom檔案而不在保留pkg檔案。
在使用磁碟工具修複許可權時,系統要檢查Receipts包裡的檔案,如果是pkg檔案,它將檢
查包內的Archive.bom檔案。bom檔案裡記錄著應用安裝時各個檔案和檔案夾的許可權。磁碟工具的修理許可權作用就是憑藉bom檔案來核對和修改檔案許可權。有些人甚至認為磁碟工具只能修複蘋果自己的系統和應用檔案,只要應用在Receipts檔案夾中有bom檔案這種收據,就可以檢查該應用被安裝後的檔案或檔案夾的許可權。
總之,用磁碟工具修理磁碟許可權,所起的作用有限。一般情況下在安裝軟體更新或第三方軟體時,由於所裝的軟體可能需要修改某些系統檔案或檔案夾的許可權,並在安裝結束時沒有將所修改的許可權更改回來,這可能會造成系統錯誤。另外,在突然停電、關機不當、或硬碟損壞等極端情況下,也可能出現錯誤,但如果是這種情況,整個系統都可能啟動不了,就已經不是維護和保養的問題了。因此,在系統升級或用安裝軟體(第三方的安裝軟體或蘋果的Installer-pkg檔案)安裝了新軟體以後,需要做許可權修複之外,就只有在故障發生時用來修複許可權比較合適。當然,如果沒事幹,就去修複一下許可權對磁碟也沒多大壞處。