仮想ディスクのUUIDを変更するにはどうすればよいですか?


131

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

そこで、次のコマンドを実行してUUIDを変更しました。

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

このエラーが発生します。

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

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


1
すでに発見したように、スペース文字を含むパスは二重引用符で囲む必要があります。
AB

回答:


171

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

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

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


25
私は本当にVirtualBoxは、いくつかのUIや、私たちはこれを変更できるようにするウィンドウを持つことになりたい
fedmich

1
ファイルパスのスペースのため、これは引用する必要があります。
Chris Stryczynski

既知のディスクを開こうとしたときに、VirtualBox UIが新しいUUIDを生成するオプションを提供してくれると便利です。正直なところ、実際にはディスクマネージャーを使用していません。VirtualBoxは、管理および追跡するリソースのように仮想ディスクを扱うのではなく、仮想ディスクをファイルパスとして扱うだけです。
jrh

34

以下は私のために働きました:

  1. 実行VBoxManageのinternalcommandsは「VDI / VMDKファイル」sethduuidを2回(最初の時間は、便利なUUIDを生成するだけで、あなたの代わりに、他のUUIDの生成方法を使用することができます)

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

  3. UUIDがで見つかった置き換えUUID =「{...}」マシンあなたはsethduuid実行したときにUUIDであなたが得た最初の時間

  4. UUIDがで見つかっ置き換えるハードディスクUUID =「{...}」とではイメージのUUID =「{}」あなたが二度目にsethduuid実行したときに得たUUIDと(終わりに向かって)


1
この答えは、仮想マシンをコピーしたい人(私を含む)にとってより役立つと思います。
cbuchart 2016

1
ただ疑問に思っています-なぜMachine uuidを変更する必要があったのですか?あるマシンから別のマシンにvmdkディスクをコピーしたいだけの場合、それは必要ありません。
Oleg Gryb 2016

1
同じマシンに仮想ディスクをコピーする場合は、マシンのUUIDを変更する必要があります
borchvm

1
私の場合は完璧に働きました-ありがとう!Machine UUIDを調整する必要はありませんでした。
Benco、

1
@FabrizioBertoglioうまくいけばあなたの答えがあります-しかし、それらのファイルを編集するためにはあらゆる種類のvboxサービスを停止する必要があります-そうでなければ同じoleと同じoleを取得します。また、構成ファイルの下部にあるSATA HardDisk <接続されたデバイス>のUUIDが、構成ファイルの上部にあるHardDriveセクションのハードディスクのUUIDと一致していることを確認してください。これを行う前に、<Hardware UUID = myMachineUUID>も追加する必要があります。
Ken

12

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

新しいUUIDをディスクイメージに割り当てるだけです。

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

次に、古いUUIDを* .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で実行されています。


あなたはおそらく正しいです。私はあなたの指示に従いfile -> Virtual Media Managerましたが、正しいUUIDでマシン設定とマシン設定の両方にハードディスクが正しく表示されても、UUIDのクエリに失敗しましたというエラーが表示されます
Fabrizio Bertoglio

あなたのケースが何であるかはわかりません。上記で説明したのはまさに私がしたことであり、VB 5.1.8を搭載したMacで動作しました
Oleg Gryb

次の手順で問題を解決しました。1. re-installing virtual box using synaptic package managerその後2. In the virtual box machine configuration, I did not disable the Floppy disk and EFI Setting. I kept them enabled.、問題は修正されました。
Fabrizio Bertoglio 2017

@OlegGrybホストOSとゲストOSによって異なる場合があります。
ケン

11

あなたは問題を解決しましたが、同様の問題を持つ他の人たちに理由をここに投稿します。

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


11

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

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

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

1
超役立つ!!
Addoソリューション2017

6

フォルダー名のいずれかにスペースがあるため、コマンドは失敗します(例: 'VirtualBox VMs)。

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

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

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

4

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


4

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

cd %programfiles%\Oracle\VirtualBox

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

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


2

元の解決策の別の方法\は、スペースの前にエスケープ文字を使用することです。

VBoxManage internalcommands sethduuid /home/user/VirtualBox\ VMs/drupal/drupal.vhd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.