¿Cómo cambio el UUID de un disco virtual?

131

Estoy tratando de crear una nueva máquina virtual con Oracle VirtualBox, usando un disco duro ya existente. Cuando intento seleccionar el archivo de disco duro existente, un archivo .vhd, muestra un error que dice que el disco duro virtual no se puede usar porque el UUID ya existe.

Así que probé el siguiente comando para cambiar su UUID.

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

Me sale este error.

Error de sintaxis: parámetro UUID no válido

¿Cómo puedo resolver esto?

CAYO
fuente
1
Las rutas que tienen caracteres de espacio deben estar entre comillas dobles, como ya lo ha descubierto.
AB

Respuestas:

171

El comando correcto es el siguiente.

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

La ruta del disco virtual contiene un espacio, por lo que debe estar entre comillas dobles para evitar que se analice como dos parámetros.

CAYO
fuente
25
Realmente deseo que VirtualBox tenga una interfaz de usuario o una ventana que nos permita cambiar esto
fedmich
1
Esto debe ser citado debido al espacio en la ruta del archivo.
Chris Stryczynski
Sería bueno que la interfaz de usuario de VirtualBox le diera la opción de generar un nuevo UUID cuando intentara abrir un disco que ya se conoce. Honestamente, realmente no uso el administrador de discos para nada, prefiero que VirtualBox solo trate los discos virtuales como rutas de archivos en lugar de tratarlos como recursos para administrar y rastrear.
jrh
34

Lo siguiente funcionó para mí:

  1. ejecute el comando VBoxManage internal sethduuid "VDI / VMDK file" dos veces (la primera vez es solo para generar convenientemente un UUID, puede usar cualquier otro método de generación de UUID)

  2. abra el archivo .vbox en un editor de texto

  3. reemplace el UUID encontrado en Machine uuid = "{...}" con el UUID que obtuvo cuando ejecutó sethduuid la primera vez

  4. reemplace el UUID encontrado en el disco duro uuid = "{...}" y en la imagen uuid = "{}" (hacia el final) con el UUID que obtuvo cuando ejecutó sethduuid por segunda vez

borchvm
fuente
1
Creo que esta respuesta es más útil para cualquier persona (incluido yo) que quiera copiar la máquina virtual.
cbuchart el
1
Solo me pregunto: ¿por qué necesita cambiar la máquina uuid? Si solo quiero copiar el disco vmdk de una máquina a otra, no lo necesito, ¿verdad?
Oleg Gryb
1
Debe
1
Funcionó perfecto en mi caso, ¡gracias! No necesitaba ajustar el UUID de la máquina.
Benco
1
@FabrizioBertoglio esperamos que tenga su respuesta, pero debe detener los servicios de vbox de cualquier tipo para editar esos archivos; de lo contrario, obtendrá el mismo ole. También asegúrese de que su UUID para disco duro SATA <dispositivos conectados> en la parte inferior del archivo de configuración coincida con el UUID para el disco duro en la sección HardDrive en la parte superior del archivo de configuración. Antes de hacer nada de esto, también querrá agregar su <Hardware UUID = myMachineUUID>.
Ken
12

Si ha copiado un disco (archivo vmdk) de una máquina a otra y necesita cambiar el UUID de un disco en la copia, no necesita cambiar el UUID de la máquina como se sugirió en otra respuesta.

Todo lo que necesita hacer es asignar un nuevo UUID a la imagen del disco:

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

y luego reemplace el UUID antiguo con el recién generado en dos lugares en su archivo * .vbox

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

y en

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

Funcionó para mí para VirtualBox ver. 5.1.8 ejecutándose en Mac OS X El Capitan.

Oleg Gryb
fuente
Probablemente tengas razón. Seguí sus instrucciones y todavía tengo el error Error al consultar UUID, incluso si el disco duro se muestra correctamente tanto file -> Virtual Media Manageren la configuración de la máquina como en el UUID correcto
Fabrizio Bertoglio
No estoy seguro de cuál es tu caso. Lo que describí anteriormente es exactamente lo que hice y funcionó para mí en Mac con VB 5.1.8
Oleg Gryb
He resuelto el problema con los siguientes pasos: 1. re-installing virtual box using synaptic package managerluego se solucionó el problema 2. In the virtual box machine configuration, I did not disable the Floppy disk and EFI Setting. I kept them enabled..
Fabrizio Bertoglio
@OlegGryb Puede depender del sistema operativo host y también del sistema operativo invitado.
Ken
11

Aunque ha resuelto el problema, acabo de publicar la razón aquí para algunos otros con el problema similar.

La razón es que hay un espacio en su ruta (nombre del directorio VirtualBox VMs) que separará el comando. Entonces aparece el error.

Java Xu
fuente
11

He buscado en la web una respuesta con respecto a MAC OS, así que ... la solución es

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

VBoxManage internalcommands sethduuid "full/path/to/vdi"
al3x2ndru
fuente
1
Super servicial !!
Addo Solutions
6

El comando falla porque tiene espacio en uno de los nombres de carpeta, es decir, 'VirtualBox VMs.

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

Si no hay espacio en el nombre de la carpeta o el nombre del archivo, el comando funcionará incluso sin citarlo, por ejemplo, después de cambiar 'VirtualBox VMs' a 'VBoxVMs'

VBoxManage internalcommands sethduuid /home/user/VBoxVMs/drupal/drupal.vhd
januarvs
fuente
4

A pesar de que esta pregunta es antigua, tenga en cuenta que cambiar un UUID en un HDD virtual en un sistema Windows hará que Windows lo trate como una máquina no activada (ya que nota el cambio de disco) y solicitará una reactivación.

aniston
fuente
4

Misma solución que @ Al3x para Windows x64, en cmd.exe:

cd %programfiles%\Oracle\VirtualBox

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

Esto aleatoriza el UUID del disco. Consejo profesional: haga clic derecho en el archivo .vdi mientras mantiene presionada la tecla Mayús y seleccione "Copiar como ruta" para obtener "full/path/to/.vdi"y habilitar la edición rápida en cmd.exe, luego haga clic derecho para pegar.

masterxilo
fuente
2

Otra alternativa a su solución original sería usar el carácter de escape \antes del espacio:

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