VirtualBoxのゲストOSをWin10→Win11 24H2にバージョンアップしたら仮想ディスクが肥大化した
VirtualBoxのゲストOSをWin10 22H2→Win11 24H2にバージョンアップした所、「古いWindowsのバックアップ」などでディスク容量が20~30Gバイトほど増えてました。
ゲストOS上の設定/システム/ストレージ/一時ファイル画面で「ファイルの削除」ボタンを押す事で「ゲストOS上の不要なファイル」は削除する事ができるのですが、VirtualBoxの仮想ディスクは20~30Gバイトほど肥大化したままになります

(例)ゲストOS上のディスク容量は一時ファイルの削除後に40.7Gバイトまで減少


(例)ホストPC上の仮想ディスクは65.7Gバイトのまま(肥大化したまま)


肥大化したホストPC上の仮想ディスクを圧縮したい
肥大化したホスト上の仮想ディスクは放置しておいても大きな問題はないのですが、さすがに30Gバイトとか肥大化したまま放置するのもディスク容量を圧迫する話になるので圧縮したい所です
これをするには次の2段階が必要になります
1.ゲストOS上でディスクの未使用領域を0で埋める
2.ホストOS上でVBoxManageを使って仮想ディスクを圧縮する
実際にやってみます
ゲストOS上でディスクの未使用領域を0で埋める
1.20~30年位前の超・古いフリーソフトになるのですが、Vectorから
dkclearというフリーソフトをダウンロードして使います
https://www.vector.co.jp/soft/win95/util/se337407.html?ds
(※)ちなみにWindowsの標準コマンドの「cipher /w:C:」というコマンドでやる方法もあるのですが、cipherコマンドだと実行時間が「数時間」単位とめちゃめちゃ時間がかかるので今回の用途ではオススメできません。ここで紹介するdkclear.exeなら数十分でディスクの未使用領域の0埋めができます
2.この例では
C:\tools\dkclwinフォルダにダウンロードしたdkclwin.zipを置き、
zipファイルを解凍したら
dkclear.exeをダブルクリックして起動します

3.「参照」ボタンを押し、(選択するフォルダはどこでもいいのですが)
この例では「ローカルディスク(c:)」の下の「tools」フォルダの下の「dkclwin」フォルダを選択して「OK」ボタンを押します

4.上記で設定したフォルダが設定されている事を確認して
「開始」ボタンを押します

5.ディスクの未使用領域が0埋めされるのを待ちます
(※)数十分程度かかると思います

6.「消去が終了しました」と表示されたら完了です

ホストOS上でVBoxManageを使って仮想ディスクを圧縮する
1.これも超・古いフリーソフトになりますが、10~20年ほど前に私が作成したフリーソフト「VirtualBox仮想ディスクTool」をダウンロードします
https://www.asahi-net.or.jp/~tz2s-nsmr/virtualboxdisk.html
2.ダウンロードしたvirtualboxdisk04.zipファイルを解凍したら
VirtualBoxDisk\NET40フォルダの中にある
VirtualBoxDisk.exeを起動します

3.VirtualBoxの仮想ディスクファイルをドラッグ&ドロップしてVirtualBox仮想ディスクToolの上に落とすと「仮想ファイル」のファイル名が自動的に登録されます

4.VirtualBox仮想ディスクToolの画面左上にある「圧縮」ボタンを押します

5.コマンドプロンプト画面が表示され仮想ディスクの圧縮が始まります
0% 10% 20%・・・と圧縮され100%になると画面が消えて圧縮は完了です
(※)ここでVirtualBox仮想ディスク圧縮Toolがやっている事は、コマンドプロンプトを開いて
“C:\Program Files\Oracle\VirtualBox\VBoxManage.exe” modifyvdi ”(仮想ディスクファイル名)” compact
というコマンドを実行しているだけなので、ツールを使わずに手入力でやっても同じです
(でも手入力は面倒くさいですよね?)

6.圧縮後、65.7Gバイトあった仮想ディスクファイルが38.4Gバイトまで縮小されています
以上で仮想ディスクの圧縮は完了です

コメント