検索すれば Windows がゲストOSの場合などの説明はあるのですが、 ゲストOSが macOS の場合の説明を見つけるのに苦労したので、ここに備忘用に書きます。
なお、ホストOSが macOS Catalina で VirtualBox で実行する ゲストOSが macOS Yosemite という組み合わせです。
ここでは OSイメージは macos.vdi ファイルにあるとして説明します。 そしてこのイメージは 可変サイズ として作成されていることが前提です。
可変サイズで hdd イメージを作成していると、当初はファイルサイズが小さく、ゲストOSでファイルをつくることによって 徐々に物理的なファイルサイズが増えていきます。 一旦増えてしまった ファイルサイズは ゲストOS上で、削除して削っても、hddイメージのファイルサイズは縮まりません。
そこで、この必要以上にファイルサイズが増えてしまった部分をコンパクトにするのが、 VBoxManage modifymedium --compact コマンドです。
もし vmdk など別形式の場合は、まずは VBoxManage clonemedium コマンドで vdi に変換してから作業します。
VBoxManage clonemedium ./macos.vmdk ./macos.vdi --format vdi
macos.vdi が用意できたら、 ゲストのmacOS を起動して、以下のコマンドで空き領域に 0 を書き込む必要があります。
sudo diskutil secureErase freespace 0 /
処理が完了したら、ゲストmacOSを shutdown します。
あとはホストOS上で以下のサイズを減らすコマンドを実行するだけです。
VBoxManage modifymedium --compact ./macos.vdi
今回の場合 100G 程度あったファイルが 50G 程度まで縮小できました。 100G もあるとバックアップするだけでも一苦労ですが、50G になれば多少は楽です。