Cómo usar el comando DD para copiar archivos VHD a un disco duro físico

Los archivos de disco duro virtual (VHD) son archivos gigantes que emulan el uso de medios físicos en VirtualBox y algunos otros emuladores virtuales x86/x86_64. Esto te permite correr WindowsOS X, MS-DOS, FreeBSD, OpenBSD, OS/2 o incluso otras versiones de Linux dentro de tu Linux distribución. Estos archivos no le permiten escribir directamente su contenido en un disco físico a través del comando dd que le permite hacer lo mismo con un ISO, pero hay una manera de hacerlo. Si bien algunas guías requieren que convierta el archivo VHD a un ISO, no tendrá que hacerlo si está ejecutando VirtualBox en cualquier versión moderna de Linux. Los usuarios de QEMU también tienen una salida, aunque implica jugar más.

Deberá asegurarse de que ninguna de las unidades o particiones con las que va a trabajar sea desde la que arranca. Solo usamos una pieza de memoria NAND particionada para esto example, pero es posible que desee usar un DVD en vivo o un arranque USB si de otra manera no podría hacerlo. Independientemente de la forma en que inició la máquina en cuestión, inicie su programa de terminal manteniendo presionadas las teclas Ctrl, Alt y T, buscándolo en la Ubuntu Dash o abriéndolo desde los submenús de Herramientas del sistema en Xfce4 o LXDE.

Método 1: usar VBoxManage desde el símbolo del sistema

Con mucho, la forma más fácil de hacer esto es usando un tradicional VirtualBox instalación. Primero, asegúrese de haber realizado una copia de seguridad de todos los datos que le preocupa perder porque destruirá cualquier dato en el hardware físico del destino, mientras que también podría terminar haciéndole algo al archivo VHD o VHDX en el proceso. Esto también se aplica al otro método, así como a cualquier cosa que involucre comandos que sean tan destructivos.

Una vez que esté seguro de que todo es seguro y de que la unidad de destino está desmontada pero aún conectada a la máquina, diga un disco duro externo que todavía tiene conectado pero que no está montado o que incluso puede estar sin procesar, ya que perderá todo lo que contiene. en el proceso, ejecutarVBoxManage clonehd freeBSD.VHDX – formato RAW freeBSD.RAWmientras reemplaza freeBSD.VHDX con su disco duro virtual. Teníamos un archivo de disco duro virtual con una instalación algo moderada de FreeBSD con fines de prueba, de ahí el nombre.

Tan pronto como termine este comando, ejecutesudo dd if=freeBSD.RAW de=/dev/sdereemplazando el nombre del archivo RAW con el RAW que acaba de crear y el dispositivo de bloque sde con el dispositivo que realmente le interesa. Si no está seguro, siempre puede ejecutarsudo fdisk -lpara asegurarse de que conoce el nombre de partición correcto. Al igual que con el uso de dd para cualquier otra cosa, no desea escribir en el dispositivo incorrecto.

Es posible que reciba un error que indique que no queda espacio en el dispositivo, como si intentara escribir un archivo grande en un dispositivo más pequeño, pero esto no causó problemas en las pruebas. Parece que este proceso agrega ceros adicionales. De lo contrario, ha podido copiar el disco virtual a un disco físico en solo dos pasos con un mínimo de tonterías.

Método 2: con el comando QEMU Disk Network Block Device Server

Los usuarios que solo tienen acceso al sistema de virtualización Quick Emulator (QEMU) tendrán que lidiar con un procedimiento un poco más complicado que aquellos que tienen acceso al comando VBoxManage. En el símbolo del sistema, ejecutesudo modprobe nbdseguido porqemu-nbd -r -c /dev/ndb0 -f vpc nuestraPrueba.vhd, con el nombre de archivo cambiado para reflejar el nombre de archivo real con el que está trabajando. Tu puedes necesitar sudo para ejecutar qemu-nbd, dependiendo de cómo haya configurado su instalación. Si está copiando los comandos desde aquí y pegándolos, asegúrese de cambiarlos antes de ejecutarlos. En la mayoría de los casos, solo tendrá que preocuparse por el dispositivo ndb0 aquí, por lo que no debería tener ningún problema allí.

Una vez hecho esto, puede escribir la partición conqemu-nbd -P 2 -r -c /dev/nbd2 -f vpc nuestraPrueba.vhdseguido porsudo ddrescure -v -f /dev/nbd2 /dev/sde2, pero recuerde reemplazar los archivos del dispositivo con los que realmente le interese usar. Si está copiando y pegando estos en su propio terminal, asegúrese de reemplazar esos nombres de archivo y números de partición con los que está tratando de escribir. Nuestro dispositivo /dev/sde era simplemente una tarjeta SDHC usada que estábamos usando para probar esto de manera segura sin dañar nada. Tu puedes necesitar sudo para ejecutar qemu-nbd, pero no debería necesitarlo. Del mismo modo, es posible que deba eliminar los números de partición según su configuración. El proceso QEMU no es tan intuitivo por estas razones.

Los usuarios de Hyper-V pueden tener una imagen VHDX en lugar de un archivo VHD. Si este es el caso, entonces deberá ejecutarqemu-nbd -c /dev/nbd0 -f VHDX nuestraPrueba.vhdmientras reemplaza el nombre del archivo una vez más. Si bien este formato fue una adición a Windows Server 2012 para agregar mayor capacidad de almacenamiento a las máquinas virtualizadas, cada vez más Linux los usuarios recurren a él para escapar del límite de 2 TB que tiene VHD. De lo contrario, estas instrucciones deberían funcionar independientemente del tamaño real del archivo en cuestión. La herramienta GNU ddrescue debería funcionar como dd, aunque se asegura de copiar primero los mejores bloques.

Una vez que se ejecute, los usuarios que trabajen con imágenes VHDX deberán ejecutarsudo ddrescue -v -f /dev/nbd2 /dev/sde2, reemplazando nuevamente los archivos arriba. De lo contrario, todos con todo tipo de VirtualBox las imágenes pueden usarqemu-nbd -P 2 -r -c /dev/nbd2 -f vpc nuestraPrueba.vhdpara montar la partición en cuestión como si fuera un disco cualquiera. Tendrás que usarsudo montar /dev/nbd2 /cdromohsudo montar /dev/nbd2 /mntpara montarlo Asegúrese de que no tiene nada más montado en los directorios /cdrom o /mnt antes de intentarlo.

Método 3: Desmontar y luego desconectar el archivo

Para desmontar la imagen, simplemente necesita usarsudo desmontar /mntohsudo desmontar /cdrompara separarlo. El Linux kernel mismo, después de todo, estaba ocupado tratándolo como si fuera cualquier otro volumen.

Sin embargo, aún deberá desconectarlo del sistema QEMU, así que escribaqemu-ndb -d /dev/nbd2para desconectarlo.

Leer siguiente

  • No hay nuevos sensores en Apple Mire la serie 8, sin embargo, las especificaciones físicas pueden ser…
  • Consola GPD Win 4 con Ryzen 7 6800U de AMD y un teclado físico en…
  • Error de memoria física insuficiente en VMware
  • El juego de Gotham Knights se filtró cuando las copias físicas salen a la venta temprano

Actualizaciones del boletín

Ingrese su dirección de correo electrónico a continuación para suscribirse a nuestro boletín