ぽんぽんぽぽぽん

”ぽん”が色々書きます。(ITのことや、ソシャゲ、スロットのこととかw...etc)

vagrantで作成したvmdkファイルの容量を圧縮してみた話

Macの容量(256GB)がいつの間にか80%を超えていた!!

やばいやばい!オス、オラ悟空!

と思って何にそんなに使っているのかを検索

$ sudo du -g -x -d 5 / | awk '$1 >= 5{print}'

VirtualBox VMs/ がめっちゃ増えてるぅぅ!

1個80GBぐらいの.vmdkがある。ゲストOS内でdfしてみると30GBぐらい。

あーなんかの記事で一旦増えた.vmdkはサイズ戻らないとかってのを見た気がする。

じゃあ早速圧縮方法を調べる。 主に2パターンあった。

① vdiに変換してvirtualboxの圧縮コマンド実行

vagrant packageで再度作り直し

①はvdiファイルを作成する容量がなかったため断念。 80GB×2は無理だよorz

ということで②を試してみる。 流れは以下。

1.ゲストOSの空き容量を埋める

sudo dd if=/dev/zero of=/tmp/ZERO bs=1M

200GBあったので結構かかった。

その後/tmp/ZEROを削除

$ rm -f /tmp/ZERO

※これをやらないとpackage化したファイルを戻した時に「ちょっと奥さん!もうお腹一杯ですよ!」って怒られた。 もっといい方法ありそうだけど。

2.package.boxを作成

vagrant package

package.box自体は7GBぐらいに収まった。

3.package.boxを使ってbox addする

vagrant box add xxxx package.box

4.追加したboxを使って別環境を作る

mkdir resize
cd resize
vagrant init xxxx

5.元々のVagrantfileをコピー

新しく作成したVagrantfileに、元々のVagrantfileをまるまるコピーする ※環境は全く同じがよかったので。

6.新仮想マシンを作成

vagrant up

エラー発生。 「デバイス eth1 は存在しないようですので、初期化を遅らせます。」 検索すると HWADDRとのマッチングが行えていないことが原因のよう。

echo '' > /etc/udev/rules.d/70-persistent-net.rules

のファイルを空にしてvagrant reloadを実行

無事起動!!! サイズも25GBぐらいに減っている!!!

素晴らしい!!!終わり