VirtualBoxでUbuntuをインストールするときにvhdファイルを使いまわすとエラーになる

2013/09/10

vhdファイルを使いまわす方法

VirtualBoxにUbuntuを構築するときにvhdファイルを使っています。
vhdファイルだとGuestAdditionsを使ったシームレスモードが有効になるんですよね。
(僕の環境ではisoファイルだと何やってもシームレスモードが有効になりませんでしたorz)

今回vhdファイルを使いまわす時にハマった内容と解決策をご紹介します。

【ハマった内容】 ダウンロードした「ubuntu-ja-12.04-desktop-i386-vhd.zip」を解凍し、vhdファイルをそれぞれコピーし、環境A、環境Bを作ろうと思いました。
環境Aは問題なく環境構築完了!
しかし、環境Bの構築中にエラー!
エラーの出現はVirtualBoxでの新規仮想マシン構築中にありました。
「仮想ハードディスク」で「既存のハードディスクを使用」を選択後、環境B用のvhdファイルを選択したとき、エラーが発生したのです。


"ハードディスク D:\VirtualBox\Ubuntu_COMMON\ubuntu-ja-12.04-desktop-i386.vhd"のオープンに失敗しました。

Cannot register the hard disk 'D:\VirtualBox\Ubuntu_COMMON\ubuntu-ja-12.04-desktop-i386.vhd' {ae5e02ac-1e18-4780-884d-d2f27b998c22} because a hard disk 'D:\VirtualBox\Ubuntu_PHP\ubuntu-ja-12.04-desktop-i386.vhd' with UUID {ae5e02ac-1e18-4780-884d-d2f27b998c22} already exists.

終了コード : E_INVALIDARG (0x80070057)
コンポーネント: VirtualBox
インターフェース: IVirtualBox {c28be65f-1a8f-43b4-81f1-eb60cb516e66}

「いやいや、環境A用のvhdファイルと分けているから大丈夫でしょ。」と思っていましたが、ダメみたいです。それは、「VirtualBoxが、ハードディスクイメージを一意に管理しており、重複するハードディスクイメージは登録できません」ということみたいです。
(参考元)
すなわち、コピー元のvhdファイルに一意のUUIDが振られているため、コピーしたvhdファイルも同じUUIDになるのですね。

【解決策】 コピーしたvhdファイルのUUIDを変えてあげれば万事OK!
まずはコマンドプロンプトを起動し、VirtualBoxのVBoxManage.exeがあるフォルダに移動。
cd /d D:\VirtualBox

そしてUUIDを変更するコマンドを実行。
VBoxManage.exe -nologo internalcommands sethduuid D:\VirtualBox\XXXX\ubuntu-ja-12.04-desktop-i386.vhd

  • このエントリーをはてなブックマークに追加
Related

FullCalendarでGoogleカレンダーのようなUIを実装

jQueryプラグインFullCalendarのサンプル 概要 FullCalendarを使用して、GoogleカレンダーのようなUIを実装する使用例を...

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びているフレームワークです。 処理速度が遅いなどありますが、かなり使い安く拡...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームで入力されたIPアドレスが正当な文字列か判定するためのバリデーション処理を実装します。 基本的...

rbenv環境でRuby on Railsのアプリケーションを一瞬で自動生成

アプリケーション構築時に最初に行う手順 概要 アプリケーションを作成するまでの手順を記載しています。 rbenvなどの環境が設定済と仮定して話を進めま...

Rails devise・authority・rolifyで権限付きの認証機能

devise・authority・rolify 概要 3つのGemを使用して、権限付き認証機能を実装します。 gem インストール Gemfile ...

Rails devise で複数モデルの認証機能を実装

Rails devise で複数モデルを管理 概要 rails のログイン認証 Gem「devise」のインストール・設定方法を紹介します。 よく「d...
トップへ戻る