Extender una partición cifrada LUKS para llenar el disco

Extender una partición cifrada LUKS para llenar el disco

Recientemente actualicé mi disco de un SSD de 128 GB a un SSD de 512 GB. La partición / está cifrada con LUKS. Estoy buscando ayuda para extender la partición para usar todo el espacio libre en el nuevo disco. Ya añadí el disco antiguo al nuevo:

[root@localhost ~]# fdisk -l /dev/sda
Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00009f33

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048   1026047   1024000   500M 83 Linux
/dev/sda2       1026048 250064895 249038848 118.8G 83 Linux

Hay alrededor de 380 GB de espacio no utilizado después de sda2.

Más información relevante:

[root@localhost ~]# vgs
  VG             #PV #LV #SN Attr   VSize   VFree
  fedora_chocbar   1   3   0 wz--n- 118.75g 4.00m

[root@localhost ~]# lvs
  LV   VG             Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  home fedora_chocbar -wi-a----- 85.55g                                                    
  root fedora_chocbar -wi-a----- 29.30g                                                    
  swap fedora_chocbar -wi-a-----  3.89g

[root@localhost ~]# pvs
  PV                    VG             Fmt  Attr PSize   PFree
  /dev/mapper/encrypted fedora_chocbar lvm2 a--  118.75g 4.00m

Parece haber mucha información sobre cómo hacer esto, pero muy poca explicación. Agradezco cualquier ayuda en esto.

Respuesta1

¡DE ACUERDO! La respuesta definitiva por fin. Mis pasos para expandir un volumen cifrado LUKS...

  1. cryptsetup luksOpen /dev/sda2 crypt-volumepara abrir el volumen cifrado.
  2. parted /dev/sdapara ampliar la partición. resizepart NUMBER END.
  3. vgchange -a n fedora_chocbar. Deje de usar el VG para poder realizar el siguiente paso.
  4. cryptsetup luksClose crypt-volume. Cierre el volumen cifrado para los siguientes pasos.
  5. cryptsetup luksOpen /dev/sda2 crypt-volume. Ábrelo de nuevo.
  6. cryptsetup resize crypt-volume. Cambiará automáticamente el tamaño del volumen LUKS al espacio disponible.
  7. vgchange -a y fedora_chocbar. Activa el VG.
  8. pvresize /dev/mapper/crypt-volume. Cambie el tamaño del PV.
  9. lvresize -l+100%FREE /dev/fedora_chocbar/home. Cambie el tamaño del LV para /home al 100% del espacio libre.
  10. e2fsck -f /dev/mapper/fedora_chocbar-home. Lanza un poco de magia fsck al fs redimensionado.
  11. resize2fs /dev/mapper/fedora_chocbar-home. Cambiar el tamaño del sistema de archivos en /home (utiliza automáticamente 100% de espacio libre)

Espero que alguien más encuentre esto útil. ¡Ahora tengo más de 300 GB para mis máquinas virtuales de prueba en mi computadora portátil!

Respuesta2

Para aquellos que lleguen a la respuesta y descubran cómo simplemente cambiar el tamaño de una partición LUKS al tamaño del contenedor redimensionado, los comandos son los siguientes:

  • con volumen cifrado LUKSabrióy el volumen abierto asignado como opened-volume, ejecute

    sudo cryptsetup resize /dev/mapper/opened-volume
    

    para cambiar el tamaño del volumen cifrado LUKS en línea...

  • luego cambie el tamaño del contenido.

    • Por ejemplo si es unsistema de archivos ext4, puedes cambiar su tamaño incluso si está montado con

      sudo resize2fs /dev/mapper/opened-volume
      
    • O si tuvieras unLVMvolumen fisico adentroel volumen cifrado LUKS, solo use pvresize:

      sudo pvresize /dev/mapper/opened-volume
      

