仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

VirtualBoxのOVAインポートエラー(E_INVALIDARG 0x80070057)を手動移行で解決する完全ガイド

VirtualBoxのOVAインポートとE_INVALIDARG 0x80070057エラーの対処法について解説します。

更新日:2025年12月9日

最近、仮想化環境の操作中に新たな問題に遭遇しました。Linux仮想マシンを別のホストで使えるよう、エクスポートしようとしたのです。理論上は、VirtualBoxにはその機能が備わっています。「ファイル > アプライアンスのエクスポート」を選択し、対象の仮想マシンを選び、フォーマットを指定してMACアドレスを設定すれば、VirtualBoxがovaファイルを生成してくれます。あとはターゲット側のホストでこのアプライアンスをインポートするだけです。

しかし実際に試してみたところ、エラーが発生しました。GUIには詳細な情報もほとんどなく、「E_INVALIDARG 0x80070057」と表示されるだけです。VirtualBoxフォーラムのチケットを読み漁ってみると、インポート処理が失敗する原因は実にさまざまだということが分かりました。潜在的な問題を一つひとつ潰していくよりも、別のアプローチ——OVAプロセスを使わない「手動でのマシン移行」——を選ぶことにしました。以下でその方法をご紹介します。

OVAは単なるアーカイブにすぎない

技術的に言えば、アプライアンスとは仮想マシンのデータすべてを一つのファイルにきれいにパッケージ化したものです。中身には仮想ディスク(スナップショットも含む)、仮想マシンのマニフェストなどが入っています。特別な仕掛けがあるわけではありません。インポート処理は、これらを展開し、設定ファイル(.vbox)を解析するだけです。仮想CDドライブのパスや共有フォルダのパスといった、自動では解決できないエラーがある場合、処理はそこで停止します。

つまり、同じことは手動でもできるというわけです。

ステップ1:仮想マシンのクローンを作成する

この作業を行う理由は次のとおりです。スナップショットを使用している場合、最新のスナップショットだけをクローンできます。これにより新しい仮想マシンのサイズが小さくなります。さらに、新しいホストへデータをコピーする際に考慮すべきスナップショットの数も減ります。ただし、これは必須ではありません。

最新の状態だけをコピーしたい理由は、マシン管理がシンプルになり、転送に必要なデータ量が減るからです。ネットワーク経由でエクスポートする場合は、LAN内であっても大きな違いが出ることがあります。

VirtualBoxのOVAインポートエラー(E_INVALIDARG 0x80070057)を手動移行で解決する完全ガイド

ステップ2:仮想マシンフォルダ全体を2台目のホストへコピーする

VirtualBoxの仮想マシンフォルダは、一般的に次のような構造になっています:「Logs」「Snapshots」という名前のディレクトリ、1つ以上の仮想ディスク(通常は.vdi形式)、.vbox拡張子の設定ファイル、そして変更履歴があれば.vbox-prev拡張子の2つ目の設定ファイルです。

vboxファイルはXML形式のマニフェストで、GUI上で見られる各種宣言がすべて記述されています。マシンの稼働中にこのファイルを編集してはいけませんが、オフライン状態のマシンであれば安全に編集できます。変更内容は次回そのマシンを起動したときに反映されます。たとえば「Media」セクションの下にある「HardDisks」セクションには、すべてのディスクとスナップショットが列挙されています。

...
<HardDisks>
  <HardDisk uuid="{dfcda294-6feb-4ef8-8bc8-e67ad57e2cc6}"
    location="Kubuntu-24.04.vdi"
    format="VDI"
    type="Normal">
    <HardDisk uuid="{f062fe0b-578c-4461-9a10-8d65d28347ac}"
      location="Snapshots/{f062fe0b-578c-4461-9a10-8d65d28347ac}.vdi"
      format="VDI">
    <HardDisk uuid="{f942b89a-49ff-40fa-8d62-e6fdd8a205d9}"
      location="Snapshots/{f942b89a-49ff-40fa-8d62-e6fdd8a205d9}.vdi"
      format="VDI"/>
    </HardDisk>
  </HardDisk>
</HardDisks>
...

この宣言から、該当マシンがKubuntu-24.04.vdiというハードディスクを使用しており、それに関連付けられたスナップショットが2つあることが分かります。要領はつかめたでしょうか。

それでは、このデータすべて(フォルダ全体)を2台目のホストへコピーしてください。

ステップ3:パスを確認する

仮想マシンを「インポート」する前に、テキストエディタでvboxファイルを開き、奇妙なパスがないか確認しましょう。マウントされたISOファイル、ゲストとの共有パスなど、最初のシステムにハードコードされていて2台目のシステムには存在しない可能性のあるものが該当します。こうしたエラーがあると、新しい仮想マシンの追加が失敗します。OVAアーカイブを使う場合はこの部分が不透明ですが、手動で行えば完全な可視性と制御が得られます。

たとえば、2つのシステムで異なる共有フォルダのパスを使用しているとします。関連する宣言を見つける最も簡単な方法は、最初のシステムで使用したことが分かっている具体的なパスを検索することです。記述内容を確認してみましょう。

