Una vez más, tengo que recurrir a los expertos aquí en SuperUser, ya que mis otras fuentes (principalmente Google ;-)) no resultaron muy útiles ...
Básicamente, me gustaría crear una imagen VHD de un disco físico para archivar / acceder / tal vez incluso montar en una máquina virtual. Ahora, hay docenas de artículos y tutoriales sobre cómo hacerlo en la web, pero ninguno que cumpla exactamente las condiciones que me gustaría lograr:
- Me gustaría que el archivo de destino sea una imagen VHD , ya que Windows 7 puede montarlo de forma nativa, incluso a través de la red y muchos otros programas pueden usarlo (VirtualBox, ...)
- El disco que estoy tratando de imaginar contiene una instalación de Windows XP, por lo que, en teoría, podría usar la
disk2vhd
utilidad, pero me gustaría encontrar una solución que no requiera el arranque de la instalación de Windows XP (es decir, mantener el disco de solo lectura). ) - Por lo tanto, estaba buscando una solución que involucrara algún tipo de sistema en vivo (ejecutándose desde un dispositivo USB o la red)
Sin embargo, todas las soluciones que he encontrado utilizan disk2vhd
o utilizan el dd
comando en Linux, que hace una copia completa del disco (es decir, incluso bloques vacíos) y no genera un archivo VHD. ¿Hay alguna herramienta / programa en Linux que pueda crear directamente un archivo VHD? ¿O es posible convertir una imagen de disco sin formato creada usando dd a un archivo VHD, sin asignar espacio para los bloques vacíos? ¿Cómo procederías?
Como siempre, cualquier consejo o comentario es muy apreciado.
Respuestas:
Para referencia futura, así es como finalmente procedí, con algunos comentarios sobre los diversos problemas o dificultades encontradas:
1. Arranque la máquina con un sistema Linux Live
El primer paso fue arrancar la máquina que contiene el disco a la imagen, usando un sistema Linux en vivo.
2. Imagen del disco usando
dd
y canalizando los datos a través dessh
Luego, copié todo el contenido del disco en una imagen de archivo en mi servidor local usando
dd
y canalizando los datos a través dessh
:Algunos comentarios aquí: este método leerá todo el contenido del disco, por lo que puede llevar mucho tiempo (me tomó 5 horas para un disco de 80 Gb). El cuello de botella no es la red, sino la velocidad de lectura del disco. Antes de iniciar la copia, le aconsejo que verifique los parámetros del BIOS / disco / sistema para asegurarse de que el disco y la placa base funcionen a la velocidad más alta posible (esto se puede verificar usando el comando
hdparm -i
y ejecutando una prueba conhdparm -Tt /dev/hdX
).NOTA:
dd
no muestra el progreso de la operación, pero podemos forzarlo a hacerlo enviando la señal USR1 aldd
PID de proceso desde otro terminal:3. Recuperar el espacio no utilizado
En este punto, la máquina de origen ya no es necesaria y trabajaremos exclusivamente en el servidor de destino (también con Linux). VirtualBox se usará para convertir la imagen de disco sin formato al formato VHD, pero antes de hacerlo, podemos poner a cero los bloques no utilizados, para que VirtualBox no les asigne espacio en el archivo final.
Para hacerlo, monté las imágenes como un dispositivo de bucle invertido:
NOTA: El desplazamiento que indica el comienzo de la partición dentro de la imagen del disco se puede obtener utilizando
parted
el archivo de imagen:NOTA2: El controlador NTFS de kernel de Linux predeterminado proporciona acceso de solo lectura, por lo tanto, es necesario instalar y usar el
ntfs-3g
controlador de espacio de usuario o escribir en el disco generará un error.4. Cree la imagen VHD usando VBoxManage
En este punto, podemos usar las utilidades de VirtualBox para convertir la imagen en bruto en un archivo VHD:
fuente
vdfuse
oqemu-nbd
convirtiéndola en archivos .img (más información: askubuntu.com/questions/19430/… )bs=4M
para acelerar significativamente el proceso.Estaba tratando de hacer exactamente lo mismo que el OP (mientras rescataba una instalación de Windows) y terminé creando una nueva herramienta para ello
ntfsclone2vhd
,.Entonces simplemente harías algo como esto:
fuente
make
copias de Linux) que he encontrado en muchas horas de búsqueda. Bravo por tomar la iniciativa Yirkha!Un enfoque es utilizar un par de tecnologías útiles: VirtualBox y el
ntfsprogs
paquete.Las versiones recientes de VirtualBox le permiten crear archivos de disco duro VHD, mientras
ntfsprogs
proporciona lantfsclone
utilidad. Como su nombre lo indica,ntfsclone
clona los sistemas de archivos NTFS, y creo que lo hace a nivel del sistema de archivos, omitiendo los bloques de disco no utilizados.Entonces, para comenzar, cree una nueva máquina virtual en VirtualBox y aprovisione una nueva unidad de archivo VHD vacía. El disco VHD solo necesita ser tan grande como el tamaño de los datos en uso en el disco físico que desea clonar (bueno, en realidad, hacerlo un poco más grande, para permitir un poco de margen de maniobra).
A continuación, busque un CD en vivo de Linux que contenga el
ntfsprogs
paquete, así como tambiénopenssh-server
. Me gusta el CD de System Rescue para esto, pero casi cualquier CD en vivo basado en Debian o Ubuntu también debería funcionar.Inicie la VM VirtualBox con el CD en vivo de Linux y comience
sshd
dentro de la VM para que pueda ejecutar comandos en ella de forma remota. Particione el disco VHD vacío apropiadamente, usando cualquier herramienta de particionamiento que prefiera (me gusta la viejafdisk
, pero soy algo vieja).Con otra copia del CD en vivo de Linux, inicie la máquina que contiene el disco físico que desea clonar. Supongo que VirtualBox VM y esta máquina son accesibles entre sí a través de la red. En esta máquina, ejecute el siguiente comando (todo en una línea):
dónde:
/dev/sdXX
es el nombre del dispositivo (en la máquina local) de la unidad física que desea clonar, y/dev/sdYY
es el nombre del dispositivo (en la VM) de la unidad de destino VHD.Explicación: El primer
ntfsclone
comando en la tubería extrae una imagen del sistema de archivos NTFS de origen y la envía a través del túnel ssh, mientras que el segundontfsclone
comando recibe la imagen y la restaura en el disco VHD.Una vez que se completa la operación, el archivo VHD debe contener un clon exacto de archivo por archivo del disco físico original (salvo los errores de hardware, como sectores defectuosos, que podrían hacer que el proceso se cancele prematuramente).
Una última cosa que puede hacer es ejecutar un Windows
chkdsk
en el disco VHD, solo para asegurarse de que la clonación no haya presentado ningún problema (no debería haberlo hecho, pero bueno, estoy un poco paranoico sobre estas cosas).fuente
(Sé que esta es una publicación antigua, pero tal vez esto al menos ayudará a otros).
¿Realmente necesitas poder crear la imagen en Linux? Creo que está intentando hacer una copia de seguridad de los discos duros de Windows en VHD. No creo que los sistemas de archivos de Linux puedan encapsularse en un contenedor VHD.
Una utilidad gratuita de SysInternals llamada Disk2vhd creará VHD del sistema operativo Windows XP o más reciente. Esto también debería funcionar para obtener imágenes de unidades montadas en USB.
fuente
También trato de clonar un sistema Linux en vivo recientemente.
Todavía no hay soluciones perfectas. Sugiere 2 formas en que puedes probar:
(1) VMware vConverter (gratis)
Debe instalar vsphere hypervisor (gratis) como destino.
Lo hice hace días, sin suerte para tener éxito. Supongo que instalo vSphere en una VirtualBox.
Ref. Aquí: http://xrubenx.blogspot.com.au/2010/01/vmware-converter-standalone.html
(2) Use este http://www.r1soft.com/tools/linux-hot-copy/
Probaré el hotcopy de R1Soft este fin de semana.
fuente
También puede usar un CD en vivo con Windows. No es oficial de Microsoft pero funciona. Puede ponerlo en una unidad de CD o USB.
fuente