私のUbuntuイメージVMwareディスクは5GBの物理ファイルサイズに成長しました。最大容量8GBの動的に成長するディスクです。私はLinuxディストリビューション内のいくつかのものをクリーンアップしましたが、今ではその中に3GBを占めています。明らかに、物理ファイルのサイズは自動的に縮小されませんでした。 (可能であれば無料で)このディスクを約3GBに戻す方法はありますか?
これは、DVDのイメージに合わせるために必要です。
私は解決策を見つけました–ハードドライブをコンパクトにする必要があります:
仮想マシン-設定-全般-仮想マシンのクリーンアップ
3つのステップがあります。
デフラグ(何もアンマウント/再マウントする必要はありません)
Sudo e4defrag /
エラーを無視します。シンボリックリンクやデバイスファイルなどの一部のファイルは、最適化できません。
すべての未使用スペースをゼロで埋めて、VMwareが実際に未使用であることを認識します。
dd if=/dev/zero of=wipefile bs=1M; sync; rm wipefile
圧縮操作を実行します。
Sudo vmware-toolbox-cmd disk shrinkonly
ゲストで(ルートとして)VMware Toolboxを開き、ディスクを圧縮します。 (ドキュメント)
VMware Toolsがない場合は、2つの手順でディスクを手動で圧縮できます。まず、 zerofree などのツールを使用して、仮想ディスクの空き領域をクリアします。 Zerofreeは buntuで利用可能 ですが、ゲストOSファイルシステムを読み取り専用でマウントする必要があるため、ライブCDから実行することができます。 Parted Magic には、zerofreeが含まれていると報告されています。
空き容量をゼロにした後、仮想マシン設定を開き、仮想ディスクを圧縮します。
使用する
Sudo vmware-toolbox-cmd disk shrinkonly
ubuntuゲストのコマンドプロンプトから。
(Ubuntu 14.04 LTSゲスト+ Windows 10ホスト+ VMWare Workstation 12.1.1でテスト済み)
VMWareハードディスクのサイズ変更:
VMWareでダイナミック仮想ハードディスクを拡張するのは簡単で、デフォルトでvmware-vdiskmanager.exe
にあるコマンドラインツールC:\Program Files\VMware\VMware Workstation\
は不要です。
サイズを変更するには、次のコマンドを使用します(WIN + Rを押してコマンドプロンプトを開き、cmdと入力します): "C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" -x NEWSIZE "diskname.vmdk
"
手順:
次の手順は次のとおりです。
ステップの視覚的な概要と追加情報については、 ここ を参照してください。
これらの手順は私にとって完璧に機能しました:
1)未使用スペースをゼロで埋める
cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill
2)VMwareツールボックスでディスクを縮小する
Sudo vmware-toolbox-cmd disk shrink /
Ubuntu 16.04、VMware Workstation 12.1.0 Player、Windows 7ホストでテスト済み
注:「縮小」は、シンタイプのディスクファイルのサイズを縮小するプロセスを指すために、しばしば同じ意味で使用されます。 VMwareは、「縮小」という用語を使用して、ゲストが使用できるディスクの基礎となるサイズを削減することを指します。
ESXiはLinuxゲストではvmtoolsベースの圧縮をサポートしていないため、次の手順を使用する必要があります。詳細については、以下の参照リンクを参照してください。
(可能な場合)次の手順で一時的にターゲットボリュームがいっぱいになるため、ディスクへの書き込みが集中するアプリケーションとサービスをすべて停止します
ターゲットVMDKのボリュームを最適化し、symlinks/device files/etcとしてのエラーを無視します。デフラグできません。
# USE Sudo IF NECESSARY IN YOUR CONFIG!
e4defrag /
# or e4defrag /mnt/MOUNTVOLUME
dd if=/dev/zero of=/mnt/MOUNTVOLUME/zeroes bs=1M; sync; rm /mnt/MOUNTVOLUME/zeroes
ゲストをシャットダウンして電源を切る
ESXiホストにSSH接続し、次のコマンドを発行します。
# Check current vmdk allocation
du -h /vmfs/volumes/volumename/vmname/vmname.vmdk
# Shrink it
vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk
# Check again to verify shrinkage
du -h /vmfs/volumes/volumename/vmname/vmname.vmdk
https://kb.vmware.com/s/article/1002019
ほとんどのファイルシステムでファイルを削除しても、完全には削除されません。変更されるのはファイルテーブルだけです。 EraserやSDeleteなどのフリーウェアの安全なファイル削除ユーティリティを使用すると、スペースをゼロにしてボリュームの空きスペースを「ゼロ」にし、データの空きスペースを効果的にクリアできます。その後、ディスクを適切に薄くすることができます。次に、vmkfstools -Kコマンド(ESXi/ESX 4.1以降)を使用してブロック再利用を完了するか、Storage vMotionを使用して仮想マシンをVMFSブロックサイズの異なるデータストアに移行します。
大きなファイルを見つけて削除します。
find/-type f -size + 50M
最適化(何かをアンマウント/再マウントする必要はありません)。エラーを無視します。シンボリックリンクやデバイスファイルなどの一部のファイルは、最適化できません。
Sudo e4defrag /
すべての未使用スペースをゼロで埋めて、VMwareが実際に未使用であることを認識します。
dd if =/dev/zero of = wipefile bs = 1M; sync; rm wipefile
圧縮操作を実行します。4が失敗した場合は、5に進みます。
Sudo vmware-toolbox-cmd diskrinkonly
Linuxシステムをtryオプションで再起動し、パーティションテーブルをgpartedで編集します。ルートファイルシステムを縮小し、スワップパーティションを削除してルートパーティションの近くに移動します。
ESXiにSSHで接続し、次のコマンドを発行します。
vmkfstools -K /vmfs/volumes/volumename/vmname/vmname.vmdk
* .vmdkファイルを編集する必要があります。文字RWの後に、VMware仮想ディスク(VMDK)のサイズを定義します
* 40 GB = 40 * 1024 * 1024 * 1024/512 = 83886080 *
新しいサイズを反映するために、それを別のデータストアに移行します。