<SharedFolders>
  <SharedFolder name="SHARED_FOLDER"
    hostPath="G:\Virtual Machines\SHARED FOLDER"
    writable="true"
    autoMount="true"
    autoMountPoint="SHPATH"/>
</SharedFolders>

ここではGドライブ(Windows)に設定されたパスを例に挙げました。しかし、このパスは2台目のシステムには存在しないかもしれませんし、別のドライブレターに割り当てられているかもしれません。その場合は、次のように変更する必要があります。

hostPath="P:\Different path\SHARED FOLDER"

また、2台目のシステムがLinuxの場合は、まったく別の形式になるでしょう。

hostPath="/home/dedoimedo/Shared-folder"

これらのハードコードされたパス以外にも、この機会を利用して他の設定——メモリ割り当て、CPUコア数、特定のグラフィックスアダプターの使用など——を調整することも可能です。ただし、一度に一つの変更にとどめ、仮想マシンを追加してみて、エラーが出ないか確認するのが賢明です。

vboxファイルを必要に応じて修正したら、あとはダブルクリックするだけです。デフォルト設定のWindowsでもLinuxでも、この文字列とファイルタイプはVirtualBoxハイパーバイザーに関連付けられています。XML設定が有効であれば、仮想マシンがリストに表示されます。これで完了です。

ステップ3の代替手法

XMLファイルの編集に自信がない場合は、次の手順を試してください。

  • 仮想マシンをクローンします。
  • (VirtualBox GUIから)設定を開き、ISOファイルや共有フォルダなど、ハードコードされたパスをすべて削除します。
  • 仮想マシンを新しい移行先にコピーします。
  • vboxファイルをダブルクリックして、ハイパーバイザーに追加します。
  • 再度設定を開き、2台目のデバイスに合わせて新しいパスを追加します。
  • 仮想マシンを起動して作業を始めます。

注意点とライセンス上の制限

上記で気づいた方もいるかもしれませんが、私はコピー/移行作業にLinux仮想マシンを使用しました。それもKubuntuです。というのも、このLinuxディストリビューションは、システム数であれ「ライセンス」数であれ、使用に一切の制限がないからです。

一方、WindowsなどのプロプライエタリOSで同じことをすると、ハードウェアの変更によってライセンスが非アクティブ化される可能性があります。あるいは新規購入が必要になるかもしれません。また、単一ホストまたは単一稼働インスタンス向けにライセンス供与されている(有料の)ソフトウェアを使用している場合も考慮が必要です。仮想マシンのコピーを新たに作成することで、ライセンスやソフトウェアの利用規約に問題が生じる恐れがあります。

まとめ

自動化された便利な手順がうまくいかないときは、手動の方法がうまくいくかもしれません。筆者はフォルダコピー+XML編集のアプローチを、複数の仮想マシンで、WindowsとLinux間の双方向に何度もテストしました。結果は非常に良好です。確かに設定を一つ二つ調整する必要はあるかもしれませんが、それさえ済めば後は順調です。ソフトウェアライセンスの制限範囲内であることは前提として。

このチュートリアルが皆さんのお役に立てば幸いです。特定のエラーコードのデバッグは骨の折れる作業です。ほぼすべてのインポートエラーが同じコードを出すためで、回避策も多種多様だからです。手動コピーの手順は堅牢ですが、主に設定ファイル内のハードコードされたパスについて、いくつか考慮すべき点があります。コピー前後のどちらでも編集できるので、新しい仮想マシンをシームレスに追加できるよう事前に確認しておきましょう。以上です。快適な仮想化ライフを!

それでは、また。

  1. PowerCLIでVMFSデータストアの空き容量とオーバーコミットを一括確認する方法

    本記事では、VMware vSphereのデータストアの空き容量を手軽にチェックできるPowerCLIスクリプトを紹介します。このスクリプトは、シンプロビジョニング(可変サイズで動的に拡張される)の仮想ディスク合計サイズがデータストアの総容量を超えている「オーバーコミット」状態のデータストアを検出することもできます。インフラ内に複数のVMwareデータストアが存在する場合でも、このPowerShellスクリプトを活用すれば、空き容量の監視やストレージオーバーコミット(全VMのシンディスクに必要な容量がVMFSデータストアの利用可能容量を上回る状態)の検出が容易になります。VMを作成する前の使用

  2. VirtualBox 5.2 徹底解説 ― 実用性が大きく向上した注目の改良点

    VirtualBoxは数ヶ月ごとにメジャーアップデートがリリースされ、この無料で手軽に使えるハイパーバイザーに、目に見える形での変更や改善が次々と加えられています。筆者は古くからのユーザーであり、これまでもVirtualBoxについて何度も記事を書いてきました。今回、最新バージョンである5.2(正確には5.2.2)をテストする機会を得ましたので、その内容をご紹介します。 公式の機能強化リストを見ると、その充実ぶりがよく分かります。GUIには刷新された「仮想メディアマネージャー」と「ホストネットワークマネージャー」が搭載され、スナップショット管理がより簡単になり、さらにゲストOSの無人インストー