2010年5月10日 星期一

我蒐集並實際測試的windows 7 瘦身法

Windows 7 裝完以後,即使不安裝其他軟體,也可能佔用到10G左右的空間,到底10G的東西,微軟塞了一些什麼東東在裡面呢?大家絕對不要小看微軟製造垃圾的能力,這裡頭一定有很多東西都是不必要的。雖然現在硬碟很大,但對於經常用ghost備份系統的我,C槽的佔用空間太大,時間與空間的浪費,還是一個很擾人的問題。

網路上有很多windows 7的瘦身法。我把它蒐集了一下,稍微分類,也針對winsxs這個資料夾提出自己測試心得。

基本瘦身法

  1. 系統保護功能關閉
    如果常用ghost等軟體來備份系統,那麼先把系統保護功能給關閉。
    打開檔案總管,在「電腦」按右鍵,「內容」,「系統保護」,「設定」,「關閉系保護」。

  2. 轉移虛擬記憶體到C碟以外的地方。
    打開檔案總管,在「電腦」按右鍵,「內容」,「進階系統設定」,在效能的地方按「設定」,再按「進階」的頁面,點下方虛擬記憶體的「變更」。 再把「自動管理所有磁碟的分頁檔大小」的勾拿掉,點C磁碟,再點「沒有分頁檔」,接著再點其他你要轉移虛擬記憶體的磁碟,再點「系統管理大小」。

  3. 關閉休眠功能
    如果您用不到休眠的功能,可以將它關閉。方法是以「系統管理員身份執行」命令列模式,進入命令提示符號以後,手動輸入「powercfg -h off」。

    windows 7經過以上的瘦身之後,依各人的電腦狀況不同,大約可以省下2G以上的空間。

刪除不用的檔案

以下的windows 7瘦身法大都參考自網路,如果可以省下幾百mb的空間,我有實際測試,如果只能省下幾十mb則沒有。

另外如果你刪除以下提到這些檔案的話,有些檔案windows 7會提示你沒有權限,所以我們要先獲得權限。 首先在想刪除的資料夾上點擊右鍵,內容,點「安全性」,「進階」,「擁有者」,接著點「編輯」,如果有看到您想變更的帳戶,直接選擇,否則選「其他使用者或群組」,在輸入選擇的對象名稱裡面輸入你的用戶名,或者點「進階」,「立即尋找」,選擇你的用戶名,「確定」,然後選擇「取代子容器與物件的擁有者」,(不選擇這個的話,我們就只有這個檔案夾的所有權,並沒有他的子檔案夾和裡面的檔案的所有權),然後應用-確定,這樣我們就擁有了這個檔案夾的所有權。

取得擁有權以後,還要變更權限才行, 同上,先在想刪除的資料夾上點擊右鍵,內容,點「安全性」,「進階」,請點選「權限」的頁面,「變更權限」,「新增」,把你的帳號名填入,或者用「進階」,「立即尋找」,「確定」,再點擊你的用戶名,「編輯」,把「完全控制/允許」打勾,「確定」,再把底下「以這個物件的繼承權限取代所有子物件的權限」打勾,然後點「確定」。


