2018年9月26日 星期三

Windows 大規模更新後,為 VirtualBox 磁碟瘦身


所謂 Windows 大規模更新,通常指舊版(如 7/8)更新到新版(如 10),但最近 Windows 10 自己的更新,有時候規模也不小,如最近的 1803,更新後留下將近 9GB 在 Windows.old 裡面。一般 Windows 用戶大概不用理會,因為通常一段時間之後,系統自會清理乾淨。但我的老麥克只有 128GB SSD ,直是寸土必爭。何況 VirtualBox 磁碟一旦長大,可不會自動縮回去,即使 Windows.old 消失,在麥克硬碟佔用的空間也不會歸還,所以減肥瘦身勢在必行。


所謂 VirtualBox 磁碟,在寄主(host)看來只是一個檔案,減肥瘦身必須內外兼修,分成幾個步驟。以我為例,寄主(host)是 Mac OS,長在 VirtualBox 磁碟上的客體(guest)是 Windows 10,要做的事包括:

  1. GUEST: 清理磁碟,刪除 Windows.old 以及其他垃圾檔。
  2. GUEST: 磁碟機最佳化,將檔案儘量收攏在磁碟(也就是 Mac OS下的檔案)空間的前端,可用空間留在後段。
  3. GUEST: 將可用空間清空(全部填入 0),以利 HOST 端的最佳化。
  4. HOST: 進行 VirtualBox 磁碟最佳化,將檔案後端清空為零的部份剪除,空間歸還給 Mac OS。
最後成果,讓出 10GB 給可憐兮兮的 SSD,算是皆大歡喜。當然,以後還是會再長回來,所以把這段期間查來的資料做個筆記,遲早用得著。

接下來詳細說明各步驟。其實 guest 端的工作,有些現成套裝軟體可以代勞,不過介紹仍然以 Windows 內建,或微軟自有的軟體為主。反正要做的工作就那幾項,倘若熟悉其他做法,倒不一定照本宣科。

清理磁碟


由於安全理由, Windows.old 並不能直接由檔案總管刪除,會遇到大量權限問題,很難殺得乾淨。好在利用系統現成的工具程式,可以輕鬆代勞。


用搜尋比較快,打英文 clean 就可以


想刪的東西屬於系統檔


這時候才會出現,要自己勾選

 
警告訊息,自己衡量拿捏

Windows.old 留下的目的,是萬一你想念前一版,可以有個退路。刪掉就不能後悔了。

 
做完進行下一步

磁碟機最佳化

磁碟機最佳化有兩重意義,其一是將個別檔案分散在磁碟不同角落的部份連綴起來,以提高讀寫效率,這也是英文「Defragment」的原意,其二是將檔案集中到磁碟前端,著眼點是減少傳統機械式硬碟的磁頭移動距離,藉以提升效能。雖然在 SSD 時代意義不大,卻正好符合這次的需要。

這階段需時最久,得耐心等候。


 刪除 Windows.old 之後的剩餘空間,然而檔案零亂散佈

 
按滑鼠右鍵,選「內容」-「工具」 -「最佳化」



直接按 「最佳化」。「分析」並不會提出什麼優秀建議


 按 「最佳化」也會「分析」,不必多此一舉

可用空間清空

主要為 host 端最佳化做準備,因為那項工作,就是把後段資料全部為零的部份截斷。對虛擬硬碟來說,動態配置可以避免不必要地佔用 host 太多空間,如果 guest 系統讀取,就直接回報全部為零即可。因此只要位於檔案後段,全部為零的資料空間,就可以刪除並歸還給 host 系統。

喔,這倒提醒我。當初在 VirtualBox 建立虛擬硬碟時,選擇「動態配置」才需要做這一大套有的沒的。如果是「固定」,當然就沒搞頭了。


從微軟網站下載 SDelete


進入 「命令提示字元」


執行 SDelete,第一個參數 c: 是你想要清洗的磁碟機,第二個參數 -z 表示剩餘空間全部寫入 0。按下 Enter 後, SDelete 會要求同意授權聲明。


靜靜等它做完

 
  
執行完畢, guest 系統(Windows 10)就可以關機了

VirtualBox 磁碟最佳化

終於到了最後階段。要注意的是,這一步在 host 系統,而不是 guest 執行。以我的例子,就是 Mac OS。不過圖片是從 Windows 截取的,因為懶人不想再做一遍。不管 Windows 或 Mac OS 的 host ,都要到古老的命令列介面執行 VirtualBox 管理程式,叫做 VBoxManage 。在 Windows ,是「命令提示字元」;在 Mac OS 則是「終端機」。

Mac OS 要開啟終端機並不那麼方便,大概 Apple 不鼓勵人家使用吧。請參考這篇「Mac OS 在 Finder 的目前目錄中開啟終端機」,假使不知道怎麼辦的話。然而一旦進入終端機,直接下指令就可以,這點倒是比 Windows 省事。

瘦身前大於 32GB ,最後減掉約 10GB

Windows 要在「命令提示字元」轉到 VirtualBox 所在資料夾,通常是:

C:\Program Files\Oracle\VirtualBox

然後執行 VBoxManage.exe,如圖。

詳細指令解說請見官網 

命令列指令如下,Mac OS 和 Windows 都一樣:

VBoxManage modifymedium disk "Path\yourVM.vdi" --compact

注意其中 "Path\yourVM.vdi" 最好是 VDI 檔(虛擬磁碟)的完整路徑,前後加上引號。如果是 Mac OS ,大小寫必須相同

等它執行完畢,就大功告成啦!


 




《以下留言與回覆,來自 聯網

01.  【無★言】家喻戶曉的中國人 — 包青天  2018/11/02 06:14

 

完全看不懂。人生不懂的事太多了,多一件無妨。

Windows 10磁碟還需要最佳化嗎?


格主於 2018/11/03 08:59回覆

以現在硬碟動輒幾個TB的規模,最佳化大約只是保心安而已,多半虛耗時間。我自己也是好多年沒用了。得意


02.  寧靜姐  2018/11/02 15:20

我好希望學會,但全部不懂,淚!

格主於 2018/11/03 09:03回覆

這種SOP操作步驟等級的東西,真正需要時照表操課就行了,不懂沒關係啦!我自己只是做個筆記,免得將來找不到而已。大笑

沒有留言:

張貼留言