Archivo categoría Linux
Habilitando el ecualizador en Amarok
Por Luis Gallardo - Linux - 31/01/2013
Si de casualidad intentan configurar el ecualizador en Amarok y le sale el mensaje mostrado arriba, basta con instalar el backend phonom de gstreamer:
# aptitude install phonon-backend-gstreamer
Luego de esto podrán usar el ecualizador como se muestra en esta otra imagen:
También podrán aplicarse los ajustes predeterminados de acuerdo al género que se desee escuchar o modificar manualmente los valores a voluntad.
Cómo correr aplicaciones Android desde la tarjeta SD
Por Luis Gallardo - Android, Linux - 24/01/2013

Una de las limitantes que tienen algunos teléfonos es el espacio disponible para instalar aplicaciones (por ejemplo el Samsung Galaxy Ace 5830 es una pesadilla) por lo que en algún momento uno debe desinstalar aplicaciones para hacerle espacio a otra aplicaciones. Pero aun y cuando uno pueda jugar con esto siempre puede darse el caso en que el teléfono se quede sin espacio ya que las aplicaciones también pueden guardar datos en la memoria interna del teléfono.
Para solucionar este problema existen una aplicación que permite mover aplicaciones a la tarjeta SD que estaré explicando en este artículo.
Requisitos
- Tener una partición extra en la tarjeta SD.
- Tener el teléfono rooteado. Para el Samsung Galaxy Ace 5830 pueden seguir estos paso.
Particionando la tarjeta SD
Para crear la partición adicional es recomendable copiar los datos que se tienen en un directorio del PC (por si acaso) y redimensionar la partición para hacer espacio a la nueva partición, y luego crear la partición adicional. En Linux se puede particionar la larjeta SD con GParted. A continuación muestro cómo quedó particionada mi tarjeta de 4 GB:
Como puede observarse la partición adicional está en ext2 y es de 512 MB. Como nota aparte, no vale la pena crear la partición adicional como ext3 o ext4 porque el journal no tiene sentido y podría poner las aplicaciones algo más lentas.
Instalación y uso de Link2SD
Una vez particionada la tarjeta SD se debe colocar nuevamente al teléfono. Luego se debe ingresar a Play de Google e instalar la aplicación Link2SD en el teléfono. Cuando haya terminado la instalación ejecute la aplicación. Inmediatamente solicitará permiso de superusuario (Por esta razóno el teléfono debe estar rooteado) como se muestra a continuación:
Luego aparecerá la siguiente pantalla preguntando por el tipo de sistema de archivos, a lo cual responderemos que es del tipo ext2:
Una vez que se indique el tipo de partición la aplicación creará los enlaces necesario a los scripts y pedirá reiniar el teléfono, al aceptar el teléfono se reiniciará y la segunda partición estará lista para ser reconocida.
Cuando el teléfono se haya encendido nuevamente y la tarjeta SD se haya escaneado ejecute nuevamente la aplicación para empezar a mover las aplicaciones a la tarjeta SD. Para ello, filtre las aplicaciones que están instaladas en la memoria interna del teléfono, como se muestra a continuación:
Para mover una aplicació a la SD, selecciónela y precione el botón Mover a la tarjeta SD como se muestra en la siguiente imagen:
Enlazando aplicaciones
En vez de solo mover las aplicaciones Link2SD tiene una forma alternativa de mover y enlazar las aplicaciones a la segunda partición de la tarjeta SD. Mover las aplicaciones a la SD solo copia parte de la aplicación y no todos los componentes a la primera partición FAT, no a la segunda partición ext2 que se creó. Entonces para aprovechar realmente el espacio de esta segunda partición se deben enlazar las aplicaciones, como se muestra en la siguiente imagen:
También se puede configurar para que automáticamente se cree un enlace al descargar e instalar una aplicación, para ello se debe ejecutar Link2SD y seleccionar Ajustes para escoger la opción “Enlace automático”, como se muestra a continuación:
Antes y después
Después de mover las aplicaciones a la segunda partición de la tarjeta SD, aquí les dejo dos imágenes que muestran el antes y el después del espacio en mi teléfono:
Como puede apreciarse en la segunda imagen, quedan libres 141 MB. Otro dato curioso y que de muestra que Link2SD está funcionado es que se están usando 40 MB, pero solo la aplicación Angry Birds Stars War ocupa 44 MB!!
Referencias
Cómo crear un mirror de Debian y Ubuntu con debmirror
Por Luis Gallardo - Linux - 06/12/2012
A continuación explico cómo configurar un mirror de Debian y Ubuntu, en un servidor de Debian. Los pasos explicados a continuación se pueden conseguir en otro sitios, salvo la parte de importación de las llaves de los repositorios. Por ejemplo, en los tutoriales de Ubuntu explican cómo instalar las llaves suponiendo que el servidor donde se va a hacer el mirror corre Ubuntu, pero y si es un servidor con Debian?
Instalación de debmirror
Como mencioné, usé debmirror para hacer el mirror de ambas distribuciones. Existen otros, como por ejemplo apt-cacher, pero se escogió debmirror porque en esencia se necesita hacer mirror de todo los repositorios de Ubuntu y Debian. Entonces, para instalar debmiror basta con escribir lo siguiente como root:
aptitude install debmirror
Instalación de las llaves
Luego se deben instalar la llaves (keyrings) de los repositorios. Como se quiere hacer un mirror tanto de Debian como de Ubuntu, bajaremos los paquetes e importaremos las llaves para cada distro:
Debian
Para instalar las llaves de los repositorios de Debian se debe bajar el paquete debian-archive-keyrings mas reciente, por ejemplo de testing:
# wget http://ftp.us.debian.org/debian/pool/main/d/debian-archive-keyring/debian-archive-keyring_2012.4_all.deb
Luego se procede a extraer el contenido del paquete en el directorio home de root:
# dpkg-deb -x debian-archive-keyring_2012.4_all.deb ~
Ahora se debe importar las llaves:
# gpg --no-default-keyring --keyring /home/repo/keyrings/debian/trustedkeys.gpg --import /root/usr/share/keyrings/debian-archive-keyring.gpg gpg: keyring `/home/repo/keyrings/debian/trustedkeys.gpg' created gpg: key B98321F9: public key "Squeeze Stable Release Key " imported gpg: key 473041FA: public key "Debian Archive Automatic Signing Key (6.0/squeeze) " imported gpg: key 65FFB764: public key "Wheezy Stable Release Key " imported gpg: key 46925553: public key "Debian Archive Automatic Signing Key (7.0/wheezy) " imported gpg: Total number processed: 4 gpg: imported: 4 (RSA: 4) gpg: no ultimately trusted keys found
Ubuntu
Para Ubuntu se debe hacer algo similar. Se debe bajar el paquete ubuntu-keyring mas reciente. Para la fecha tomé uno de los repositorios de quantal:
# wget http://pa.archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-keyring/ubuntu-keyring_2012.05.19_all.deb
Luego se procede a extraer el contenido del paquete en el directorio home de root e importar las llaves:
# dpkg-deb -x ubuntu-keyring_2012.05.19_all.deb ~# gpg --no-default-keyring --keyring /home/repo/keyrings/ubuntu/trustedkeys.gpg --import /root/usr/share/keyrings/ubuntu-archive-keyring.gpggpg: keyring `/home/repo/Ubuntu/mirrorkeyring/trustedkeys.gpg' created gpg: key 437D05B5: public key "Ubuntu Archive Automatic Signing Key " imported gpg: key FBB75451: public key "Ubuntu CD Image Automatic Signing Key " imported gpg: key C0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) " imported gpg: key EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) " imported gpg: Total number processed: 4 gpg: imported: 4 (RSA: 2) gpg: no ultimately trusted keys found
El script de debmirror
Para Ubuntu
El script como tal es una adaptación de la documentación que se consigue en Ubuntu, el cual se puede guardar en el archivo /home/repo/scripts/debian.sh con la siguiente información:
#!/bin/sh# Don't touch the user's keyring, have our own instead export GNUPGHOME=/home/repo/keyrings/ubuntu # Architecture. For Ubuntu can be i386, powerpc or amd64. arch=i386,amd64 # Minimum Ubuntu system requires main, restricted # Section (One of the following - main/restricted/universe/multiverse). section=main,multiverse,universe,restricted # Release of the system (Quantal, Precise, etc) release=quantal,quantal-security,quantal-updates,quantal-backports,precise,precise-security,precise-updates,precise-backports # Server name, minus the protocol and the path at the end server=us.archive.ubuntu.com # Path from the main server, so http://my.web.server/$dir, Server dependant inPath=/ubuntu # Protocol to use for transfer (http, ftp, hftp, rsync) proto=http # Directory to store the mirror in outPath=/home/repo/mirrors/ubuntu # Start script debmirror -a $arch \ --no-source \ --md5sums \ --progress \ --passive \ --verbose \ -s $section \ -h $server \ -d $release \ -r $inPath \ -e $proto \
Para Debian
Para Debian cambiarían los valores, y en esencia en el archivo archivo /home/repo/scripts/debian.sh pondríamos algo como esto:
#!/bin/sh
# Don't touch the user's keyring, have our own instead
export GNUPGHOME=/home/repo/keyrings/debian
# Architecture (i386, powerpc, amd64, etc.)
arch=i386,amd64
# Section (main,contrib,non-free)
section=main,contrib,non-free
# Release of the system (squeeze,lenny,stable,testing,etc)
release=squeeze
# Server name, minus the protocol and the path at the end
server=ftp.us.debian.org
# Path from the main server, so http://my.web.server/$dir, Server dependant
inPath=/debian
# Protocol to use for transfer (http, ftp, hftp, rsync)
proto=http
# Directory to store the mirror in
outPath=/home/repo/mirrors/debian
# Start script
debmirror -a $arch \
--no-source \
--md5sums \
--progress \
--passive \
--verbose \
-s $section \
-h $server \
-d $release \
-r $inPath \
-e $proto \
$outPath
Nota: Para ambos casos se debe dar permisología de ejecución a los scripts, se debe probar la conexión a los servidores seleccionados, y que habrá suficiente espacio para alojar dichos repositorios.
Tarea programada (crontab)
Una vez que se tienen los scripts, se puede configurar una tarea programada para que la sincronización del mirror se haga a un tiempo determinado. Por ejemplo, para que se ejecute diariamente a las 12 de la media noche podemos colocar esto en el /etc/crontab:
0 0 * * * root /home/repo/scripts/debian.sh 0 0 * * * root /home/repo/scripts/ubuntu.sh
Publicación de los mirrror
Para publicar los mirror vía http se puede instalar un servidor web, como Apache:
aptitude install apache2
Por omisión en Debian, Apache tiene el directorio /var/www/ como la raíz. Entonces para configurar los mirrors basta con crear los enlaces simbólicos apuntando a este directorio:
# ln -s /home/repo/mirrors/ubuntu /var/www/ # ln -s /home/repo/mirrors/debian /var/www/
Configuración de los clientes
Para configurar los clientes habría que editar el archivo de configuración /etc/apt/sources.list, según sea la versión de Linux que se esté usando en el cliente:
Para Ubuntu
Para Ubuntu precise (12.04) se debería tener algo como esto en el /etc/apt/sources.list:
deb http://192.168.1.1/ubuntu/ precise main restricted universe multiverse deb http://192.168.1.1/ubuntu/ precise-updates main restricted universe multiverse deb http://192.168.1.1/ubuntu/ precise-backports main restricted universe multiverse deb http://192.168.1.1/ubuntu/ precise-security main restricted universe multiverse
En este caso la dirección IP 192.168.1.1 corresponde al servidor que aloja los repositorios, los cuales se publicaron vía http con Apache. Se debe cambiar por la IP del servidor que se esté configurando o una entrada de DNS válida que lo identifique.
Para Debian
Para Debian Squeeze se debe escribir lo siguiente en el /etc/apt/sources.list:
deb http://192.168.1.1/debian squeeze main contrib non-free deb http://192.168.1.1/debian-security squeeze/updates main contrib non-free
Para ambos casos, luego se debe actualizar la lista de paquetes:
aptitude update
Una vez que se hayan actualizado el listado de paquetes ya se podrá instalar y actualizar aplicaciones desde estos repositorios.
Tarjeta gráfica ATI Radeon HD 7340M en Debian
Por Luis Gallardo - Linux - 21/11/2012
Instalé Debian testing en mi Sony VAIO SVE-111 por sugerencia/regaño de mi amigo Roberto De Oliveira (@robertocdoa) ya que me estaba quejando de lo lento que se portaba Ubuntu en mi máquina, aparte de que la apariencia de Ubuntu dejó de gustarme hace rato.
Si bien la instalación fue rápida, luego de concluir y reiniciar la máquina nuevamente, al arrancar solo se veían una imagen distorsionada como se puede apreciar en la foto superior. Inmediatamente supuse que era un problema con el driver de video. Como no podía acceder ni siquiera a la consola de texto con el driver genérico tuve que recurrir al viejo truco de acceder a una consola de texto desde el boot loader, como se muestra a continuación:
Esto permite cargar Bash en vez del arranque normal del sistema con init. Una vez que pude acceder al sistema tuve que remontar la partición raíz como lectura y escritura haciendo:
# mount -o remount,rw /
Aproveché para ver que el modelo exacto de mi tarjeta gráfica usé lspci como se muestra a continuación:
# lspci 00:00.0 Host bridge: Advanced Micro Devices [AMD] Family 14h Processor Root Complex 00:01.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Device 9808 00:01.1 Audio device: Advanced Micro Devices [AMD] nee ATI Wrestler HDMI Audio [Radeon HD 6250/6310] 00:04.0 PCI bridge: Advanced Micro Devices [AMD] Family 14h Processor Root Port...
Hice una búsqueda sobre el driver para Debian de mi tarjeta gráfica y sugerían que usara la versión no libre que se encuentra en los repositorios non-free y contrib, por lo que debía agregarlos en en el archivo /etc/apt/source.list:
deb http://ftp.us.debian.org/debian squeeze main contrib non-free
Una vez hecho el cambio, procedía a actualizar e instalar el driver propietario de mi tarjeta gráfica:
# aptitude update# aptitude install fglrx-control fglrx-driver
Instalar el driver no basta, se debe configurar también el archivo /etc/X11/xorg.conf para agregar las opciones de la tarjeta gráfica. Para este caso lo mejor es usar el utilitario que viene con el driver para generar este archivo. Para ello basta con ejecutar la siguiente orden:
# aticonfig --initial
Luego de esto pude usar el ambiente gráfico al reiniciar la PC, incluso con Gnome-Shell como puede verse ne la siguiente imagen:
Problemas con el TouchPad
Anteriormente había comentado cómo configurar el touchpad para esta máquina, pero esta configuración la hice en una máquina con Ubuntu. Con este driver la misma configuración en el archivo /etc/X11/xorg.conf no funciona, pero probando con la orden synclient me percaté que sí tomaba los parámetros, entonces simplemte convertí la configuración en el siguiente script:
#!/bin/shsynclient LockedDrags=false synclient VertEdgeScroll=1 synclient HorizEdgeScroll=false synclient TapButton1=1 # Left click synclient LTCornerButton=2 # Two-buttons click synclient MaxDoubleTapTime=120 synclient TapButton2=3 # Right click synclient EmulateTwoFingerMinZ=20 synclient EmulateTwoFingerMinW=5 synclient AreaBottomEdge=4500
Este script lo nombre synaptics.sh, y le habilité el permiso de ejecución:
chmod +x synaptics.sh
Luego desde la opción Startup Programs de Gnome-Shell se configura para que se ejecute cuando inicie Gnome. Este programa de configuración se puede lanzar escribiendo en Gnome-Shell “Startup”, como se muestra a continuación:
Luego basta con agregar el script (hacer clic en el botón Add) como se muestra en la siguiente imagen:
Después de esto tendrás la configuración como expliqué en mi otro artículo, donde se incluía “botones” especiales y un menú contextual al usar el clic con de dos dedos.
Referencias
Configuración de Linphone en Linux
Por Luis Gallardo - Linux - 10/11/2012
En la empresa donde laboro hay una centralita con Asterisk y como el número de teléfonos físicos disponibles es limitado decidí usar un softphone, en este caso Linphone. A continuación se explican los pasos para instalar y configurar Linphone con un servidor SIP:
Instalación en Debian
En Debian se debe instalar el siguiente paquete:
aptitude install linphone
En distribuciones derivadas como Ubuntu o Mint debe verificarse el nombre del paquete.
Instalación en Red Hat
En el caso de que se esté usando Red Hat entonces se debe instalar Linphone de la siguiente manera:
yum install linphone
Nuevamente, para distribuciones derivadas como Fedora o CentOS se debe validar el nombre del paquete. También se debe tener el repositorio adecuado que provea Linphone (recordar que Red Hat está orientado a servidores).
Configuración
Para la configuración se debe lanzar la aplicación e ir a Options > Preferences > Manage SIP Accounts. Debe aparecer una pantalla similar a la siguiente:
Se debe agregar un cuenta en el apartado Proxy accounts, pulsando el botón Add, con lo que se mostrará la siguiente ventana:
Aquí solo se debe especificar la cuenta de usuario o identidad SIP y el proxy SIP. Para la identidad se debe seguir el formato usuario@dominio. En el ejemplo 5256 corresponde al usuario (extensión) y 10.0.3.10 es el servidor SIP. Por otro lado, la dirección del proxy SIP en este caso es 10.0.3.10.
Una vez hechos los cambios pulsar OK en esta ventana, y Done en la anterior.
Funcionamiento
Ahora la aplicación se debe autenticar contra el servidor, solicitando el nombre de usuario y contraseña como se muestra a continuación:
Después de proporcionar la cuenta, en la pantalla principal de la aplicación debe aparecer esta información reflejada en My Current Identity:
Hacer una llamada
Para hacer una llamada basta con colocar el número de la extención en el recuadro mostrado a continuación y pulsar el botón verde:
Configuración del touchpad para Sony VAIO SVE-111 en Linux
Por Luis Gallardo - Linux - 01/11/2012
Similar a cuando compré la notebook Lenovo IdeaPad S10-3 ahora que tengo una Sony VAIO SVE-111 decidí configurar el touchpad para aprovechar el espacio, y en la medida de lo posible evitar usar los botones derechos e izquierdo, de forma de evitar el desgaste de los mismo. Aquí dejo la configuración que usé para el archivo /etc/X11/xorg.conf:
Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" Option "Protocol" "auto-dev" Option "CorePointer" Option "LockedDrags" "false" Option "VertEdgeScroll" "true" Option "HorizEdgeScroll" "false" Option "TapButton1" "1" # Left click Option "LTCornerButton" "2" # Two-buttons click Option "MaxDoubleTapTime" "120" Option "TapButton2" "3" # Right click Option "EmulateTwoFingerMinZ" "20" Option "EmulateTwoFingerMinW" "5" Option "AreaBottomEdge" "4900" EndSection
Los parámetros de interés son:
| Parámetro | Descripción |
| TapButton1 | Cual botón es reportado en un toque de un solo dedo (no en esquina) |
| LTCornerButton | Cual botón es reportado en la esquina superior izquierda. |
| TapButton2 | Cual botón es reportado en un toque de dos dedos (no en esquina) |
| EmulateTwoFingerMinZ | Esto configura el umbral Z de presión para emular la pulsación dos dedos. |
| EmulateTwoFingerMinW | Esto configura el ancho del dedo para emular la pulsación de dos dedos. |
| AreaBottomEdge | Ignorar los movimientos, desplazamientos y toques que ocurra por debajo de este borde. |
Depurando los valores
Puede que el ancho de tus dedos sea mayor o menor al mio, por lo que la debes ajustar la variable EmulateTwoFingerMinW. De igual forma si estás configurando otro touchpad con características similares debes definir un valor distinto para la variable AreaBottomEdge. Para hacer pruebas y evitar tener que reiniciar X, puedes usar la orden synclient.
Para camiar el valor de una variable debes usar synclient de la siguiente forma:
synclient AreaBottomEdge=4500
Luego para consultar todos los valores actuales puedes escribir lo siguiente:
synclient -l | less
Por último puedes ver cómo cambian los valores en “caliente” a medida que vas tocando el tocuhpad. Para esto debes tener configurada la siguiente opción en el archivo /ect/X11/xorg.conf:
Option "SHMConfig" "true"
Luego podrás ver los cambios haciendo:
synclient -m 10
Referencia: man synaptics
Repositorios para VirtualBox 4.2.x
Por Luis Gallardo - Linux - 24/10/2012