以下檔案可以刪除:

  1. C:\Windows\System32\DriverStore\FileRepository的資料夾
    搜索輸入 mdm*.inf (21.6M) 可以刪,現在早已沒人使用。
    搜索輸入ati*.inf (14.6M) nv*.inf(94.9M) (ATI用戶刪NVIDIA、NVIDIA用戶刪ATI)
  2. C:\Boot (13.3M) 這個裡面是不同語言的Windows啟動界面,除zh-TW外均可刪除。
  3. C:\perflogs\System\Diagnostics (9.39M) 這個是系統測試之後的測試記錄文件存放處。
  4. C:\Windows\Help (66.7M) windows 7的說明檔,不看的話可以刪掉。
  5. C:\Windows\IME\IMEJP10 日文輸入法(37.8M)。
  6. C:\Windows\IME\imekr8 韓文輸入法(2.86M)。
  7. C:\Windows\System32\IME 下 也會有這幾項輸入法!刪除方法同上
  8. C:\Windows\Web\Wallpaper
    裡面是Windows內建桌布,不需要的可以刪除掉,或者轉移至其他硬碟(45.5M)
  9. C:\Windows\System32\DriverStore\FileRepository
    這個資料夾中是Window 7內建驅動備份,一般來說都不需要,所以可以刪除(790M)
    (but 當這個資料夾被我刪掉之後,插入隨身硬碟會找不到安裝驅動程式,所以不建議為了windows 7瘦身而刪這個資料夾,會很麻煩的。)
  10. C:\Windows\winsxs\Backup
    這個裡面是一些備份檔案,可以刪除(353M)
  11. C:\Users\Public (或是c:\使用者\公用)
    所有用戶公用檔案夾,裡面有一些示範圖片、影片等,可以刪除之(217M)
    其中
    C:\Users\Public\Recorded TV\Sample Media(公用錄製的節目)為 Windows Media Center的示範電視錄製檔案(143M)
    C:\Users\Public\Music\Sample Music(公用音樂)為示範音樂(59M)
    C:\Users\Public\Pictures\Sample Pictures(公用圖片)為示範圖片(4.7M)
    C:\Users\Public\Videos(公用視訊)為示範影片(9.6M)
  12. C:\Program Files\Microsoft Games
    windows 7自帶遊戲,不玩的可以刪除掉,刪除自帶遊戲的方法如下:
    開始-控制台-程式集-開啟或關閉Windows功能,找到遊樂場,點加號展開,去掉你想刪除的遊戲前面的對勾,然後確定,即可。
    以下這些刪不刪隨便:
    C:\Program Files\Microsoft Games\Chess
      象棋高手(30.3M)
      C:\Program Files\Microsoft Games\FreeCell
      空當接龍(690K)
      C:\Program Files\Microsoft Games\Hearts
      紅心大戰(687K)
      C:\Program Files\Microsoft Games\inkball
      墨球(1.2M)
      C:\Program Files\Microsoft Games\Mahjong
      麻將高手(12.6M)
    C:\Program Files\Microsoft Games\Minesweeper
      掃雷(4.96M)
    C:\Program Files\Microsoft Games\Purble Place
      廚房大賽(3M)
      C:\Program Files\Microsoft Games\Solitaire
      紙牌(696K)
    C:\Program Files\Microsoft Games\SpiderSolitaire
      蜘蛛紙牌(697K)

令人討厭的Winsxs資料夾


注意Winsxs被破壞、移動或刪除,會造成Windows7無法正常開機。
如果是初學者或沒有需要,請勿進行以下所描述的操作。

vista和windows 7都有一個winsxs的資料夾,這個資料夾非常的大,把C磁碟的空間佔用了4G左右,一般提到的windows 7的瘦身,都不會包含此一資料夾, 因為雖然它體積很大,但卻是必要的,無法直接刪除。微軟把需要的或是不需要的東西,都塞進這個資料夾,每次windows update的每個版本的歷史檔案,都在這個資料夾,所以這個討厭的winsxs是一直在成長的。

一般有兩個方法可以對這個winsxs瘦身,一個是對這個資料夾進行壓縮,另一個就是把winsxs資料夾移動到其他磁碟,從而增加C磁碟空間。第一個方法,對使用軟體備份C槽,幫助不大,因為像ghost或trueimage這類的軟體,本身就會對資料進行壓縮了。第二個方法,可以減少C槽空間,但有一個致命的缺點,當使用windows update時,必須用很麻煩的方法,才能更新。

所以基於以上的原因,當我試到最後,幾乎是放棄對winsxs動腦筋了,不過我還是把我的操作過程記錄下來,太無聊的人可以試看看,另外一提的是,網路上移動winsxs的方法,抄來抄去,很多都是錯的,如果照作,根本就無法移動它。

