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 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 / Filesystem Size Used Avail Use% Mounted in /dev/mapper/Ubuntu14--vg-root 8,5G 6,3G 1,8G 79% /
df -h
shows that /
is mounted in /dev/mapper/Ubuntu–vg-root
and that means that LVM is in use.
Now check the root's logical volume name.
# 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
Also check the associate volume group name and its physical volume.
# pvs PV VG Fmt Attr PSize PFree /dev/sda5 Ubuntu14-vg lvm2 a-- 9,76g 0
We can see that root is in a logical volume called root
inside a volume group called Ubuntu-vg
that uses /dev/sda5
as a physical volume.
Take into account that /dev/sda5
is a logical partition that
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.