web-dev-qa-db-ja.com

仮想ディスクのUUIDを変更する方法

既存のハードディスクを使用して、Oracle VirtualBoxで新しい仮想マシンを作成しようとしています。既存のハードディスクファイル、.vhdファイルを選択しようとすると、UUIDが既に存在するため仮想ハードディスクを使用できないというエラーが表示されます。

そこで私はそのUUIDを変更するために次のコマンドを試してみました。

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd

このエラーが出ます。

構文エラー:無効なUUIDパラメータ

どうすればこれを解決できますか?

121
Chandan Raikar

正しいコマンドは次のとおりです。

VBoxManage internalcommands sethduuid "/home/user/VirtualBox VMs/drupal/drupal.vhd"

仮想ディスクのパスにはスペースが含まれているため、2つのパラメータとして解析されないように、二重引用符で囲む必要があります。

152
Chandan Raikar

以下は私のために働いた:

  1. VBoxManage internalcommands sethduuid "VDI/VMDKファイル"を2回実行します(初めては単に便利にUUIDを生成するためのものです。代わりに他のUUID生成方法を使用することもできます)。

  2. 。vboxファイルをテキストエディタでを開く

  3. Machine uuid = "{...}"にあるUUIDを、最初にsethduuidを実行したときに取得したUUIDに置き換えます。

  4. HardDisk uuid = "{...}"およびImage uuid = "{}"(最後に向かって)にあるUUIDを、あなたが手に入れたときに得たUUIDに置き換えます。二度目のsethduuidを走った

28
borchvm

あなたは問題を解決したけれども、私はちょうど同様の問題を抱える他の何人かのためにここに理由を掲示する。

その理由は、パス(ディレクトリ名VirtualBox VMs)にコマンドを区切るスペースがあるためです。だからエラーが表示されます。

10
Java Xu

私はMAC OSに関する回答をウェブで検索したので、解決策は

cd /Applications/VirtualBox.app/Contents/Resources/VirtualBoxVM.app/Contents/MacOS/

VBoxManage internalcommands sethduuid "full/path/to/vdi"
10
Al3x

あるマシンから別のマシンにディスク(vmdkファイル)をコピーし、そのコピー内のディスクのUUIDを変更する必要がある場合は、別の回答で示唆されているようにマシンのUUIDを変更する必要はありません。

あなたがする必要があるのは、ディスクイメージに新しいUUIDを割り当てることです。

VBoxManage internalcommands sethduuid your-box-disk2.vmdk
UUID changed to: 5d34479f-5597-4b78-a1fa-94e200d16bbb

次に、*。vboxファイルの2か所で古いUUIDを新しく生成したものと置き換えます。

<MediaRegistry>
  <HardDisks>
    <HardDisk uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}" location="box-disk2.vmdk" format="VMDK" type="Normal"/>
  </HardDisks>

とで

    <AttachedDevice type="HardDisk" hotpluggable="false" port="0" device="0">
      <Image uuid="{5d34479f-5597-4b78-a1fa-94e200d16bbb}"/>
    </AttachedDevice>

それはVirtualBox verのために私のために働いた。 5.1.8がMac OS X El Capitanで動作している。

8
Oleg Gryb

コマンドは、フォルダ名の1つ、つまり 'VirtualBox VM'にスペースがあるため失敗します。

VBoxManage internalcommands sethduuid /home/user/VirtualBox VMs/drupal/drupal.vhd

フォルダ名またはファイル名にスペースがない場合は、引用符を付けなくてもコマンドは機能します。 VirtualBox VMをVBoxVMに変更した後

VBoxManage internalcommands sethduuid /home/user/VBoxVMs/drupal/drupal.vhd
5
januarvs

この質問は古いものですが、Windowsシステムの仮想HDD上のUUIDを変更すると、Windowsはそれを非アクティブマシンとして扱い(ディスクの変更に気付くので)、再アクティブ化を要求します。

3
aniston

cmd.exe内の、Windows x64用の@ Al3xと同じソリューション。

cd %programfiles%\Oracle\VirtualBox

VBoxManage internalcommands sethduuid "full/path/to/.vdi"

これはディスクのUUIDをランダム化します。ヒント:Shiftキーを押しながら.vdiファイルを右クリックし、「パスとしてコピー」を選択して"full/path/to/.vdi"を取得し、cmd.exeでクイック編集を有効にしてから、右クリックして貼り付けます。

3
masterxilo

オリジナルの解決策に代わるもう1つの方法は、スペースの前にエスケープ文字\を使用することです。

VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd
2
Whitaker