Revisión de Cómo redimensionar las particiones encriptadas por defecto en Trisquel de Vie, 11/08/2024 - 15:15

La revisión le permite rastrear las diferencias que hay entre distintas versiones de una entrada.

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!!

So... what about SWAP?

There are plenty of discussions about how much swap we might need, if it's still useful to have a swap partition, etc.

Regardless, if you want to increase your swap partition size, you'll see that it is very similar to the above procedure.

In this guide, we'll continue with the same VM, and sizes we left before:

$ 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

The current swap size is ~4GB, let's add another 4GB from the home volume.

GOAL:

Move 4GB to swap from home.

Let's try to speed up things; as before, let's start by booting into the Live ISO, once on the live session,

Let's confirm the encrypted partition name, 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

Open the encrypted device, it will require the passphrase:

$ sudo cryptsetup luksOpen /dev/vda4 mydisk
Enter passphrase for /dev/vda4:

Then:

$ 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

Let's shrink vgtrisquel/home by 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.

Time to enlarge the swap volume,

$ 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.

Then, we confirm:

$ 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

The swap is now 7.9 GB, success !!

We still need to initialize the enlarged swap space:

$ 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

Now, we check the fstab:

$ sudo mount /dev/mapper/vgtrisquel-root /mnt

$ grep swap /mnt/etc/fstab

The output may be like one of the two:
1. /dev/mapper/vgtrisquel-swap_1 none swap sw 0 0
2. UUID=368f4c5d-6b94-48d5-b44c-f8cef74af6df none swap sw 0 0

Only if it is like 2. (otherwise, skip this):

$ 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

Now, we close:

$ sudo umount /mnt

$ sudo vgchange -an
  0 logical volume(s) in volume group "vgtrisquel" now active

$ sudo cryptsetup luksClose mydisk

Time to reboot.

Revisiones

11/08/2024 - 15:15
iShareFreedom