This is an old revision of the document!
Extend a partition of a VM
Since the update of august 2017 it is possible to choose a custom size for the root disk or resize an existing disk, but before that extra space can be used it has to be manually assigned in the operating system. The Ubuntu 14.04 and 16.04 templates have the root partition mounted over LVM, using a logical partition of DOS type. Even though this guide is written for those templates it is advisable no to skip the Check the configuration chapter.
Check of the configuration
Before continuing you should confirm that the system you are working on has this configuration, otherwise you risk destroying the system.
First check if you're using LVM:
# df -h / S.ficheros Tamaño Usados Disp Uso% Montado en /dev/mapper/Ubuntu14--vg-root 8,5G 6,3G 1,8G 79% /
El comando df -h
muestra el montaje de /
en /dev/mapper/Ubuntu–vg-root
, lo que nos confirma que el sistema sí está montado sobre LVM.
Ahora comprueba el nombre del volumen lógico utilizando para el root.
# lvs LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert root Ubuntu-vg -wi-ao--- 6.03g swap1 Ubuntu-vg -wi-ao--- 748.00m
También comprueba el nombre del grupo de volúmenes asociado y su volumen físico.
# pvs PV VG Fmt Attr PSize PFree /dev/sda5 Ubuntu14-vg lvm2 a-- 9,76g 0
Con esos comandos vemos que el root está en un volumen lógico llamado root
dentro de un grupo de volúmenes llamado Ubuntu-vg
que utiliza como volumen físico /dev/sda5
.
Ten en cuenta además que en el sistema de particionado utilizado, /dev/sda5
es una partición lógica que forma parte de la partición extendida /dev/sda2
.
Redimensionado
El redimensionado se puede resumir en los siguientes 5 pasos:
- Extender la partición extendida
/dev/sda2
para que ocupe el espacio libre en el disco. - Extender la partición lógica
/dev/sda5
para que ocupe el espacio libre en la partición extendida. - Extender el volumen físico del grupo de volúmenes
Ubuntu-vg
. - Extender el volumen lógico
root
para que ocupe el espacio libre del grupo de volúmenes. - Extender el sistema de archivos para que ocupe el espacio libre del volumen lógico.
Arrancamos parted
. Con el comando print free
vemos que el disco tiene un total de 21.5GB y un espacio libre al final del disco de 14GB.
# parted /dev/vda (parted) print free Model: Virtio Block Device (virtblk) Disk /dev/vda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 32.3kB 1049kB 1016kB Free Space 1 1049kB 256MB 255MB primary ext2 boot 256MB 257MB 1048kB Free Space 2 257MB 7515MB 7258MB extended 5 257MB 7515MB 7258MB logical lvm 7515MB 21.5GB 14.0GB Free Space
Primero hay que extender las particiones extendidas y lógica (por ese orden) para que acaben en el final del disco, que en este caso es 21.5GB (pasos 1 y 2).
(parted) resizepart 2 21.5GB (parted) resizepart 5 21.5GB (parted) quit
Una vez hecho, ya fuera de parted, extendemos el volumen físico del grupo de volúmenes (paso 3).
# pvresize /dev/vda5 Physical volume "/dev/vda5" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
Ahora extendemos el volumen lógico (paso 4).
# lvextend -l+100%FREE /dev/mapper/Ubuntu--vg-root Extending logical volume root to 19.03 GiB Logical volume root successfully resized
Por último, extendemos el sistema de archivos (paso 5).
# resize2fs /dev/mapper/Ubuntu--vg-root resize2fs 1.42.9 (4-Feb-2014) Filesystem at /dev/mapper/Ubuntu--vg-root is mounted on /; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/mapper/Ubuntu--vg-root is now 4987904 blocks long.
Una vez hecho esto, todo el espacio libre debería estar ya asignado al root del sistema.