カテゴリー
ソフトウェア

VirtualBox で ‘Cannot register the hard disk…’ エラーが出る

はじめに

このエラーは、「仮想メディアマネージャー」に登録済みのメディアを追加しようとしたときに発生します。これの解消方法を紹介します。

元の VM のディレクトリを別の場所に丸ごと移動した場合

VM VirtualBox から登録済みの VM を削除してから、仮想メディアマネージャーで移動前のディスクを削除します。

登録済み VM の削除

もし、手動で移動した VM が「VM VirutualBox マネージャー」の左側のリストに載っているなら、まずはそれを削除します。「すべてのファイルを削除」、「除去のみ」のどちらでも構いません。

登録済みメディアの削除

今回のエラーの原因は、「VM VirutualBox マネージャー」からは削除されているのに、メディアの情報が残っていることが原因です。メディアの登録情報は「仮想メディアマネージャー」で確認・操作できます。

メニューで「ファイル」→「仮想メディアマネージャー」をクリックして、「仮想メディアマネージャー」を開きます。

タブ「ハードドライブ」で移動済みのドライブに黄色の警告マークがついていると思います。それを削除してください。

元の VM のディレクトリを新しい VM として丸ごとコピーした場合

コピー先のディスクの UUID を手動で変更します。さらに、VM 設定ファイル (.vbox ファイル) の内容も修正します。

vboxmanage コマンドの確認

vboxmanage コマンド (Windows の場合は VBoxManage.exe) にパスが通っていない場合、絶対パスで実行できるよう、コマンドの場所を確認しておきます。

Windows の場合、C:\Program Files\Oracle\VirtualBox\VBoxManage.exe あたりにあると思います。

UUID 変更

下記コマンドを実行します。

cd <メディア(.dvi)がある場所>

(Windows、VirtualBox 4.3.30 の場合)
(変更前の UUID 確認)
> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" showhdinfo <メディアファイル.dvi>
(変更実行)
> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands sethduuid <メディアファイル.dvi>

構成ファイル (.vboxファイル) 編集

手動で仮想メディアの UUID を変更したため、構成ファイル (.vboxファイル) も編集する必要があります。また、VM 自体の UUID も重複が許されませんので、あわせて編集する必要があるでしょう。

関係ないタグ、属性を省略して、修正箇所のみ記載します。「uuid」でファイル内を検索して、編集漏れがないか確認してください。

  • VirtualBox > Machine[uuid]
      コピー元の値を +1 するなど、他のすべての VM と重複しないように。
  • VirtualBox > Machine[name]
      「VM VirtualBox マネージャー」上で、コピー元と区別できるように。
  • VirtualBox > Machine > MediaRegistry > HardDisks > HardDisk[uuid]
      vboxmanage コマンドで変更後の UUID に。
  • VirtualBox > Machine > MediaRegistry > HardDisks > HardDisk[location]
      ディスクのファイル名も変更した場合に。
  • VirtualBox > Machine > StorageControllers > StorageController > AttachedDevice > Image[uuid]
      vboxmanage コマンドで変更後の UUID に。
<VirtualBox>
  <Machine uuid="{07d03d86-30b5-4863-94f6-8ec9c9affd83}" name="CentOS6-devel">
    <MediaRegistry>
      <HardDisks>
        <HardDisk uuid="{50842340-e454-4ed6-ae7e-8d8579cae72a}" location="CentOS6-devel.vdi"/>
      </HardDisks>
    </MediaRegistry>
    <StorageControllers>
      <StorageController>
        <AttachedDevice>
          <Image uuid="{50842340-e454-4ed6-ae7e-8d8579cae72a}"/>
        </AttachedDevice>
      </StorageController>
    </StorageControllers>
  </Machine>
</VirtualBox>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください