仮想ディスクの圧縮

閲覧数: 203(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閑話, 公開タグ,
緊急事態宣言で外出自粛になり...

せっかくのゴールデンウィークなのに、2年連続で緊急事態宣言下となり、外出自粛中。暇なので小ネタで遊ぶ  続きを読む

タイトルを抜粋する
blank

関連記事プラグインを使って、記事本文の下に「関連記事」を表示している。情報としては、タイトル、画像、  続きを読む

Zabbix 5.0を導入する
blank

もうね、完全にネタ切れw、ITネタで突っ走るしかない。今回は久しぶりのZABBIXネタと、それが稼働  続きを読む

時刻同期
blank

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

非互換対応再び
blank

サイトのお守りというのは、言い換えれば「それらを構成するソフトウェア群とそれらが稼働するハードウェア  続きを読む

ラズパイ4のメンテナンス
blank

海外からの接続用として大活躍しているラズベリーパイなのですが、以前使っていたバージョン3から現在は4  続きを読む

スポンサーリンク

コメントを残す

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