qemu-imgコマンドを使用して、OVAファイル内のVMDKイメージをQCOW2形式に変換しようとしましたが、エラーメッセージqemu-img:セクター131072の読み取り中にエラーが発生しました:無効な引数
user@ubuntu:/tmp$ wget ftp://ftp.sanger.ac.uk/pub/databases/Pfam/vm/PfamWeb_20120124.ova
user@ubuntu:/tmp$ tar xfv PfamWeb_20120124.ova
PfamWeb_20120124_2.ovf
PfamWeb_20120124_2.mf
PfamWeb_20120124_2-disk1.vmdk
user@ubuntu:/tmp$ qemu-img convert -O qcow2 PfamWeb_20120124_2-disk1.vmdk PfamWeb_20120124_2.qcow2
qemu-img: error while reading sector 131072: Invalid argument
user@ubuntu:/tmp$ qemu-img --version | grep "qemu-img version"
qemu-img version 1.0, Copyright (c) 2004-2008 Fabrice Bellard
user@ubuntu:/tmp$ dpkg-query -f='${Version}\n' --show qemu-utils
1.0+noroms-0ubuntu14.1
user@ubuntu:/tmp$ cat /etc/issue
Ubuntu 12.04.1 LTS \n \l
エラーを回避するにはどうすればよいですか?
これに関連する バグ はqemuバージョン1.2.0で修正されました。 Ubuntu 12.04には古いqemuバージョンがありますが、qemu-imgをソースコードからインストールした場合
user@ubuntu:/tmp$ Sudo apt-get install libglib2.0-dev
user@ubuntu:/tmp$ wget http://wiki.qemu.org/download/qemu-1.2.0.tar.bz2
user@ubuntu:/tmp$ tar xfj qemu-1.2.0.tar.bz2
user@ubuntu:/tmp$ cd qemu-1.2.0
user@ubuntu:/tmp/qemu-1.2.0$ ./configure && make qemu-img
エラーなしで変換が実行されます
user@ubuntu:/tmp/qemu-1.2.0$ cd /tmp
user@ubuntu:/tmp$ /tmp/qemu-1.2.0/qemu-img convert -O qcow2 PfamWeb_20120124_2-disk1.vmdk PfamWeb_20120124_2.qcow2
user@ubuntu:/tmp$
ソースから(配布されたパッケージから、またはgitから)qemuをコンパイルした後でも、この問題が発生しました(多少異なるエラーが発生しましたが、'image' uses a vmdk feature which is not supported by this qemu version: VMDK version 3
)。これは1871年にキャンドルライトによって作成されたOVAではありませんでした。実際にはGitHub Enterpriseです。したがって、これがQEMUのどのバージョンでもサポートされていない理由はまだわかりません。誰かが持っている場合は、追加の洞察を歓迎します。
とにかく、私が見つけた解決策は、Citrix XenConvertを http://www.citrix.com/downloads/xenserver/tools/conversion.html から取得することでした。不可解なことに、新しいバージョンでは単純なフォーマット変換のサポートが終了しましたが、2.3.1を使用すると、VMDK(単純な「tar -xf」を介してOVAから抽出)をVHDに変更でき、qemu-imgがそこから取得できます。 VMWare Converterもタスクを処理できた可能性があります。 http://www.vmware.com/go/getconverter にあります。