首先需要MoveFile and PendMoves這兩個文件。這裡用到的Movefile 和PendMoves是Microsoft提供用來更改,刪除,重命名windows正在使用的文件的工具,但必須重開機才能更改。


下載點:
http://www.xun6.com/file/98854dd32/PendMoves.zip.html
http://www.mediafire.com/file/mmjhkjkyrmq/PendMoves.zip

請下載,解壓縮以後,複製到c:\windows\system32資料夾下。

第一步:Create Symbolic Directory Link 建立一個資料夾的符號鏈結,這個東西熟悉Linux的人應該很清楚。

請以系統管理員的身份執行「命令列模式」。
本文中的命令都需要系統管理員的權限,所以「命令列模式」和檔案總管(Windows Explorer)都需要以管理員身份進行

輸入 CD\Windows 命令,按enter

輸入: mklink /D winsxs.link winsxs.moved ,按enter

第二步:取得winsxs這個資料夾的權限

打開資源管理器,指向c:\windows\winsxs,右鍵點擊winsxs資料夾,選擇「內容」,在「安全性」頁面點「進階」按鈕,選擇「擁有者」,再點「編輯」,變更擁有者為你自己的帳戶。然後點「取代子容器與物件的擁有者」,點確定。接著您還要取得 winsxs本身及下級資料夾和文件的完全訪問權限(請參考上面藍色文字部分)。 這一步一定要保證對winsxs所有的資料夾和文件都有完全訪問控制權, 不然待會兒在movefile C:\Windows\winsxs C:\Windows\winsxs.moved會出錯的。Error 5。)

第三步:Schedule File Moves

還是在命令列模式下

movefile C:\Windows\winsxs C:\Windows\winsxs.moved 按enter

Movefile v1.0 - copies over an in-use file at boot time
Move successfully scheduled.

movefile C:\Windows\winsxs.link C:\Windows\winsxs 按enter

Movefile v1.0 - copies over an in-use file at boot time
Move successfully scheduled.

然後輸入PendMoves,確認一下是否在計劃中

C:\Windows>pendmoves

PendMove v1.1
Copyright (C) 2004 Mark Russinovich
Sysinternals - wwww.sysinternals.com

Source: C:\Windows\winsxs
Target: C:\Windows\winsxs.moved

Source: C:\Windows\winsxs.link
Target: C:\Windows\winsxs

Time of last update to pending moves key: 2010/5/1 上午 11:09

(如果上一步授權很順利,這一步就會正常通過。但事實上我測試時有很多情況會失敗 ,最後我用F8後進入安全模式,然後把授權重新做了一遍才成功)


第四步:重啟電腦

第五步:複製winsxs到其他資料夾
在命令列模式下,輸入robocopy C:\Windows\winsxs.moved D:\Windows\winsxs /E /COPYALL /SEC 按enter,
如果不是在D磁碟,請替換 (Robocopy會跑很久,大約一個小時)

第六步:重新建立關聯
cd \windows
rmdir winsxs
mklink /D winsxs D:\windows\winsxs

(請注意,這裡起先的winsxs只是一個空link,然後讓這個連接指向你的新winsxs複製資料夾所在地,而原文件還存放在winsxs.moved裡面,會在下一步裡刪除)

第七步:重啟

第八步:刪除C:\Windows\winsxs.moved

至此,已經將winsxs這個佔用空間巨大的資料夾移出C磁碟,收工。

如果不小心把winsxs刪除了,可以這樣恢復,拿個系統磁碟然後在開始運行欄裡輸入sfc /scannow就可以進行修復。這個方法我沒試過,放在這裡供大家不時之需吧。





參考:
NT SERVICE\TrustedInstaller

Windows 7 瘦身優化秘技

安裝完Windows7之後所需的瘦身清理工作

把Win7 裡的winSxS資料夾移到D碟