« Juego de pinball en Linux | Portada | Thingamablog sigue vivo »
viernes, 10/16/2009
Migrando de VMware a VirtualBox
Llevaba mucho tiempo usando productos gratuitos de VMware (Player y Server), pero ha llegado el momento de cambiar a VirtualBox; básicamente, porque tiene mejor rendimiento y porque además tiene una versión de código abierto que viene incluido en los repositorios de la mayor parte de distribuciones GNU/Linux. Este producto, al parecer, está basado en el fabuloso qEmu que también probé en su momento, que es de uso algo más farragoso y que, a pesar de ser código abierto, tiene un módulo del kernel bajo licencia privativa. Ambos son mejores que VMware, repartiéndose entre ellos los récords en diferentes aspectos, pero puesto que VirtualBox es más fácil de usar y parece que tiene un futuro más prometedor (ahora lo lleva Sun tras adquirir a sus creadores Innotek), me he decantado por él.
AVISO: El procedimiento descrito a continuación está hecho a modo de guía o recopilación de información disponible a lo ancho de la red destinada a usuarios con una experiencia básica. No pretende ser una descripción exhaustiva y, por lo tanto, no aseguro que funcione correctamente ni aunque se siga con exactitud. En estas instrucciones, como en cualesquiera otras, si encuentras un comando que no sabes lo que hace, deberías averiguarlo antes de ejecutarlo. Y por supuesto, deberías tener copia de seguridad de todo lo que toques.
El primer problema es tratar de convertir las antiguas máquinas al nuevo sistema. Esto realmente se reduce a convertir el disco y configurar un nuevo sistema con las mismas características de hardware. Para convertir el disco se puede encontrar mucha información en la red, aunque muchos de los documentos disponibles se basan en el uso de una utilidad de qEmu y en la herramienta "vditool", que ya no está disponible en las nuevas versiones de VirtualBox.
Ahora hay dos opciones, mucho más sencillas: a) Desde la propia interfaz gráfica de VirtualBox se puede crear una máquina virtual nueva y simplemente usar como disco el fichero .vmdk de VMware, o b) convertir el fichero de disco de VMware (.vmdk) al formato de VirtualBox (.vdi). Elijo la última opción, porque en general siempre son preferibles los formatos nativos.
Antes de empezar conviene desinstalar las VMware Tools desde VMware, ya que luego se resistirán a desinstalarse en ejecución desde otro sistema de virtualización.
Para hacer la conversión lo hacemos en dos fases: primero convertimos con una utilidad de qEmu la imagen de disco de VMware a formato crudo, y luego con una utilidad de VirtualBox la convertimos de formato crudo a imagen de VirtualBox. Por lo que he leído con la utilidad de qEmu se podría hacer de una sola vez, pero como dije antes, creo que los formatos y utilidades nativos son la mejor opción con cada programa.
- Para pasar de VMware (.vmdk) a formato crudo (.bin) usamos la orden "qemu-img convert origen.vmdk intermedio.bin".
- Para pasar de formato crudo (.bin) a imagen de VirtualBox (.vdi) usamos la orden "VBoxManage convertdd intermedio.bin destino.vdi".
En este momento podemos abrir VirtualBox y definir una nueva máquina virtual, a la que añadir el nuevo disco. Da igual que las características "físicas virtuales" sean diferentes, ya que el mero cambio de "componentes hardware" hará que Windows proteste y exiga una reactivación, por lo que es un buen momento para aprovechar y aumentar la RAM, por ejemplo.
En este sentido yo necesitaba ampliar el disco duro, para poder actualizar a Vista, que para una instalación en disco de 8GB exige al menos 15GB libres para actualizar... sin comentarios. El problema es que, por lo que yo sé, no se puede ampliar un disco ya definido, por lo que hay que crear uno nuevo del tamaño deseado y volcar la información del viejo al nuevo.
Una vez iniciado Windows en el nuevo entorno virtual, lo primero que dirá es que necesita una reactivación porque "el hardware es significativamente diferente" (...de nuevo sin comentarios). Después el administrador de dispositivos empezará a alertar de que hay hardware nuevo, y no encontrará automáticamente controladores. Cancelaremos todas las ofertas de instalación de los mismos, e iremos directamente a instalar las "Guest Utilities" de VirtualBox desde el menú de "Dispositivos" de la máquina virtual. Esto instalará todo lo necesario salvo, quizás, el controlador de la tarjeta de red. En este caso lo que hay que hacer es probar desde la pantalla de configuración de la máquina virtual a elegir diferentes emulaciones de tarjeta de los cuatro modelos diferentes que hay: alguno suele configurarlo automáticamente Windows (y si no habrá que buscar el controlador correspondiente desde la web del fabricante correspondiente y hacerlo llegar a la máquina virtual por ejemplo mediante directorios compartidos o CD para instalarlo).
Para agrandar el disco lo que vamos a hacer es crear un nuevo volumen de disco del tamaño deseado que conectaremos a la máquina virtual como maestro (o esclavo, da igual, lo importante es tener claro cuál es cuál), y luego desde Knoppix arrancado sobre la propia máquina virtual copiaremos el disco pequeño al grande. Todo este proceso está bien descrito aquí, pero lo resumo a continuación:
- Inicio Knoppix y desde la línea de comandos creo una nueva partición en el disco nuevo idéntica a la del viejo. Lo hago con "fdisk", usando siempre la opción "-u" para que muestre los datos en sectores (ya que tienen la misma medida en discos diferentes, no como los cilindros). Con "fdisk -lu" podemos ver la tabla de particiones del disco viejo, y con "fdisk -u" creamos la partición igual en el nuevo (luego la agrandaremos).
- Copiamos el sector de arranque del viejo al nuevo. Como siempre tiene el mismo tamaño, hacemos «dd if=/dev/hdb of=/dev/hda bs=446 count=1».
- Ahora viene lo más divertido: redimensionar la partición para que ocupe todo el disco. Hay dos formas de hacerlo, la fácil (con parted, QTparted o programa similar) y la "difícil" (usando "ntfs-resize" y "fdisk" desde la línea de comandos). Como podréis imaginar, me gusta más la "difícil", así que manos a la obra: Tenemos una partición y un sistema de ficheros dentro de ella, por lo que tenemos que agrandar las dos cosas: la primera lo hacemos con "fdisk" (siempre con la opción "-u"), borrando la existente y creando una nueva que comience exactamente en el mismo sitio que la anterior y que acabe después o al final del disco. Aunque suene raro "borrar la partición", lo único que estamos haciendo es editar la tabla de particiones, por lo que nuestros datos recién copiados no serán alterados independientemente de que cambiemos la partición, que es una especie de "marco ficticio" que los rodea en el disco. Una vez hecho eso ejecutamos «ntfs-resize -n /dev/hda1» para probar que la operación funcionará, y si no da errores, lo repetimos quitando el "-n" para que no sea una prueba y haga la operación realmente.
Ahora podemos apagar la máquina virtual y desconectar el viejo disco, dejando sólo el nuevo más grande. Y ya estamos listos para reiniciar nuestro Windows con disco duro agrandado, teniendo en cuenta que es normal que en el primer arranque se lance la comprobación de consistencia de discos de Windows ("chkdsk").
Editado: miércoles, 12/02/2009 12:45 AM
Categorías: Informática