Windows 大規模更新後,為 VirtualBox 磁碟瘦身 - Jeff & Jill的窩 - udn部落格
Jeff & Jill的窩
作家:Jeff & Jill
文章分類
    Top
    Windows 大規模更新後,為 VirtualBox 磁碟瘦身
    2018/11/01 12:00:00
    瀏覽:8739
    迴響:2
    推薦:34
    引用0

    所謂 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 ,大小寫必須相同

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

     
    回應
    迴響(2) :
    2樓. 寧靜姐
    2018/11/02 15:20
    我好希望學會,但全部不懂,淚!
    這種SOP操作步驟等級的東西,真正需要時照表操課就行了,不懂沒關係啦!我自己只是做個筆記,免得將來找不到而已。大笑 Jeff & Jill2018/11/03 09:03回覆
    1樓. 【無★言】雲遊到世界的另一端
    2018/11/02 06:14
     

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

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

    以現在硬碟動輒幾個TB的規模,最佳化大約只是保心安而已,多半虛耗時間。我自己也是好多年沒用了。得意 Jeff & Jill2018/11/03 08:59回覆
    發表迴響

    會員登入