仮想ディスクの圧縮

閲覧数: 213(0)

Windows上のVMware Playerなら、設定メニューからディスク圧縮が選べるけど、OSX上のFusionではそんなメニューが見つからない、次のコマンドでやる

vmware-vdiskmanager -d 対象vmのvmdkファイル (defragの場合)
vmware-vdiskmanager -k 対象vmのvmdkファイル (shrinkの場合)

割と面倒(笑)

もちろん、ゲストOS側で空き領域はゼロクリアしておく前提
ボリュームがルートのみなら、

dd if=/dev/zero of=/zero bs=4k; \rm /zero

この前やってみたら、30GBが18.6GBまで縮小できた。テスト用に使っている環境の話。
毎回、手でコマンドを打つのは面倒なので、こんなスクリプトにしてみました。

#!/bin/sh

VMDKMAN="/Applications/VMware Fusion.app/Contents/Library"
VMDIR="/Users/atanabe/Virtual Machines.localized"

case "$1" in
    ec2)
        "$VMDKMAN"/vmware-vdiskmanager -d "$VMDIR"/linux-ec2.vmwarevm/linux-ec2.vmdk
        if [ $? = 0 ]; then
            "$VMDKMAN"/vmware-vdiskmanager -k "$VMDIR"/linux-ec2.vmwarevm/linux-ec2.vmdk
        else exit
        fi
        ;;
    nc2)
        "$VMDKMAN"/vmware-vdiskmanager -d "$VMDIR"/linux-nc2.vmwarevm/linux-nc2.vmdk
        if [ $? = 0 ]; then
            "$VMDKMAN"/vmware-vdiskmanager -k "$VMDIR"/linux-nc2.vmwarevm/linux-nc2.vmdk
        else exit
        fi
        ;;
    c10)
        "$VMDKMAN"/vmware-vdiskmanager -d "$VMDIR"/linux-c10.vmwarevm/linux-c10.vmdk
        if [ $? = 0 ]; then
            "$VMDKMAN"/vmware-vdiskmanager -k "$VMDIR"/linux-c10.vmwarevm/linux-c10.vmdk
        else exit
        fi
        ;;
    *)
    echo $"Usage: $0 {ec2|nc2|c10}"
    RETVAL=1
    exit $RETVAL
esac

もう今ではec2しか使っていませんが、過去に作ったVM資産である、nc2とc10も指定可能としています。実体はアーカイブ上にしか存在しませんけどね。Just in case.

最終更新日: 2016年5月26日

カテゴリー公開, 閑話(IT)タグ,
時刻同期

VMware Fusion上のゲストOSであるCentOS6がCentOS7(今回訳あってダウングレ  続きを読む

仮想ディスクの圧縮
blank

Windows上のVMware Playerなら、設定メニューからディスク圧縮が選べるけど、OSX上  続きを読む

.bash_profileの設定
blank

Mac OSXのbash設定 /etc/bash_profileとbashrcは全ユーザーに関連する  続きを読む

VMware 8.5.3とCentOS ...
blank

すっごい久しぶりな、ITネタですw このサイトの本番系は贅沢な事に、AWSで稼働しています。テスト系  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください