分割仮想ディスクを結合する(by vmware-vdiskmanager)
CentOS 5.2 on VMware Server - 常水商会::よしなしごと
手に入れた環境が分割仮想ディスクだったので結合を試みました。
- VMware Server 1.0.8に付属のツール『VMware Virtual Disk Manager(vmware-vdiskmanager.exe)』(build 126538)を使用。
- 以下、特に記載ない場合はツールを引数なしで実行した際に表示されるヘルプから引用しました(日本語記載の箇所は拙訳)。
- また、結合以外の機能は試していないのでご利用は慎重に。
参考ページ:@IT:複数のVMware仮想ディスクを1つに統合するには
説明
Offline disk manipulation utility
オフラインのディスク操作ユーティリティ
書式
$> vmware-vdiskmanager.exe OPTIONS diskName | drive-letter:
オプション
日本語で記載のオプションが今回使用したオプションです。
-c : ディスク作成; need to specify other create options -d : defragment the specified virtual disk -k : shrink the specified virtual disk -n <source-disk> : rename the specified virtual disk; need to specify destination disk-name -p : prepare the mounted virtual disk specified by the drive-letter for shrinking -q : do not log messages -r <source-disk> : 特定の仮想ディスクに変換; need to specify destination disk-type -x <new-capacity> : expand the disk to the specified capacity
さらに仮想ディスク作成&変換に関する追加のオプションとして以下があります。
-a <adapter> : (for use with -c only) adapter type (ide, buslogic or lsilogic) -s <size> : capacity of the virtual disk -t <disk-type> : ディスクタイプID
ディスクタイプID
0 : 単一拡張可能(事前割当なし)な仮想ディスク 1 : growable virtual disk split in 2Gb files 2 : preallocated virtual disk 3 : preallocated virtual disk split in 2Gb files
使用例
- インターフェースがIDEで850MByteの事前割当なし仮想ディスクを作成する
$> vmware-vdiskmanager.exe -c -s 850Mb -a ide -t 0 myIdeDisk.vmdk
- 特定の仮想ディスク(myDisk.vmdk)をデフラグする※shrinkしないと仮想ディスクのファイルサイズは小さくなりません
$> vmware-vdiskmanager.exe -d myDisk.vmdk
- 特定の仮想ディスク(sourceDisk.vmdk)を事前割当なし拡張可能な仮想ディスクに変換する※今回のはこれ
$> vmware-vdiskmanager.exe -r sourceDisk.vmdk -t 0 destinationDisk.vmdk
- 仮想ディスクの容量を36Gbに拡張する
$> vmware-vdiskmanager.exe -x 36Gb myDisk.vmdk
- 仮想ディスクの名前を変更する
$> vmware-vdiskmanager.exe -n sourceName.vmdk destinationName.vmdk
- 仮想ディスクをshrinkする。※データが入っていない領域を0クリアするので仮想ディスクのサイズが小さくなる
$> vmware-vdiskmanager.exe -k myDisk.vmdk
- 仮想ディスクをshrinkのために特定のドライブレター(m)でマウントする
$> vmware-vdiskmanager.exe -p m
自分の分割仮想ディスクでの実行例
分割仮想ディスク一式
1,956,904,960 centos-5.2-i386-server-s001.vmdk 1,498,349,568 centos-5.2-i386-server-s002.vmdk 928,710,656 centos-5.2-i386-server-s003.vmdk 1,784,086,528 centos-5.2-i386-server-s004.vmdk 65,536 centos-5.2-i386-server-s005.vmdk 580 centos-5.2-i386-server.vmdk ※分割仮想ディスク001〜005の記述が書いてあるテキストファイル。vmxはこのファイルを参照。 1,192 centos-5.2-i386-server.vmx
実行結果
- centos-5.2-i386-server.vmdk:結合前の仮想ディスク(の元締めテキストファイル)
- centos-5.2-i386-server_new.vmdk:結合後の仮想ディスク(バイナリファイル)
$> vmware-vdiskmanager.exe -r centos-5.2-i386-server.vmdk -t 0 centos-5.2-i386-server_new.vmdk Using log file C:\DOCUME~1\xxx\LOCALS~1\Temp\vmware-xxx\vdiskmanager.log Creating a monolithic growable disk 'centos-5.2-i386-server_new.vmdk' Convert: 100% done. Virtual disk conversion successful.
十数分程度時間がかかります。
生成物
6,155,010,048 centos-5.2-i386-server_new.vmdk
001〜005までの分割ディスクのサイズ合計値は6,168,117,248。
動作確認
新しく作成したフォルダに、生成物 centos-5.2-i386-server_new.vmdk と vmxファイルを放り込んで起動(vmdkファイルはvmxで指定しなおすなりリネームするなりお好きに)。動作確認。
ところで、結合すると何かいいことあるんだっけ?