VMWare ESXiのファイルシステムをLinuxから読みとる
VMware ESXiで使われるファイルシステムであるVMFS上のデータを吸い出したい。
試した対象
VMware ESXi 4.0.0
ディスクはこんな感じ。

VMFS(vmfs3)でフォーマットされている。
vmfs-toolsを使う
Ubuntu 10.10のレポジトリにvmfs-toolsという便利そうなツールがありました。
% sudo apt-get install vmfs-tools
使う
% sudo vmfs-fuse /dev/sdb /mnt
fuseを使ってマウントできるのであとはコピーしてやるだけ。書き込みは試していません。
VMの引っ越し
ちなみにVMのイメージをKVMやXenなどに持って行きたい場合、qemu-imgコマンドを使って変換が可能。
VMFSのスナップショットは扱えないようなので吸い出す前にESXi上でスナップショット全部削除して統合しておきましょう。削除せずに完全なイメージの出力はESXiでは無理そうだったので諦めました。VMのクローニングができる環境ならクローニングすれば完全なイメージが吐き出される気がするので、評価版ライセンスを有効にして一時的にESX相当にすれば良いかもしれません。
ファイルサイズを見ればどれがイメージなのかは大体分かるだろうけど、目当てのディスクイメージが分からない場合はVMの設定ファイルを見れば何か分かるかもしれない。
吸い出したデータのマシン名.vdxにイメージのメタデータのファイル名が書かれている。
scsi0:0.present = "true"
scsi0:0.fileName = "hoge.vmdk"
scsi0:0.deviceType = "scsi-hardDisk
disk.vmdkにイメージの情報が書かれている。
RW 41943040 VMFS "hoge-flat.vmdk"
変換する
% qemu-img convert -O raw hoge-flat.vmdk /path/to/save/hoge.img
あとはVirt-mangerからインポートするなり、手でイメージを差し替えるなり好きにしたらいいのよ。