Cómo redimensionar las particiones encriptadas por defecto en Trisquel
Esta guía asume que usted ha usado el instalador de imágenes Live USB/DVD ISO de Ubiquity y ha elegido encriptar su disco usando la opción por defecto haciendo click en "Siguiente" hasta que el sistema se instale.
Para esta guía vamos a utilizar:
Disco: 100GB
El disco se identifica como: vda
Después de un par de días o semanas e instalando todos tus programas habituales, aplicando actualizaciones, el espacio disponible en tu partición raíz puede ser bastante bajo, mientras que la partición home tiene suficiente espacio disponible. Puedes empezar a eliminar programas innecesarios, pero incluso eso tiene un límite.
Revisemos el caso en cuestión:
DETALLES DE LA PARTICIÓN DEL DISCO
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part /boot/efi ├─vda3 252:3 0 1.7G 0 part /boot └─vda4 252:4 0 97.8G 0 part └─vda4_crypt 253:0 0 97.8G 0 crypt ├─vgtrisquel-root 253:1 0 23.3G 0 lvm / ├─vgtrisquel-swap_1 253:2 0 3.9G 0 lvm [SWAP] └─vgtrisquel-home 253:3 0 70.6G 0 lvm /home
Esto muestra que
- vda4 contiene un volumen cifrado (TYPE: crypt)
- contiene 3 volúmenes lógicos (TYPE: lvm)
- hay volúmenes separados para / (root) y /home
Esta guía sólo es aplicable si puedes ver esto.
$ df -h -t ext4 S.ficheros Tamaño Usados Disp Uso% Montado en /dev/mapper/vgtrisquel-root 23G 19G 3.5G 84% / /dev/vda3 1.7G 173M 1.4G 12% /boot /dev/mapper/vgtrisquel-home 69G 4.4M 66G 1% /home
Si /home no aparece con este comando, esta guía no es aplicable.
Lo vemos:
/ (llamado "root") está usado al 80% y sólo dispone de 3,5G.
/home está casi vacío y tiene 65,4G disponibles.
Así que podríamos tomar 10 GB de home para root.
OBJETIVO
Mover 10 GBs del volumen home al volumen raíz (root).
REQUISITOS
Consigue una ISO de Trisquel, verifícala y prepara un Live USB desde el que arrancar, hay muchas formas de hacerlo en la documentación.
PROCESO
1. Habilitar partición encriptada LVM
Comencemos arrancando en el Live ISO, y seleccionemos «Probar sin instalar», luego familiaricémonos con los detalles del disco usando el sistema en vivo. En una terminal:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 2.8G 1 loop /rofs sr0 11:0 1 2.9G 0 rom /cdrom vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part ├─vda3 252:3 0 1.7G 0 part └─vda4 252:4 0 97.8G 0 part
Podemos identificar que vda4 es la partición encriptada principal con todos los datos; así que abrimos el dispositivo encriptado, que requerirá la clave de acceso
$ sudo cryptsetup luksOpen /dev/vda4 mydisk
Introduzca la frase de contraseña para /dev/vda4:
ahora podemos ver las particiones en el interior del bloque encriptado en un detalle;
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 2.8G 1 loop /rofs sr0 11:0 1 2.9G 0 rom /cdrom vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part ├─vda3 252:3 0 1.7G 0 part └─vda4 252:4 0 97.8G 0 part └─mydisk 253:0 0 97.8G 0 crypt ├─vgtrisquel-root 253:1 0 23.3G 0 lvm ├─vgtrisquel-swap_1 253:2 0 3.9G 0 lvm └─vgtrisquel-home 253:3 0 70.6G 0 lvm
2. Redimensionar HOME
Asegúrese de obtener los nombres LV (volumen lógico) y VG (grupo de volúmenes) correctos:
$ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home vgtrisquel -wi-a----- 70.64g root vgtrisquel -wi-a----- 23.28g swap_1 vgtrisquel -wi-a----- <3.86g
Necesitamos especificar el volumen como VG/LV. Aquí, queremos reducir vgtrisquel/home en 10 GB y redimensionar el sistema de ficheros:
$ sudo lvresize -r -L -10G vgtrisquel/home fsck from util-linux 2.37.2 /dev/mapper/vgtrisquel-home: 151/4636672 files (2.0% non-contiguous), 436537/18519040 blocks resize2fs 1.46.5 (30-Dec-2021) Resizing the filesystem on /dev/mapper/vgtrisquel-home to 15897600 (4k) blocks. The filesystem on /dev/mapper/vgtrisquel-home is now 15897600 (4k) blocks long. Size of logical volume vgtrisquel/home changed from 70.64 GiB (18085 extents) to 60.64 GiB (15525 extents). Logical volume vgtrisquel/home successfully resized.
Ahora:
$ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home vgtrisquel -wi-a----- 60.64g root vgtrisquel -wi-a----- 23.28g swap_1 vgtrisquel -wi-a----- <3.86g
Vemos que vgtrisquel/home se ha reducido de 70,64g a 60,64g.
Observando el volumen del grupo vgtrisquel:
$ sudo pvs PV VG Fmt Attr PSize PFree /dev/mapper/mydisk vgtrisquel lvm2 a-- <97.81g 10.02g
La última columna muestra que vgtrisquel tiene 10,02g libres.
3. Redimensionar ROOT
El volumen root es vgtrisquel/root. Aumentemos su tamaño para ocupar todo el espacio libre disponible en el grupo de volúmenes:
$ sudo lvresize -r -l +100%FREE vgtrisquel/root fsck from util-linux 2.37.2 /dev/mapper/vgtrisquel-root: 303601/1525920 files (0.2% non-contiguous), 4888274/6103040 blocks Size of logical volume vgtrisquel/root changed from 23.28 GiB (5960 extents) to 33.30 GiB (8526 extents). Logical volume vgtrisquel/root successfully resized. resize2fs 1.46.5 (30-Dec-2021) Resizing the filesystem on /dev/mapper/vgtrisquel-root to 8730624 (4k) blocks. The filesystem on /dev/mapper/vgtrisquel-root is now 8730624 (4k) blocks long.
4. Confirmar el tamaño de las particiones
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 2.8G 1 loop /rofs sr0 11:0 1 2.9G 0 rom /cdrom vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part ├─vda3 252:3 0 1.7G 0 part └─vda4 252:4 0 97.8G 0 part └─mydisk 253:0 0 97.8G 0 crypt ├─vgtrisquel-root 253:1 0 33.3G 0 lvm ├─vgtrisquel-swap_1 253:2 0 3.9G 0 lvm └─vgtrisquel-home 253:3 0 60.6G 0 lvm
Así que root es ahora 33,3 GB en lugar de 23,3 GB.
5. Desmontar y reiniciar
En este punto podemos desmontar los volúmenes activos
$ sudo vgchange -an 0 logical volume(s) in volume group "vgtrisquel" now active
Vemos que falta algo más,
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 2.8G 1 loop /rofs sr0 11:0 1 2.9G 0 rom /cdrom vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part ├─vda3 252:3 0 1.7G 0 part └─vda4 252:4 0 97.8G 0 part └─mydisk 253:0 0 97.8G 0 crypt
Así que procedemos a cerrar el dispositivo encriptado,
$ sudo cryptsetup luksClose mydisk
Ahora es seguro reiniciar el sistema y confirmar el nuevo tamaño:
$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 392M 1.3M 390M 1% /run /dev/mapper/vgtrisquel-root 33G 19G 13G 59% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock /dev/vda3 1.7G 173M 1.4G 12% /boot /dev/vda2 512M 296K 512M 1% /boot/efi /dev/mapper/vgtrisquel-home 60G 4.4M 57G 1% /home tmpfs 392M 120K 392M 1% /run/user/1000/
Ahora tenemos 13 GB disponibles para root, ¡¡éxito!!
Entonces... ¿qué pasa con el SWAP?
Hay muchas discusiones sobre cuánta swap podemos necesitar, si sigue siendo útil tener una partición swap, etc.
En cualquier caso, si quieres aumentar el tamaño de tu partición swap, verás que es muy similar al procedimiento anterior.
En esta guía, continuaremos con el mismo VM, y tamaños que dejamos antes:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part /boot/efi ├─vda3 252:3 0 1.7G 0 part /boot └─vda4 252:4 0 97.8G 0 part └─vda4_crypt 253:0 0 97.8G 0 crypt ├─vgtrisquel-root 253:1 0 33.3G 0 lvm / ├─vgtrisquel-swap_1 253:2 0 3.9G 0 lvm [SWAP] └─vgtrisquel-home 253:3 0 60.6G 0 lvm /home
El tamaño actual del swap es de ~4GB, añadamos otros 4GB desde el volumen home.
OBJETIVO:
Mover 4GB a swap desde home.
Vamos a tratar de acelerar las cosas; como antes, vamos a empezar por arrancar en la Live ISO, una vez en la sesión en vivo:
Confirmemos el nombre de la partición encriptada es vda4,
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 2.8G 1 loop /rofs sr0 11:0 1 2.9G 0 rom /cdrom vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part ├─vda3 252:3 0 1.7G 0 part └─vda4 252:4 0 97.8G 0 part
Abre el dispositivo encriptado, te pedirá la frase de contraseña:
$ sudo cryptsetup luksOpen /dev/vda4 mydisk
Enter passphrase for /dev/vda4:
Entonces:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 2.8G 1 loop /rofs sr0 11:0 1 2.9G 0 rom /cdrom vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part ├─vda3 252:3 0 1.7G 0 part └─vda4 252:4 0 97.8G 0 part └─mydisk 253:0 0 97.8G 0 crypt ├─vgtrisquel-root 253:1 0 33.3G 0 lvm ├─vgtrisquel-swap_1 253:2 0 3.9G 0 lvm └─vgtrisquel-home 253:3 0 60.6G 0 lvm
Reduzcamos vgtrisquel/home en 4G:
$ sudo lvresize -r -L -4G vgtrisquel/home fsck from util-linux 2.37.2 /dev/mapper/vgtrisquel-home: 151/3981312 files (2.0% non-contiguous), 395404/15897600 blocks resize2fs 1.46.5 (30-Dec-2021) Resizing the filesystem on /dev/mapper/vgtrisquel-home to 14849024 (4k) blocks. The filesystem on /dev/mapper/vgtrisquel-home is now 14849024 (4k) blocks long. Size of logical volume vgtrisquel/home changed from 60.64 GiB (15525 extents) to 56.64 GiB (14501 extents). Logical volume vgtrisquel/home successfully resized.
Es hora de ampliar el volumen de intercambio (swap),
$ sudo lvresize -l +100%FREE vgtrisquel/swap_1 Size of logical volume vgtrisquel/swap_1 changed from <3.86 GiB (988 extents) to <7.86 GiB (2012 extents). Logical volume vgtrisquel/swap_1 successfully resized.
Entonces, confirmamos:
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 2.8G 1 loop /rofs sr0 11:0 1 2.9G 0 rom /cdrom vda 252:0 0 100G 0 disk ├─vda1 252:1 0 1M 0 part ├─vda2 252:2 0 513M 0 part ├─vda3 252:3 0 1.7G 0 part └─vda4 252:4 0 97.8G 0 part └─mydisk 253:0 0 97.8G 0 crypt ├─vgtrisquel-root 253:1 0 33.3G 0 lvm /mnt ├─vgtrisquel-swap_1 253:2 0 7.9G 0 lvm [SWAP] └─vgtrisquel-home 253:3 0 56.6G 0 lvm
El intercambio es ahora de 7.9 GB, ¡¡éxito!!
Todavía tenemos que inicializar el espacio de intercambio (swap) ampliado:
$ sudo mkswap /dev/vgtrisquel/swap_1 mkswap: /dev/mapper/vgtrisquel-swap_1: warning: wiping old swap signature. Setting up swapspace version 1, size = 7.9 GiB (8438935552 bytes) no label, UUID=4fc8c0c8-03cd-42c9-8e9a-66396ca98636
Ahora, comprobamos el fstab:
$ sudo mount /dev/mapper/vgtrisquel-root /mnt $ grep swap /mnt/etc/fstab
La salida puede ser como una de las dos:
1. /dev/mapper/vgtrisquel-swap_1 none swap sw 0 0
2. UUID=368f4c5d-6b94-48d5-b44c-f8cef74af6df none swap sw 0 0
Sólo si es como el 2. (si no, sáltate esto):
$ sudo sed -i '/swap/d' /mnt/etc/fstab $ echo UUID=$(lsblk -n -o UUID /dev/vgtrisquel/swap_1) none swap sw 0 0 | sudo tee -a /mnt/etc/fstab 1>/dev/null
Ahora, cerramos:
$ sudo umount /mnt $ sudo vgchange -an 0 logical volume(s) in volume group "vgtrisquel" now active $ sudo cryptsetup luksClose mydisk
Hora de reiniciar.