質問: virtualboxのvdiファイルサイズを小さくする方法 私はvirtualbox vmを持っていて、これは非常に大きなハードディスクサイズ(hostよりも大きい)を設定しています。私の間違いで、vm上のプログラムはたくさんのログファイルを生成し、vdiファイルのサイズはホストにスペースがなくなるまで増え続けています。ログファイルを削除しましたが、vboxmanage.exe modifyhd "c:\virts\mybox-i386.vdi" compactを使用した後でvdiファイルのサイズが小さくなっていませんvdiファイルのサイズを本当に小さくする方法はありますか?ありがとうございます。
回答: 私はwindowsゲストを持つwindows 7ホストにいます、これは私がフォルダーツリーのvdiのすべてを圧縮するために書いたバッチファイルです。echo off mode con:cols=140 lines=200 cls :: see https://forums.virtualbox.org/viewtopic.php?p=29272#p29272 :: how can i reduce the size of a dynamic vdi on disk? :: but that page says to use sdelete -s which is suboptimal. :: use -z as per http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx :: first run the sdelete -z c: inside the vms that zero-out all the free space :: then run this batch file title compacting free space on virtual machine vms :: http://ss64.com/nt/for_r.html :: http://stackoverflow.com/questions/8836368/windows-batch-file-how-to-loop-through-files-in-a-directory/8836401#8836401 setlocal enabledelayedexpansion :: http://ss64.com/nt/delayedexpansion.html ... :: notice that within the for loop we use !variable! instead of %variable%. for /r %cd% %%g in (*.vdi) do ( set ohai=%%g set lastfive=!ohai:~-5! :: skip snapshots which are named {guid}.vdi if not !lastfive!==}.vdi ( echo . echo compacting %%g "c:\program files\oracle\virtualbox\vboxmanage.exe" modifyhd "%%g" --compact ) ) pause exit リンクをコメントに残したので、あなたは(ある種の)それがどのように動作するのかを知ることができます。編集するそれで、結局のところ、私は clonevdiツール を試してみましたが、それははるかに少ない時間とワンクリックで良い仕事をしました。