Volumi Cifrati con LUKS¶
Se vuoi creare un volume cifrato collegato alla tua macchina virtuale, puoi usare LUKS (Linux Unified Key Setup), che è lo standard per la cifratura dei dischi fissi su Linux.
Per favore fai un backup dei tuoi dati prima di eseguire le operazioni descritte in questa pagina.
Setup¶
Assumiamo che tu abbia già una VM attiva e funzionante. Quindi:
- elenca i dischi attuali. Dalla riga di comando della VM emetti il seguente comando:
fdisk -l | grep 'Disk /dev'
e annota i nomi dei dischi (es. /dev/vda).
- crea un nuovo volume. Dalla dashboard, clicca su "Volumi" e poi su "Crea Volume", scegli un nome e una dimensione e clicca su "Crea Volume".

- collega il nuovo volume alla VM. Nel menu a tendina delle azioni del volume seleziona "Manage Attachments". Seleziona la VM a cui il volume sarà collegato.

- elenca i dischi attuali. Dalla riga di comando della VM emetti di nuovo il seguente comando:
fdisk -l | grep 'Disk /dev'
Dovresti trovare un nuovo disco. Questo è solitamente /dev/vdb ma ci riferiremo ad esso come /dev/vdX d'ora in poi.
- crea una nuova partizione sul nuovo disco. Questi comandi creeranno la partizione
/dev/vdX1:
parted -a optimal -- /dev/vdX mklabel gpt
parted -a optimal -- /dev/vdX mkpart primary ext4 1MiB -2048s
Controlla che la nuova partizione /dev/vdX1 esista con:
fdisk -l | grep '/dev/vdX1'
Questo dovrebbe stampare una riga con il nome e la dimensione della partizione.
- imposta LVM:
pvcreate /dev/vdX1
vgcreate encvg /dev/vdX1
lvcreate -l100%FREE -n encvol encvg
- imposta la partizione cifrata. Emetti il comando e segui le istruzioni a schermo:
cryptsetup -v -s 512 luksFormat /dev/encvg/encvol
This will overwrite data on `/dev/encvg/encvol` irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase for /dev/encvg/encvol:
Verify passphrase:
Command successful.
Scegli una passphrase forte (generata casualmente) e conservala in un luogo sicuro (es. usa un password manager).
- apri la partizione cifrata, crea un filesystem e montalo:
cryptsetup open --type luks /dev/encvg/encvol ev
mkfs.ext4 /dev/mapper/ev
mkdir /mnt/encrypted
mount /dev/mapper/ev /mnt/encrypted
df -h
echo "questo sarà automaticamente criptato" > /mnt/encrypted/test.txt
- le operazioni da eseguire ad ogni avvio della VM saranno:
cryptsetup open --type luks /dev/encvg/encvol ev
mount /dev/mapper/ev /mnt/encrypted
Ridimensionare¶
Se in seguito hai bisogno di più spazio sul tuo volume cifrato, puoi eseguire le seguenti operazioni:
- smonta la partizione cifrata e chiudila:
umount /mnt/encrypted
cryptsetup close ev
- scollega il volume dalla VM. Dalla dashboard, clicca su "Volumi", poi nel menu a tendina del volume scegli "Manage Attachments", clicca su "Detach Volume" e conferma

-
ridimensiona il volume. Vai di nuovo sul menu a tendina del volume, scegli "Extend Volume" e scegli una dimensione maggiore per il volume.
-
ricollega il volume alla VM. Di nuovo dal menu a tendina del volume scegli "Manage Attachments" e collega il volume nuovamente alla VM.
-
Correggi la tabella delle partizioni. Dalla riga di comando della VM:
parted -a optimal /dev/vdX print
Not all of the space available to /dev/vdX appears to be used,
you can fix the GPT to use all of the space (an extra 4194304 blocks)
or continue with the current setting?
Fix/Ignore? Fix
Model: Virtio Block Device (virtblk)
Disk /dev/vdX: 12.9GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 10.7GB 10.7GB primary
- Estendi la partizione:
parted -a optimal --script -- /dev/vdX resizepart 1 -2048s
pvresize /dev/vdX1
lvextend -l +100%FREE /dev/encvg/encvol
cryptsetup open --type luks /dev/encvg/encvol ev
cryptsetup resize ev
e2fsck -f /dev/mapper/ev
resize2fs /dev/mapper/ev
- Monta e controlla lo spazio disponibile:
mount /dev/mapper/ev /mnt/encrypted
df -h
XFS¶
Per i volumi xfs, invece di e2fsck e resize2fs usa xfs_repair e xfs_growfs .es.:
xfs_repair /dev/mapper/ev # invece di e2fsck -f /dev/mapper/ev
mount /dev/mapper/ev /mnt/myvolume/ # montalo prima
xfs_growfs /dev/mapper/ev # invece di resize2fs /dev/mapper/ev