Tutorial donde explicamos paso a paso cómo ampliar el tamaño una partición raíz (/ sistema) de un disco duro virtual en un equipo con Linux virtualizado sobre VMware Workstation. Como equipo anfitrión usamos uno con Microsoft Windows 7 Ultimate. Mostramos cómo aumentar el tamaño de la partición raíz donde está instalado el sistema operativo Linux usando GParted Live CD, para ello movemos la partición swap a la derecha del espacio nuevo libre.
Escenario inicial, VMware, Linux, partición
Si queremos ampliar el tamaño de la partición del sistema donde tengamos instalado el sistema operativo Linux (cualquier distribución) con sistema de archivos ext2, ext3 ó ext4 deberemos seguir los pasos que indicamos en este tutorial. Este tutorial sirve tanto para máquinas virtualizadas como para máquinas físicas, el proceso es el mismo.
En este tutorial hemos usado los siguientes elementos sofware:
- VMware Workstation 8.0.2.
- Máquina virtualizada con GNU Linux Ubuntu 10.04.
- Equipo físico con procesador Intel i7 950 3GHz x64 con 12GB RAM.
- Sistema operativo Microsoft Windows 7 Ultimate x64 sobre el que se ha instalado VMware Workstation.
Lo que haremos en este escenario de pruebas será aumentar el tamaño de la partición primaria / (raíz) donde tenemos instalado Linux Ubuntu virtualizado sobre VMware Workstation y sobre Windows 7. Realizaremos este proceso incluso teniendo una partición swap justo después de la partición del sistema.
Preparar máquina virtual Linux en VMware Workstation para aumentar tamaño HD
Cuando nos quedamos sin espacio en un disco duro donde está instalado el sistema base de una máquina virtual Linux podemos ampliar el tamaño, no es un método directo pero sí es posible. Con el comando Linux df -h obtendremos el espacio libre y ocupado de los discos duros la máquina virtual Linux:
En primer lugar para realizar el proceso de incremento de tamaño de disco duro del sistema deberemos apagar la máquina virtual. En el caso de una máquina con Linux podremos hacerlo desde la ventana de Terminal, ejecutando el comando Linux:
sudo shutdown -h now
O bien, si disponemos de modo gráfico, desde el menú de apagado normal del sistema Linux:
Una vez detenida la máquina virtual es muy conveniente y recomendable hacer copia de seguridad de la máquina completa (es suficiente con copiar la carpeta donde esté alojada a otra ubicación). El proceso que realizaremos es "delicado" y si se produce algún error podríamos provocar que la máquina virtual no vuelva a arrancar, haciendo un backup evitaremos cualquier situación indeseada.
Una vez detenida la máquina virtual y realizada la copia de seguridad de la misma, si queremos incrementar el tamaño del disco duro del sistema en una máquina, virtualizada sobre VMware Workstation, uno de los requisitos es que no debe haber snapshots, si tenemos alguno y queremos conservarlo deberemos utilizar otro método de amplicación del disco duro, como por ejemplo usar VMware vCenter Converter. Si la máquina virtual tiene algún snapshot realizado deberemos eliminarlo, para ello seleccionaremos la máquina virtual en VMware Workstation, en el menú "VM" seleccionaremos "Snapshot" - "Snapshot Manager":
Si tenemos algún snapshot lo eliminaremos seleccionándolo y pulsando sobre él con el botón derecho del ratón, en el menú emergente seleccionaremos "Delete":
El proceso de eliminación del snapshot puede tardar unos minutos, en función del tamaño de la máquina virtual, el asistente lo indicará con una ventana con el texto "Cleaning up deleted files":
Nota: si no eliminamos los snapshots e intentamos realizar el proceso de expansión, el asistente nos mostrará el siguiente mensaje de error: Disks can't be expanded if they belong to virtual machines that have snapshots. To expand this disk, either remove the snapshots or use VMware vCenter Converter.
Tras detener la máquina virtual, hacer backup y eliminar los snapshots ya podremos expandir el disco duro, para ello seleccionaremos la máquina virtual y pulsaremos en "Edit virtual machine settings":
Seleccionaremos el disco duro a ampliar en "Device", en nuestro caso "Hard Disk (SCSI) 20GB", en la parte derecha pulsaremos en "Utilities" y en el menú desplegable seleccionaremos "Expand":
El asistente para expandir el tamaño de un hd virtual nos indicará el tamaño actual, introduciremos el nuevo tamaño (en nuestro caso de 20GB a 50GB) y pulsaremos "Expand":
Se inicará el proceso de expansión del hd con el nuevo tamaño, este proceso puede tardar varios minutos, en función del espacio ocupado actualmente en el disco duro. El asistente nos mostrará una ventana con el progreso, con el texto "Exanding virtual disk":
Durante el proceso de expansión VMware Workstation creará un fichero temporal donde irá haciendo una copia de los datos del disco duro a expandir. En función del tipo de aprovisionamiento el tamaño del fichero será del espacio ocupado por el sistema operativo alojado en él o bien de todo el tamaño indicado en la expansión:
Tras la finalización de la expansión del hd, el asistente nos lo indicará con un mensaje, básicamente nos advertirá de que el proceso de expansión ha concluido pero para que el sistema operativo detecte el nuevo espacio será necesario expandir el disco en el sistema de ficheros:
Con el texto: The disk was succesfully expanded. You must repartition the disk and expand the file systems from within the guest operating system.
Aunque iniciáramos ahora la máquina virtual Linux en VMware Workstation, el nuevo tamaño del disco duro no será efectivo hasta que no expandamos el sistema de ficheros como indicamos en el siguiente punto de este tutorial.
Cambiar tamaño partición / raíz virtual ext4 con GParted en VMware Workstation
Tras preparar la máquina virtual como hemos indicado en el apartado anterior, descargaremos el fichero ISO con la imagen de GParted Live CD, usaremos este fichero para arrancar con este sistema y expandir el disco duro de la máquina virtual Linux a su nuevo tamaño. Para descargar GParted accederemos a la URL:
http://gparted.sourceforge.net/download.php
En nuestro caso, a fecha de este artículo, descargaremos: gparted-live-0.13.0-3.iso, una vez descargado el fichero ISO con GParted Live CD (no es necesario crear un CD con la imagen), volveremos a VMware Workstation, seleccionaremos la máquina virtual con la que estamos trabajando, abriremos las propiedades de la máquina virtual, pulsando en "Edit virtual machine settings":
Seleccionaremos "CD/DVD (IDE)" en "Device", en la parte derecha marcaremos "Use ISO image file" y pulsaremos "Browse":
Seleccionaremos el fichero ISO descargado anteriormente "gparted-live-0.13.0-3.iso" y pulsaremos "Abrir":
Marcaremos en "Device status" la opción "Connect at power on" y pulsaremos "OK":
Lo que hemos hecho anteriormente ha sido indicarle a la máquina virtual que use como CD/DVD el fichero ISO de GParted Live CD, de esta forma en el próximo arranque se iniciará GParted antes que el propio sistema operativo. Esto es necesario cuando queremos modificar el tamaño de la partición de root donde está instalado el sistema Linux, si no arrancamos con GParted no podremos modificar el tamaño de una partición del sistema. Tras indicar a VMware Workstation que la máquina virtual con Linux arranque con GParted la iniciaremos pulsando en "Power on this virtual machine":
Se iniciará GParted Live, pulsaremos en "GParted Live (Default settings):
Nota: si no arranca GParted Live tendremos que acceder a la BIOS de la máquina virtual pulsando F2 justo después de arrancarla o bien iniciando la máquina virtual desde el menú "VM" - "Power" - "Power On to BIOS":
Seleciconaremos "Select keymap from full list" (desplazándonos con las teclas de cursor) y pulsaremos INTO (OK):
Seleccionaremos el tipo de teclado que tengamos, en nuestro caso "pc / qwerty / Spanish / Standard / Standard" y pulsaremos INTRO:
Introduciremos el número correspondiente a nuestro idioma, en nuestro caso "25" y pulsaremos INTRO:
Introduciremos "0" para arrancar GParted en modo gráfico y pulsaremos INTRO:
Se iniciará GParted y nos mostrará los discos duros y sus particiones. Si todo el proceso es correcto nos mostrará el nuevo espacio libre sin asignar a la derecha. En nuestro caso disponemos de un disco duro con tres particiones:
- /dev/sda1: partición root donde se encuentra el sistema operativo, a la que queremos aumentarle el tamaño.
- /dev/sda2: partición donde se encuentran a su vez otras dos particiones:
- /dev/sda5: partición linux-swap
- Sin asignar: espacio no particionado resultado de la expansión anterior.
Si nos fijamos (y este es el escenario habitual) veremos que a la derecha de la partición principal ext4 root (del sistema), la /dev/sda2, se encuentra la partición linux-swap, por lo tanto no podremos ampliar el espacio de la partición del sistema de forma directa, tendremos que seguir los siguientes pasos para mover la partición swap a la derecha y dejar el espacio sin asignar junto a la partición del sistema, de esta forma sí podremos ampliarla:
1. En primer lugar seleccionaremos la partición linux-swap (/dev/sda5), pulsaremos con el botón derecho y seleccionaremos "Redimensionar/mover":
Ampliaremos la partición linux-swap a todo el tamaño posible (ocupando todo el espacio libre que hemos dejado al expandir), este paso será sólo temporal, hemos de hacerlo así para poder luego mover el espacio sin asignar a la izquierda y la swap a la derecha:
2. Ahora volveremos a seleccionar la partición "linux-swap" y pulsaremos con el botón derecho sobre ella, seleccionaremos nuevamente "Redimensionar/mover":
Lo que haremos ahora será acortar por la izquierda la partición swap hasta dejarla en la parte derecha, como se muestra en la imagen, en nuestro caso aprovecharemos este proceso para ampliar también 1GB la partición swap, de 2GB que tenía la dejaremos en 3GB. Es muy importante que la partición swap quede a la derecha:
GParted nos avisará de que el proceso de movimiento de una partición puede causar que el sistema operativo no arranque:
Con el texto: Mover una partición puede causar que su sistema operativo falle al arrancar. Ha puesto en cola una operación para mover el sector de inicio de la partición /dev/sda5. Es más probable que ocurra un fallo al arrancar si mueve la partición GNU/Linux que contenga /boot, o si mueve la partición C: de un sistema Windows. Puede aprender cómo reparar la configuración de arranque en las P+F de GParted. Mover una partición puede tardar mucho tiempo en completarse.
3. Ahora redimensionaremos toda la partición /dev/sda2, la que contiene el espacio sin asignar y la partición /dev/sda5 (swap) a la derecha. Para ello seleccionaremos la partición "/dev/sda2" como mostramos en la imagen y pulsaremos con el botón derecho del ratón y seleccionaremos "Redimensionar/mover":
Lo que haremos ahora será reducir todo lo que se pueda (hasta los 3GB de la partición swap), por la izquierda, la partición, de forma que dejaremos espacio libre sin asignar por la izquierda, justo después de la partición del sistema que queremos ampliar:
Nota: es muy importante que la reducción de la partición se haga desde la izquierda a la derecha, de forma que la partición swap quede a la derecha y el espacio libre a la izquierda.
4. Ahora ya podremos redimiensionar y ampliar la partición con el sistema ext4 operativo Linux (la boot), seleccionaremos esta partición (/dev/sda1), pulsaremos con el botón derecho sobre ella y seleccionaremos "Redimensionar/mover":
Ampliaremos el tamaño de la partición boot al máximo posible (en nuestro caso 48GB) y pulsaremos "Redimensionar/mover":
5. Una vez que hayamos realizado las operaciones anteriores (GParted aún no las ha aplicado), para aplicarlas definitivamente (siempre nos aseguraremos de tener copia de seguridad, hasta este punto el proceso es reversible) pulsaremos en el menú "Editar" - "Aplicar todas las operaciones":
Nos avisará de que la operación a partir de ahora será irreversible y podría causar la pérdida de datos, si tenemos la copia de seguridad y estamos seguros pulsaremos "Apply":
Con el texto: ¿Está seguro de querer ejecutar todas las operaciones pendientes? la edición de particiones puede causar PÉRDIDA DE DATOS. Se recomienda hacer una copia de seguridad de sus datos antes de continuar.
El proceso se iniciará, el asistente de GParted nos mostrará las acciones que está realizando y el progreso de cada una de ellas:
En nuestro caso el proceso de redimensionar y mover particiones tardará sólo unos segundos, debido a que se trata de discos duros virtuales. Cuando el proceso de redimensionar y mover particiones concluya, GParted nos lo indicará con "Operaciones completadas. Todas las operaciones se completaron satisfactoriamente". Pulsaremos "Close":
Pulsaremos en el botón "Exit":
Marcaremos "Shutdown" y pulsaremos "OK" para apagar la máquina virtual:
Una vez detenida la máquina virtual accederemos a sus propiedades y seleccionaremos "CD/DVD (IDE)" y volveremos a marcar "Use physical drive", de esta forma volveremos a dejar el CD de la máquina virtual como lo teníamos al principio y no con el GParted:
Ya podremos arrancar la máquina virtual Linux y comprobar que todo el proceso de aumento del tamaño de la partición del sistema ha sido correcto, ejecutando "sudo df -h" veremos que el espacio libre ya es detectado por Linux correctamente: