Sabemos como registrar discos duros virtuales que vienen de otros servidores de virtualización, también hemos creado discos duros desde cero y hemos hecho instalaciones directamente desde el servidor de virtualización.
Pero ¿Cómo borramos o desregistramos un disco duro que hemos registrado en nuestro sistema VirtualBox?, la respuesta a esta pregunta es poco elegante pero efectiva.
VirtualBox es sus versiones más actuales dispone un comando muy útil para la administración "VBoxManager list < vms |runningvms |ostypes |hostdvds |hostfloppies |hostifs |hostinfo |hddbackends |hdds |dvds |floppies |usbhost |usbfilters |systemproperties >" con este comando podremos ver entre otras cosas los identificadores de las máquinas virtuales que están corriendo, las máquinas virtuales registradas o el listado de discos duros registrados.
Disponemos también de comandos para parar y arrancar máquinas virtuales, así como para borrar máquinas virtuales, pero no tenemos comandos para borrar o desregistrar discos duros virtuales.
VirtualBox tiene un fichero .xml donde almacena toda esta información. Este se encuentra en el home del usuario donde se ha instalado VirtualBox en mi caso "/root/.VirtualBox/VirtualBox.xml".
En esto fichero no te costará encontrar la linea que corresponden al disco duro virtual que deseas borrar, ya que en esa misma linea vienen definida la ruta donde se encuentra el disco duro virtual que registraste. Si quitas esta linea ya no tendrás registrado tu disco duro y cuando lo borres con un "rm" no tendrás rastro de él.
Pero ten cuidado de no borrar un disco que esté asociado a una máquina virtual, si lo haces cuando intentes arrancar la máquina virtual está lanzará un error al no encontrar el disco.
Buscar este blog
martes, 5 de mayo de 2009
Problemas al intentar borrar una máquina virtual de VirtualBox
Es muy posible que cuando intentas borrar una máquina virtual de VirtualBox tengas este error.
Esto pasa cuando intentas borrar una máquina virtual que está asociada a un disco duro virtual. La verdad que los desarrolladores de VirtualBox podrían poner un modificador --force para forzar el borrado incluso de los discos duros asociados, pero mientras lo hacen y no hay que hacerlo poco a poco.
Primero tendrás que quitar la relación entre máquina virtual y disco duro, es decir, dejar la máquina virtual sin disco duros asociados. En mi caso solo tenía un disco duro, pero podría darse el caso de tener más de un disco asociado a la máquina virtual.
Una vez desconectado el disco de la máquina virtual, podrás borrar la máquina sin problemas. Pero recuerda que aún tienes el disco duro registrado en el sistema de máquinas virtuales VirtualBox.
# VBoxManage unregistervm Win2003Server -delete
VirtualBox Command Line Management Interface Version 2.1.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
[!] FAILED calling a->virtualBox->UnregisterMachine(uuid, machine.asOutParam()) at line 791!
[!] Primary RC = VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) - Current object state prohibits operation
[!] Full error info present: true , basic error info present: true
[!] Result Code = VBOX_E_INVALID_OBJECT_STATE (0x80BB0007) - Current object state prohibits operation
[!] Text = Cannot unregister the machine 'Win2003Server' because it has 1 hard disks attached
[!] Component = Machine, Interface: IMachine, {ea6fb7ea-1993-4642-b113-f29eb39e0df0}
[!] Callee = IVirtualBox, {339abca2-f47a-4302-87f5-7bc324e6bbde}
Esto pasa cuando intentas borrar una máquina virtual que está asociada a un disco duro virtual. La verdad que los desarrolladores de VirtualBox podrían poner un modificador --force para forzar el borrado incluso de los discos duros asociados, pero mientras lo hacen y no hay que hacerlo poco a poco.
Primero tendrás que quitar la relación entre máquina virtual y disco duro, es decir, dejar la máquina virtual sin disco duros asociados. En mi caso solo tenía un disco duro, pero podría darse el caso de tener más de un disco asociado a la máquina virtual.
# VBoxManage modifyvm Win2003Server -hda none
VirtualBox Command Line Management Interface Version 2.1.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
Una vez desconectado el disco de la máquina virtual, podrás borrar la máquina sin problemas. Pero recuerda que aún tienes el disco duro registrado en el sistema de máquinas virtuales VirtualBox.
# VBoxManage unregistervm Win2003Server -delete
VirtualBox Command Line Management Interface Version 2.1.4
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.
miércoles, 25 de febrero de 2009
Liberar espacio en VDIs de VirtualBox
Ya hemos visto como instalar VirtualBox y como crear máquinas virtuales, estas máquinas virtuales las instalábamos en discos virtuales (con extensión .vdi) que creamos con un tamaño máximo (VBoxManage createvdi -filename Disco1.vdi -size 30000 -register).
Podemos observar que el tamaño del fichero que contiene el disco virtual va creciendo conforma vamos instalando cosas en la máquina virtual. Pero ¿qué pasa cuando borro cosas de mi máquina virtual? lamentablemente el fichero .vdi continua ocupando el mismo espacio. Esto puede ser perjudicial para nuestro sistema, ya que teníamos previsto que pudiera llegar a 30GB pero no es molesto trabajar con ficheros tan grandes. Sobre todo si tenemos que hacer copias de seguridad de las máquinas virtuales.
Aquí tengo una solución para máquinas virtuales Microsoft Windows. En mi caso es un Windows 2003 Server, en el que puedo ver desde el sistema virtualizado que solo tiene ocupado 5GB, pero desde el sistema hospedador llega a 8.3GB.
Para solucionar este problema de espacio necesitamos descargar nullfile-1.2.exe, según he encontrado en está web, para Linux hay que descargar zerospace.c y compilarlo. Pero personalmente aún no lo he probado.
Para utilizar nullfile-1.2.exe, recomiendan desfragmentar un par de veces el disco virtualizado desde la máquina virtual y después ejecutarlo desde la máquina virtual. Cuando lo ejecutas se lanza un proceso que tarda algunos minutos, supongo que dependerá del tamaño del disco.
Una vez que ha terminado la ejecución apagas la máquina virtual y desde la máquina hospedadora ejecutas VBoxManage modifyvdi < disco virtual (.vdi) > compact, y este es el resultado.
Como podéis ver el tamaño de mi fichero .vdi ha sido reducido considerablemente. He pasado de tener un fichero de 8.3GB a uno de 4.4GB. Ahora mis backup son mucho menos pesado, así que tardo menos tiempo en hacerlos.
Podemos observar que el tamaño del fichero que contiene el disco virtual va creciendo conforma vamos instalando cosas en la máquina virtual. Pero ¿qué pasa cuando borro cosas de mi máquina virtual? lamentablemente el fichero .vdi continua ocupando el mismo espacio. Esto puede ser perjudicial para nuestro sistema, ya que teníamos previsto que pudiera llegar a 30GB pero no es molesto trabajar con ficheros tan grandes. Sobre todo si tenemos que hacer copias de seguridad de las máquinas virtuales.
Aquí tengo una solución para máquinas virtuales Microsoft Windows. En mi caso es un Windows 2003 Server, en el que puedo ver desde el sistema virtualizado que solo tiene ocupado 5GB, pero desde el sistema hospedador llega a 8.3GB.
/hdc# ls -lh
total 8,3G
-rw------- 1 root root 8,4G 2009-02-25 10:44 win2003server.vdi
Para solucionar este problema de espacio necesitamos descargar nullfile-1.2.exe, según he encontrado en está web, para Linux hay que descargar zerospace.c y compilarlo. Pero personalmente aún no lo he probado.
Para utilizar nullfile-1.2.exe, recomiendan desfragmentar un par de veces el disco virtualizado desde la máquina virtual y después ejecutarlo desde la máquina virtual. Cuando lo ejecutas se lanza un proceso que tarda algunos minutos, supongo que dependerá del tamaño del disco.
Una vez que ha terminado la ejecución apagas la máquina virtual y desde la máquina hospedadora ejecutas VBoxManage modifyvdi < disco virtual (.vdi) > compact, y este es el resultado.
/hdc# VBoxManage modifyvdi /hdc/win2003server.vdi compact
VirtualBox Command Line Management Interface Version 1.6.6
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
Shrinking '/hdc/win2003server.vdi': 0%...........10%..........20%..... ....70%..........80%..........90%..........100%
/hdc# ls -lh
total 4,4G
-rw------- 1 root root 1,6K 2009-02-25 11:18 2009-02-25-10-12-21.036-VBoxManage-3493.log
-rw------- 1 root root 4,4G 2009-02-25 11:18 win2003server.vdi
Como podéis ver el tamaño de mi fichero .vdi ha sido reducido considerablemente. He pasado de tener un fichero de 8.3GB a uno de 4.4GB. Ahora mis backup son mucho menos pesado, así que tardo menos tiempo en hacerlos.
jueves, 5 de febrero de 2009
Poner clave a un PDF
Después de mucho darle vueltas al tema lo he conseguido.
Necesitaba un programa para ejecuar desde linea de comandos que le pasara un PDF y le pusiera una clave. Encontré multitud de programas que lo hacían en entorno de escritorio, incluso encontré uno que lo hacía desde linea de comandos (PdfEncrypt). Pero este último lanzaba unas ventanas muy molestas cada vez que encriptaba un PDF.
Entonces fue cuando decidí crear mi propio encriptador de PDFs. Y buscando encontré unas librerías en Java para la manipulación de PDFs (itext) y además de otras muchas cosas podía encriptar PDFs. Así que me puse manos a la obra y este fue el resultado.
Para crear tu propio encriptador de PDFs lo primero que tienes que hacer es descargar las librerías .jar de iText. Son algunos pasos, aquí tienes el primer .jar y después tendrás que descargar el resto con svn, aquí tienes explicado como hacerlo.
Una vez que tengas todas las librerías .jar te creas un proyecto en tu IDE y pegas el código que he puesto arriba. Después tendrás que incluir las librerías descargadas.
Teóricamente ya podrás ejecutar la aplicación que encripta PDFs, pero tendrás que pasarle los argumentos oportunos. Según el IDE de desarrollo que uses se hará una u otra forma.
Una vez construido el proyecto podrás ejecutarlo desde la linea de comandos con:
Necesitaba un programa para ejecuar desde linea de comandos que le pasara un PDF y le pusiera una clave. Encontré multitud de programas que lo hacían en entorno de escritorio, incluso encontré uno que lo hacía desde linea de comandos (PdfEncrypt). Pero este último lanzaba unas ventanas muy molestas cada vez que encriptaba un PDF.
Entonces fue cuando decidí crear mi propio encriptador de PDFs. Y buscando encontré unas librerías en Java para la manipulación de PDFs (itext) y además de otras muchas cosas podía encriptar PDFs. Así que me puse manos a la obra y este fue el resultado.
import java.io.FileOutputStream;
import java.io.File;
import com.lowagie.text.pdf.PdfEncryptor;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;
/**
* Encriptador de PDFs
* @author José Manuel Ruiz Baena
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String PdfOriginal,PdfEncriptado,Clave;
try{
PdfOriginal = args[0];
PdfEncriptado = args[1];
Clave = args[2];
}catch(Exception ex){
ayuda();
return;
}
try{
File pdf = new File(PdfOriginal);
if(pdf.exists()){
PdfReader reader = new PdfReader(PdfOriginal);
PdfEncryptor.encrypt(reader,
new FileOutputStream(PdfEncriptado),
Clave.getBytes(),
"".getBytes(),
PdfWriter.ALLOW_PRINTING,
false);
}else
System.out.println("El fichero no existe");
}catch ( Exception e ) {
e.printStackTrace();
}
}
//Ayuda, explica el orden a seguir para pasar los parámetros a la aplicación
public static void ayuda(){
System.out.println("Necesita definir algunos argumentos para que la aplicacion funcione correctamente.");
System.out.println("1- Ruta del PDF a encriptar");
System.out.println("2- Ruta del PDF destino");
System.out.println("3- Clave ");
}
}
Para crear tu propio encriptador de PDFs lo primero que tienes que hacer es descargar las librerías .jar de iText. Son algunos pasos, aquí tienes el primer .jar y después tendrás que descargar el resto con svn, aquí tienes explicado como hacerlo.
Una vez que tengas todas las librerías .jar te creas un proyecto en tu IDE y pegas el código que he puesto arriba. Después tendrás que incluir las librerías descargadas.
Teóricamente ya podrás ejecutar la aplicación que encripta PDFs, pero tendrás que pasarle los argumentos oportunos. Según el IDE de desarrollo que uses se hará una u otra forma.
Una vez construido el proyecto podrás ejecutarlo desde la linea de comandos con:
java -jar EncriptadorPDF < ruta pdf original > < ruta pdf encriptado > < clave >Yo he usado NetBeans, porque con Eclipse al crear el .jar y ejecutarlo me marcaba errores del tipo "no encuentro la clases...", así que lo intenté con NetBeans y sin problemas. Simplemente construir el proyecto y él solo me crea el .jar con mi código fuente y un directorio lib con los .jar de itext.
miércoles, 4 de febrero de 2009
Coger notas con un iphone
Bueno realmente este aplicativo se puede usar en teléfonos con window$ mobile, pero como yo lo que tengo es un iphone pues el post irá dedicado a los iphoneros de la red.
Evernote es una aplicación muy útil para coger notas desde tu iphone y después tenerlas accesibles desde internet o desde la aplicación de escritorio que puedes usar desde tu MAC OS.
Puedes adjuntar fotos desde la cámara del iphone o directamente desde el carrete, muy útil para guardar las tarjetas de visitas que te ofrezcan.
Además cuando escribes una nota es capaz de detectar donde estás y puedes ver tu posición en maps.google.es
Evernote es una aplicación muy útil para coger notas desde tu iphone y después tenerlas accesibles desde internet o desde la aplicación de escritorio que puedes usar desde tu MAC OS.
Puedes adjuntar fotos desde la cámara del iphone o directamente desde el carrete, muy útil para guardar las tarjetas de visitas que te ofrezcan.
Además cuando escribes una nota es capaz de detectar donde estás y puedes ver tu posición en maps.google.es
miércoles, 21 de enero de 2009
Conector JAVA contra un ODBC
Necesitaba hacer una conexión entre una aplicación de escritorio PHP con PHP+GTK (cuando tenga un rato publicaré algo sobre este tema). Pero no era capaz de conectar PHP con un ODBC del sistema, ya que el paquete PHP+GTK que uso para ejecutar la aplicación no contenía la librería necesaria para hacer una conexión ODBC.
Así que opté por crearme un conector en JAVA. Solo necesitaba una aplciación "tonta" que devolviera dos columnas de una tabla de una base de datos SQL Server. Así que programé esta clase:
Como podéis ver solo necesito pasarle como parámetros el nombre del DSN, el usuario, la clave del usuario y la opción que quiero usar (listado o debug). Esto me devolverá en la salida estandar el listado como si fuera un fichero CSV.
Para ejecutar la clase y hacerla externa al entorno de desarrollo necesitaremos exportarla a fichero JAR. Yo particularmente uso como IDE Eclipse y en Eclipse para exportar un proyecto como JAR es muy sencillo, solo vas a "Archivo->Exportar...->Como fichero JAR" y sigues las instrucciones del asistente.
Una vez que tenemos el fichero .jar, solo tenemos que ejecutarlo con los parámetros correcto para obtener la relación de campo1 y campo2 de la base de datos.
Así que opté por crearme un conector en JAVA. Solo necesitaba una aplciación "tonta" que devolviera dos columnas de una tabla de una base de datos SQL Server. Así que programé esta clase:
import java.sql.*;
public class Lanzadora {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String DSN,Usuario,Clave,Opcion;
try{
DSN = args[0];
Usuario = args[1];
Clave = args[2];
Opcion = args[3];
}catch(Exception ex){
ayuda();
return;
}
Connection connection = DriverManager.getConnection("jdbc:odbc:"+DSN,Usuario,Clave);
if (connection != null) {
if(Opcion.compareTo("listado")==0)
listado(connection);
if(Opcion.compareTo("debug")==0)
infoConexion(connection);
}else
System.out.println("No fue posible establecer la conexión.");
}
public static void infoConexion(Connection connection) throws Exception {
System.out.println();
System.out.println("Successfully connected");
System.out.println();
// Meta data
DatabaseMetaData meta = connection.getMetaData();
System.out.println("Driver Information");
System.out.println("Driver Name: "+ meta.getDriverName());
System.out.println("Driver Version: "+ meta.getDriverVersion());
System.out.println("Database Information ");
System.out.println("Database Name: "+ meta.getDatabaseProductName());
System.out.println("Database Version: "+meta.getDatabaseProductVersion());
}
public static void listado(Connection connection)throws Exception{
// Get connection
Statement sentencia = connection.createStatement();
// listado de DNIs y CLAVES
String sql="SELECT campo1,campo2 FROM tabla WHERE campo3>0";
ResultSet result=sentencia.executeQuery(sql);
while(result.next())
System.out.println(result.getString(1)+";"+result.getString(2)+".");
}
public static void ayuda(){
System.out.println("Necesita definir algunos argumentos para que la aplicación funcione correctametne.");
System.out.println("1º nombre del DSN a utilizar");
System.out.println("2º nombre del usuario de la base de datos Epsilon");
System.out.println("3º contraseña del usuario");
System.out.println("4º opcion");
System.out.println(" listado (muestra el listado de DNIs y Claves)");
System.out.println(" debug (valida conexión)");
}
}
Como podéis ver solo necesito pasarle como parámetros el nombre del DSN, el usuario, la clave del usuario y la opción que quiero usar (listado o debug). Esto me devolverá en la salida estandar el listado como si fuera un fichero CSV.
Para ejecutar la clase y hacerla externa al entorno de desarrollo necesitaremos exportarla a fichero JAR. Yo particularmente uso como IDE Eclipse y en Eclipse para exportar un proyecto como JAR es muy sencillo, solo vas a "Archivo->Exportar...->Como fichero JAR" y sigues las instrucciones del asistente.
Una vez que tenemos el fichero .jar, solo tenemos que ejecutarlo con los parámetros correcto para obtener la relación de campo1 y campo2 de la base de datos.
java -jar fichero.jar < nombre del DSN > < usuario > < clave > < listado|debug >
martes, 20 de enero de 2009
rdesktop a pantalla completa sin perder funcionalidades
No conseguía hacer una conexión a un escritorio remoto Windows desde mi Ubuntu y después poder volver al escritorio de mi Ubuntu sin necesidad de cerrar la sesión del Windows, así que comencé a darle vueltas a ver que solución le podía dar. Y creo que la solución es buena.
Ejecutando desde linea de comandos directamente, utilicé el comando:
Al quitarle el decorador de ventanas (-D) no nos aparecerá el borde del terminal y simplemente nos tapará todo el escritorio dejando libres los dos paneles, de esta forma podemos seguir accediendo a las aplicaciones que tengamos en nuestro Ubuntu.
Yo tengo una pantalla pequeña (1024x768), si utilizas una pantalla con más resolución solo tendrás que ajustar el número de pixeles de alto, para dejar visibles los paneles de Gnome.
Ya solo tendrás que crear un lanzador para tener mucho más accesible la comunicación con el Windows que estás configurando.
Ejecutando desde linea de comandos directamente, utilicé el comando:
rdesktop -u Administrador -g 1024x720 -D xxx.xxx.xxx.xxx:3389Este comando os abrirá la conexión con el escritorio remoto en una resolución de 1024x720, el standar es 1024x768. Así que ese puñado de pixeles que nos faltan son los de los paneles de Gnome (superior e inferior).
Al quitarle el decorador de ventanas (-D) no nos aparecerá el borde del terminal y simplemente nos tapará todo el escritorio dejando libres los dos paneles, de esta forma podemos seguir accediendo a las aplicaciones que tengamos en nuestro Ubuntu.
Yo tengo una pantalla pequeña (1024x768), si utilizas una pantalla con más resolución solo tendrás que ajustar el número de pixeles de alto, para dejar visibles los paneles de Gnome.
Ya solo tendrás que crear un lanzador para tener mucho más accesible la comunicación con el Windows que estás configurando.
martes, 30 de diciembre de 2008
Error al arrancar máquinas virtuales

Dicen que una imagen vale más que mil palabras, así que por eso cuelgo esta imagen. Muestra un error que nos devuelve VirtualBox al intentar arrancar una máquina virtual.
Esto nos pasa cuando hemos actualizado el kernel del sistema. Así que tendremos que ejecutar sudo /etc/init.d/vboxdrv setup, al ejecutarlo verás que recompila un módulo de VirtualBox en el kernel.
* Stopping VirtualBox kernel module * done.Una vez que se ha recompilado el módulo y se ha iniciado el servicio vboxdrv, vuelve a intentar arrancar la máquina virtual y verás que funciona sin problemas.
* Recompiling VirtualBox kernel module * done.
* Starting VirtualBox kernel module * done.
miércoles, 17 de diciembre de 2008
Borrar copias de seguridad antiguas con bash
Con este script en bash podrás borrar las copias de seguridad antiguas de tu disco duro.
Hay que configurar la ruta donde están el disco duro donde volvamos las copias de seguridad (DirectorioBackup=/BACKUP), una vez configurado esto ya podemos programar su ejecución periódica antes de que se lance la copia de seguridad nueva, para que cuando intente copiar los ficheros tenga espacio.
El script mira el espacio de la última copia de seguridad y irá borrando directorio desde el más antiguo al más moderno, hasta dejar el espacio suficiente para que entre una copia de seguridad con el mismo tamaño que la última copia.
Hay que configurar la ruta donde están el disco duro donde volvamos las copias de seguridad (DirectorioBackup=/BACKUP), una vez configurado esto ya podemos programar su ejecución periódica antes de que se lance la copia de seguridad nueva, para que cuando intente copiar los ficheros tenga espacio.
El script mira el espacio de la última copia de seguridad y irá borrando directorio desde el más antiguo al más moderno, hasta dejar el espacio suficiente para que entre una copia de seguridad con el mismo tamaño que la última copia.
#!/bin/bashPara el correcto funcionamiento del script, el directorio /BACKUP tendrá que almacenar un directorio por copia de seguridad, por ejemplo:
DirectorioBackup=/BACKUP
EspacioMaxQueOcupaUnaCopia=`du -s $DirectorioBackup/* | sort | tail -n1 | awk '{print $1}' `
EspacioDisponibleHDD=`df -P $DirectorioBackup | grep -v -i S.ficheros | awk '{print $4}'`
while [ $EspacioMaxQueOcupaUnaCopia -gt $EspacioDisponibleHDD ]; do
DirectiorABorrar=`ls -t $DirectorioBackup | tail -n1`
rm -fr "$DirectorioBackup/$DirectiorABorrar"
EspacioDisponibleHDD=`df -P $DirectorioBackup | grep -v -i S.ficheros | awk '{print $4}'`
done
/BACKUP/20081217Si el script se encuentra con esta casuística, borrará primero el directorio /BACKUP/20081215 y si aún así no le queda espacio suficiente, borrará /BACKUP/20081216.
/BACKUP/20081216
/BACKUP/20081215
Glade 3.4.3 para Windows
Para hacer correr el entorno de desarrollo de interfaces de escritorio Glade, tendrás que descargar gtk-2.12.9-win32-1.exe y glade-3.4.3-win32-1.zip. Estos ficheros los puedes encontrar en los siguientes enlaces.
http://sourceforge.net/project/showfiles.php?group_id=98754
http://surfnet.dl.sourceforge.net/sourceforge/gladewin32/gtk-2.12.9-win32-1.exe
http://kent.dl.sourceforge.net/sourceforge/gladewin32/glade-3.4.3-win32-1.zip
http://sourceforge.net/project/showfiles.php?group_id=98754
http://surfnet.dl.sourceforge.net/sourceforge/gladewin32/gtk-2.12.9-win32-1.exe
http://kent.dl.sourceforge.net/sourceforge/gladewin32/glade-3.4.3-win32-1.zip
- Descargar los dos ficheros.
- Instalar gtk-2.12.9-win32-1.exe (c:\GTK)
- Descomprimir glade-3.4.3-win32-1.zip en un directorio
- Encontrarás un directorio /bin donde hay un fichero glade-3.exe
- Ejecutar glade-3.exe
jueves, 27 de noviembre de 2008
vdi is already registered
Es posible que algún día necesitemos restaurar una copia de una máquina virtual que teníamos instala. O simplemente pretendemos copiar una máquina virtual para tener dos y no tener que esperar el tiempo de instalación.
Para hacer esto tenemos que registrar el fichero.vdi en el servidor de VirtualBox. Para hacer esto haremos:
Para hacer esto tenemos que registrar el fichero.vdi en el servidor de VirtualBox. Para hacer esto haremos:
VBoxManage registerimage disk fichero.vdi -type normalSi este fichero.vdi ya ha estado funcionando en este servidor de VirtualBox no mostrará el siguiente error.
VirtualBox Command Line Management Interface Version 1.6.6Para solucionar esto podemos clonar el fichero.vdi, de forma que le asignará un nuevo identificador y podremos registrar el fichero.vdi resultante.
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
[!] FAILED calling virtualBox->RegisterHardDisk(hardDisk) at line 6478!
[!] Primary RC = NS_ERROR_INVALID_ARG (0x80070057) - Invalid argument value
[!] Full error info present: true , basic error info present: true
[!] Result Code = NS_ERROR_INVALID_ARG (0x80070057) - Invalid argument value
[!] Text = A hard disk with UUID {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} or with the same properties ('fichero.vdi') is already registered
[!] Component = VirtualBox, Interface: IVirtualBox, {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}
[!] Callee = IVirtualBox, {xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx}
VBoxManage clonevdi DiscoAClonar.vdi DiscoResultante.vdiUna vez terminado el proceso de clonación podremos registrar el nuevo fichero.vdi.
VirtualBox Command Line Management Interface Version 1.6.6
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
VBoxManage registerimage disk DiscoResultante.vdi -type normal
Suscribirse a:
Entradas (Atom)
DynDns OVH Sincronización de IP pública dinámica
Si tienes un servidor en casa o detrás de una conexión con IP dinámica, sabes que tarde o temprano tu dirección IP pública cambia y tu dom...
-
Sabemos como registrar discos duros virtuales que vienen de otros servidores de virtualización, también hemos creado discos duros desde cero...
-
En esta nueva entrada vamos a realizar la instalación de un DUC (Dynamic Update Client) . En concreto se trata de un cliente para la a...