Cómo usar el comando DD para copiar archivos VHD al 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 le permite ejecutar Windows, OS X, MS-DOS, FreeBSD, OpenBSD, OS/2 o incluso otras versiones de Linux dentro de su distribución de Linux. Estos archivos no te permiten escribir directamente su contenido en un disco físico mediante el comando dd que te permite hacer lo mismo con un ISO, pero hay una forma de hacerlo. Mientras que algunas guías requieren que conviertas el archivo VHD a una ISO, no tendrás que hacerlo si estás ejecutando VirtualBox en cualquier versión moderna de Linux. Los usuarios de QEMU también tienen una salida, aunque implica más juego.

Necesitarás asegurarte de que ninguno de los discos o particiones con los que vas a trabajar son de los que arrancas. Acabamos de usar un trozo de memoria NAND particionada para este ejemplo, pero puede que quieras usar un DVD en vivo o un arranque USB si de otra manera no podrías hacerlo. Independientemente de la forma en que hayas arrancado la máquina en cuestión, inicia tu programa de terminal ya sea manteniendo pulsadas las teclas Ctrl, Alt y T, buscándolo en el Dash de Ubuntu o abriéndolo desde los submenús de Herramientas del Sistema en Xfce4 o LXDE.

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

La manera más fácil de hacerlo es usando una instalación tradicional de VirtualBox. Asegúrese primero de haber hecho una copia de seguridad de todos los datos que le preocupa perder porque va a destruir cualquier dato del hardware físico de destino mientras que también podría terminar haciendo algo con el archivo VHD o VHDX en el proceso. Esto va para el otro método también, así como cualquier cosa que implique comandos que sean así de destructivos.

También te puede interesar:  Arreglo: Windows no puede encontrar una imagen del sistema en este ordenador

Una vez que estés seguro de que todo está seguro y de que el disco de destino está desmontado pero sigue conectado a la máquina, digamos un disco duro externo que todavía tienes enchufado pero que no está montado o que incluso puede estar crudo ya que perderás todo en él en el proceso, ejecuta VBoxManage clonehd freeBSD.VHDX -formato RAW freeBSD.RAW mientras reemplazas freeBSD.VHDX con tu 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 este comando termine, ejecuta sudo dd if=freeBSD.RAW of=/dev/sde , reemplazando el nombre del archivo RAW con el RAW que acabas de crear y el dispositivo de bloqueo sde con el dispositivo que realmente te interesa. Si no estás seguro, siempre puedes ejecutar sudo fdisk -l para asegurarte de que sabes el nombre de la partición correcta. Al igual que con el uso de dd para cualquier otra cosa, no querrás escribir en el dispositivo equivocado.

Puede que se produzca un error sobre la falta de espacio en el dispositivo, como si se intentara escribir un archivo grande en un dispositivo más pequeño, pero esto no causara problemas en las pruebas. Parece que este proceso añade ceros adicionales. De lo contrario, has podido copiar el disco virtual a un disco físico en sólo dos pasos con un mínimo de tonterías.

Método 2: Con el disco QEMU Dispositivo de Bloqueo de Red de Dispositivos Comando de Servidor

Los usuarios que sólo tienen acceso al sistema de virtualización del Emulador Rápido (QEMU) tendrán que lidiar con un procedimiento un poco más complicado que los que tienen acceso al comando VBoxManage. En la línea de comandos, ejecute sudo modprobe nbd seguido de qemu-nbd -r -c /dev/ndb0 -f vpc ourTest.vhd , con el nombre de archivo cambiado para reflejar el nombre de archivo real con el que está trabajando. Es posible que necesite sudo para ejecutar qemu-nbd, dependiendo de cómo haya configurado su instalación. Si estás copiando los comandos desde aquí y pegándolos, entonces asegúrate de cambiarlos antes de ejecutarlos. En la mayoría de los casos sólo tendrás el dispositivo ndb0 para preocuparte aquí, por lo que no deberías tener ningún problema allí.

También te puede interesar:  Cómo crear resoluciones personalizadas en Windows 7, 8 o 10

Una vez hecho esto, puedes escribir la partición con qemu-nbd -P 2 -r -c /dev/nbd2 -f vpc ourTest.vhd seguido de sudo ddrescure -v -f /dev/nbd2 /dev/sde2 , pero recuerda reemplazar los archivos del dispositivo con los que realmente te interesa usar. Si está copiando y pegando estos archivos en su propia terminal, asegúrese de reemplazar esos nombres de archivos y números de partición con los que está tratando de escribir. Nuestro dispositivo /dev/sde no era más que una tarjeta SDHC usada que estábamos usando para probar esto de forma segura sin dañar nada. Puede que necesites sudo para ejecutar qemu-nbd, pero no deberías necesitarlo. De igual manera, puede que tengas que eliminar los números de partición dependiendo de tu configuración. El proceso de QEMU no es tan intuitivo por estas razones.

Los usuarios de Hyper-V podrían tener una imagen VHDX en lugar de un archivo VHD. Si este es el caso, entonces tendrá que ejecutar qemu-nbd -c /dev/nbd0 -f VHDX ourTest.vhd mientras reemplaza el nombre del archivo una vez más. Si bien este formato fue una adición a Windows Server 2012 con el fin de añadir una mayor capacidad de almacenamiento a las máquinas virtualizadas, cada vez más usuarios de Linux están recurriendo 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 esto se ejecute, los usuarios que trabajen con imágenes VHDX deberán ejecutar sudo ddrescue -v -f /dev/nbd2 /dev/sde2 , de nuevo reemplazando los archivos anteriores. De lo contrario, todo el mundo con todo tipo de imágenes VirtualBox puede usar qemu-nbd -P 2 -r -c /dev/nbd2 -f vpc ourTest.vhd para montar la partición en cuestión como si fuera cualquier disco antiguo. Necesitarás usar sudo mount /dev/nbd2 /cdrom o sudo mount /dev/nbd2 /mnt para montarla. Asegúrate de que no tienes nada más montado en los directorios /cdrom o /mnt antes de probarlo.

También te puede interesar:  FIX: Faltan los pasos para arreglar el NTLDR

Método 3: Desmontar y luego desconectar el archivo

Para desmontar la imagen, simplemente hay que usar sudo umount /mnt o sudo umount /cdrom para separarla. El propio núcleo de Linux, después de todo, estaba ocupado tratándolo como si fuera cualquier otro volumen.

Sin embargo, todavía tendrás que desconectarlo del sistema QEMU, así que escribe qemu-ndb -d /dev/nbd2 para desconectarlo.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.