Con la salida de VirtualBox 4.2.x aproveché de actualizar los repositorios de una de las máquinas del trabajo, la cual corre Ubuntu 12.04. Para hacer esto basta con colocar lo siguiente en el archivo /etc/apt/sources.list:
deb http://download.virtualbox.org/virtualbox/debian precise contrib
Después de este cambio debes refrescar el listado de paquetes y actualizar VirtualBox:
aptitude update aptitude install virtualbox-4.2
Repositorios en Debian
Para Debian testing (wheezy) y stable (Squeeze) se deben colocar las siguientes líneas:
deb http://download.virtualbox.org/virtualbox/debian wheezy contrib deb http://download.virtualbox.org/virtualbox/debian squeeze contrib non-free
Configuración en apt-cacher
Si seguiste la receta de apt-cacher y VirtualBox de este mismo blog, te informo que basta con modificar el /etc/apt/sources.list en los clientes como se explica arriba, es decir, el servidor de apt-cacher no sufre cambios.
Referencia: Download VirtualBox for Linux Hosts
Cómo poner una contraseña cifrada a grub2
Por Luis Gallardo - Linux - 17/09/2012

Una de las cosas de las que carecía grub 2 respecto a grub 1 era la posibilidad de asignar una contraseña, de forma que no cualquiera pudiese editar el menú del gestor de arranque para, por ejemplo, pasar parámetros adicionales de arranque al kernel, cambiar el nivel de arranque o aun peor, cambiar la contraseña de root. Revisando recientemente me vi que ya es posible hacer esto, y veremos cómo hacerlo a continuación
Protección con contraseña
Para proteger la edición de grub 2 se debe asignar un super usuario y una contraseña, de preferencia cifrada. Para hacer esto primero se debe generar un hash con la frase deseada, usando la orden grub-mkpasswd-pbkdf2, como se muestra en la imagen anterior. Una vez generado el hash se debe proceder a editar el archivo /etc/grub.d/00_header, colocando lo siguiente al final:
cat << EOF set superusers="lgallard" password_pbkdf2 lgallard grub.pbkdf2.sha512.10000.9BF88302B67DCCB25A7B939F5171B36D04AE7B8C1E1FF90511204DC08CCA98E9E9E9332B32E6908D1DF983A42603ACA1E2E8411B0407762C3A1839F707BF34E8.343BD210589487FBAEA3DA4889053206380B9590505F926764ED028FDB38EFD87C76505C9ABC6FA191CEE4AB3C407988C73AA773C46FC2A9A49D1078F222E5D9 EOF
En este caso, el super usuario es lgallard, y el hash es el es que se generó anteriormente. Luego de editar este archivo se deben aplicar los cambios usando la siguiente orden:
update-grub2
Ahora tu gestor de arrnaque con Grub 2 está protegido con contraseña!
Referencia: Grub 2 Password Protection
Instalación de los Guests Additions de VirtualBox en CentOS
Por Luis Gallardo - Linux - 09/09/2012