He hecho esto con un sistema de archivos montado/PV activado sin interrupción; ¡Fue posible cambiar el tamaño del contenedor sin desmontarlo primero porque el volumen cifrado estaba en un volumen lógico LVM (usando lvresize)/usando partedpara cambiar el tamaño de una partición GPT para contener el espacio libre que lo seguía inmediatamente!

Respuesta3

Encontré una solución mucho más fácil. Ejecute Xubuntu en vivo, instale e inicie el administrador de particiones. Puede manejar muy bien particiones cifradas.

Los detalles completos están aquí:http://e1z.ca/devlog/encrypted_partition_resize.html

Respuesta4

Cambiar el tamaño desde la línea de comando con separaciónsin LVM(en una tabla de particiones ms-dos para mayor diversión).

Amplié mi VPS de 50G a 150G.

Crypttab dice:

# cat /etc/crypttab 
vda5_crypt UUID=c5e67d21-6af4-4d55-a4bc-2978e50c00c3 none luks
vda6_crypt /dev/vda6 /dev/urandom cipher=aes-xts-plain64,size=256,swap

Tamaños:

# df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vda5_crypt   47G   12G   35G  26% /
/dev/vda1               641M   63M  532M  11% /boot

El diseño de la partición es:

# parted /dev/vda print                                                        
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  700MB   699MB   primary   ext4         boot
 2      701MB   53.7GB  53.0GB  extended
 5      701MB   51.7GB  51.0GB  logical
 6      51.7GB  53.7GB  1985MB  logical

Como puede ver, mi partición de intercambio (partición 6) está en el camino; Necesito eliminarlo para expandir la partición. Primero apague el intercambio:

swapoff -a && free -lm

La línea 'Swap:' debe leer todo ceros.

Ahora, lo complicado es cambiar el tamaño de las particiones y restaurarlas antes de reiniciar y expandir (parted se quejará de que no puede informar al kernel, lo ignoré varias veces).

Primero elimine la partición de intercambio:

parted /dev/vda
(parted) rm 6
Error: Partition(s) 6 on /dev/vda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use.  As a
result, the old partition(s) will remain in use.  You should reboot now before making further changes.
Ignore/Cancel? i 

Extienda la partición lógica (2) para contener las particiones extendidas, hasta el final del disco (-1):

(parted) resizepart 2 -1

Cambie el tamaño de la partición lógica 5, manteniendo espacio para la partición de intercambio (partid se quejará nuevamente, simplemente continúe y (i)ignore:

(parted) resizepart 5 -4G

Vuelva a crear la partición de intercambio; como puede ver en crypttab, es aleatoria en cada arranque, por lo que no nos molestamos con el UUID; no es bueno para suspender, pero para servidores y no suspender es la forma preferida. Créelo desde el final de la partición anterior (157G) hasta el final del disco (-1):

(parted) mkpart                                                           
Partition type?  primary/logical? l                                       
File system type?  [ext2]? linux-swap                                     
Start? 157GB                                                              
End? -1    

Comprueba los resultados:

(parted) print                                                            
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size    Type      File system     Flags
 1      1049kB  700MB  699MB   primary   ext4            boot
 2      701MB   161GB  160GB   extended
 5      701MB   157GB  156GB   logical
 6      157GB   161GB  3998MB  logical   linux-swap(v1)  lba
(parted) quit

Ahorareiniciary normalmente deberías iniciar el sistema, desbloqueando la partición.

Después de reiniciar, verifique su espacio de intercambio:

# swapon
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition 3.7G   0B   -1

¡Es hora de expandirse! Utilice 'cryptsetup resize /dev/mapper/opened-volume' y 'resize2fs /dev/mapper/opened-volume'

cryptsetup resize /dev/mapper/vda5_crypt
resize2fs /dev/mapper/vda5_crypt

Como resultado, mi volumen cifrado cambió de tamaño a 132G:

# df -h
Filesystem              Size  Used Avail Use% Mounted on
/dev/mapper/vda5_crypt  144G   12G  132G   9% /
/dev/vda1               641M   63M  532M  11% /boot

información relacionada