Si por alguna razón requieren instalar CentOS en una máquina virtual en VirtualBox y quiere aprovechar las características adicionales de los Guest Additions (drivers de red y gráficos, para por ejemplo tener pantalla completa e integración de teclado) pueden seguir estos pasos para instalarlos:
- En la máquina virtual con CentOS instalar los paquetes necesarios para compilar los Guest Additions:
yum install kernel-headers kernel-devel yum groupinstall "Development Tools"
Esto tardará algo ya que se bajará muchos paquetes.
- Desde el menú de VirtualBox seleccionar Instalar Guest Additions.

En la máquina virtual se creará un enlace en el escritorio para montar la unidad de CD. Al darle al botón derecho seleccione Montar. Una vez montado ir al direcotrio:
cd /media/VBOXADDITIONS_4.1.20_80170/
Desde allí ejecutar el binario para Linux para la instalación:
./VBoxLinuxAdditions.run
Una vez finalizado ya se tendrá instalado los Guest Additions de VirtualBox en CentOS!
Instalación en Red Hat
Los pasos explicados previamente también son válidos para Red Hat, solo se debe tener configurado un repositorio desde donde se instalaran los paquetes o grupos de paquetes.
Cómo reducir un disco en VirtualBox
Por Luis Gallardo - Linux - 12/08/2012
Antes que nada debo decir que el título del artículo es algo engañoso, realmente debería decir algo como “Copiando el contenido de un disco grande en uno más pequeño en VirtualBox usando rsync”, pero dado que mi problema surgió de esa necesidad me pareció conveniente dejarlo como está.
El problema
Necesitaba una imagen con Clonezilla de una máquina virtual con un disco de 600 GB, como se muestra en la imagen de arriba, pero el disco de destino era de 200 GB. Clonezilla no es capaz de modificar la información física del disco, y en VirtualBox no encontré forma de reducir el disco físicamente aunque de los 600 GB solo se usara alrededor de 15 GB. Si bien se puede crear la imagen con Clonezilla a partir de las particiones, al restaurar de igual forma se reconocía que el sistema origen tenía un disco de 600 GB y el de destino era de 200 GB. Por otro lado, el sistema operativo (CentOS 6.0) tenía LVM, por lo que hacer la restauración a partir de particiones no resolvía el problema.
La Solución
Como la imagen generada con Clonezilla fue hecha a partir de un disco de 600 GB, se me ocurrió hacer un disco más pequeño de 200 GB e instalar el sistema operativo allí para luego copiar los archivos necesarios desde el disco original de 600 GB a este nuevo disco. Entonces, en la máquina virtual procedía a crear un disco de 200 GB dinámico:
Luego procedí a quitar el disco de 600 GB (en el ejemplo, Cento OS Server.dvi), dejando el disco de 200 GB (SmallDisk.dvi). Después instalé CentOS como se haría habitualmente. Es bueno revisar la instalación, es decir, que la máquina virtual en el disco de 200 GB inicia normalmente.
Una vez verificado el sistema operativo en el disco de 200 GB, se debe apagar la máquina virtual y agregar el disco de 600 GB nuevamente, pero como un disco primario (colocar SATA Port 0 en vez de SATA Port 1). El disco pequeño debe se debe configurar como secundario seleccionando SATA Port 1, como se muestra en la figura de arriba. Luego se inicia la máquina virtual, y como root se monta el disco de 200 GB:
mount /dev/mapper/VolGroup-lv_root /mnt/lvm2/root/
Y ahora se procede a copiar el contenido del disco grande en el disco pequeño:
rsync -arpz --progress --numeric-ids --exclude=/dev --exclude=/proc --exclude=/tmp --exclude=/boot --exclude=/home --exclude=/etc/fstab --exclude=/mnt --exclude=/sys / /mnt/lvm2/root/
Es importante excluir los directorio /dev, /proc, /sys, /tmp, /boot, /home, /mnt y el archivo /etc/fstab, ya que no queremos que esa información se replique en el disco pequeño (por ejemplo, no queremos copiar el gestor de arranque del disco grande en el disco pequeño).
Una vez copiados los archivos, puede apagarse la máquina virtual y quitar el disco grande, dejando el disco pequeño en SATA Port 0.
Por último, si bien es cierto que usé CentOS, también es válido para otras distribuciones como Debian y derivados.


























Planeta Linux
Sígueme