J'ai un problème avec la création de swap crypté.
Je suis ces pas
Sudo swapoff -a
/etc/crypttab
/etc/fstab
Sudo mkswap /dev/sda5
/etc/initramfs-tools/conf.d/resume
avec le nouvel UUIDSudo update-initramfs -u
Sudo swapon /dev/sda5
Sudo ecryptfs-setup-swap
Et à ce point je rencontre ce problème
root@username-UX430UN:/home/username# ecryptfs-setup-swap
WARNING:
An encrypted swap is required to help ensure that encrypted files are not leaked to disk in an unencrypted format.
HOWEVER, THE SWAP ENCRYPTION CONFIGURATION PRODUCED BY THIS PROGRAM WILL BREAK HIBERNATE/RESUME ON THIS SYSTEM!
NOTE: Your suspend/resume capabilities will not be affected.
Do you want to proceed with encrypting your swap? [y/N]: y
INFO: Setting up swap: [/dev/sda5]
marking GPT swap partition /dev/sda5 as no-auto...
swapon: stat of /dev/mapper/cryptswap1 failed: No such file or directory
J'ai eu le même problème lorsque j'ai essayé de configurer mon espace de swap crypté et que je pensais avoir trouvé une solution. Pour commencer, voici quelques liens que j'ai utilisés dans mes recherches:
Lorsque j'ai exécuté ecryptfs-setup-swap
la première fois (notez que j'avais déjà configuré un espace d'échange lors de l'installation, de sorte que je n'avais pas besoin de faire mkswap
name__, j'ai reçu un message d'erreur indiquant que cet espace d'échange ne pouvait pas être monté correctement.
$ Sudo ecryptfs-setup-swap
[Sudo] password for isaac:
WARNING:
An encrypted swap is required to help ensure that encrypted files are not leaked to disk in an unencrypted format.
HOWEVER, THE SWAP ENCRYPTION CONFIGURATION PRODUCED BY THIS PROGRAM WILL BREAK HIBERNATE/RESUME ON THIS SYSTEM!
NOTE: Your suspend/resume capabilities will not be affected.
Do you want to proceed with encrypting your swap? [y/N]: y
INFO: Setting up swap: [/dev/nvme0n1p5]
WARNING: Commented out your unencrypted swap from /etc/fstab
marking GPT swap partition /dev/nvme0n1p5 as no-auto...
swapon: stat of /dev/mapper/cryptswap1 failed: No such file or directory
J'ai essayé d'exécuter à nouveau la commande et j'ai reçu un message indiquant que je n'avais plus d'espace d'échange.
$ Sudo ecryptfs-setup-swap
INFO: You do not currently have any swap space defined.
You can create a swap file by doing:
$ Sudo dd if=/dev/zero of=/swapfile count=130667600
$ Sudo mkswap /swapfile
$ Sudo swapon /swapfile
And then re-run /usr/bin/ecryptfs-setup-swap
En vérifiant deux fois le message d'erreur de la première exécution de la commande ecrypt, il semble que /dev/mapper/cryptswap1
n'existe pas.
$ ls /dev/mapper/
control
Sur la base de l'article blog mentionné précédemment, j'ai décidé de commencer à chercher dans mes fichiers système des preuves de la raison pour laquelle l'espace d'échange n'a pas été identifié. Le blog mentionne que les schémas de nommage modifiés des partitions de disque dur posent des problèmes pour ecryptfs et que le passage à l’utilisation d’un identifiant basé sur UUID est plus cohérent.
$ blkid
/dev/nvme0n1p5: UUID="aea96d7f-e091-460b-95fd-a34ab884d440" TYPE="swap" PARTUUID="0a7db4e0-17bf-40e3-8675-afec7891afc5"
/dev/nvme0n1p1: LABEL="ESP" UUID="C291-E533" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="63fc7fb9-2ca5-422b-90c7-0db698acdb3c"
/dev/nvme0n1p3: UUID="16F4C1EEF4C1D063" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c04d0838-5570-4bfc-a961-4b9224b8cc0c"
/dev/nvme0n1p4: UUID="0EEE7736EE7714E5" TYPE="ntfs" PARTUUID="4dc6595f-cc9c-4d80-99ab-ffd9cbe3c1d7"
/dev/nvme0n1p6: UUID="8b2f5c94-db79-4c8d-b5c6-403d912bc0dd" TYPE="ext4" PARTUUID="e373c83f-f992-4e62-a235-1fdd01ac7cf0"
Notez que mon espace d'échange est /dev/nvme0n1p5
et que l'UUID aea96d7f...
. Je vais maintenant jeter un oeil sur /etc/fstab
et /etc/crypttab
pour voir à quoi ressemble la configuration de swap.
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p6 during installation
UUID=8b2f5c94-db79-4c8d-b5c6-403d912bc0dd / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=C291-E533 /boot/efi vfat umask=0077 0 1
# swap was on /dev/nvme0n1p5 during installation
#UUID=aea96d7f-e091-460b-95fd-a34ab884d440 none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
$ cat /etc/crypttab
# <target name> <source device> <key file> <options>
cryptswap1 UUID=aea96d7f-e091-460b-95fd-a34ab884d440 /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
Il y a quelques points à noter ici, alors je vais les passer en revue une à la fois.
fstab
pour désactiver mon ancien espace de swap (ligne commentée avec le UUID de swap) et activer celui chiffré.Enfin, j'ai vérifié swapon
pour voir s'il trouve de l'espace d'échange.
$ swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 31248892 0 -1
On dirait qu'il pointe vers un espace d'échange (de taille correcte) mais que cet espace d'échange n'est pas correctement configuré dans /dev/mapper
(comme indiqué par fstab).
Suite aux suggestions du billet de blog, j'ai décidé de voir si le simple redémarrage du service cryptdisks
résoudrait le problème.
$ swapoff -a
$ /etc/init.d/cryptdisks start
$ swapon -a
$ swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 31248892 0 -1
$ ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Jan 9 11:30 control
lrwxrwxrwx 1 root root 7 Jan 9 12:28 cryptswap1 -> ../dm-0
À ce stade, il semble que mon espace d'échange est correctement configuré. Exécuter htop
indique la quantité d’espace de swap appropriée et les commandes de diagnostic que j’utilisais ci-dessus sont toutes positives, notamment blkid
et /dev/mapper/cryptswap1
.
$ Sudo blkid
/dev/nvme0n1p1: LABEL="ESP" UUID="C291-E533" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="63fc7fb9-2ca5-422b-90c7-0db698acdb3c"
/dev/nvme0n1p3: UUID="16F4C1EEF4C1D063" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c04d0838-5570-4bfc-a961-4b9224b8cc0c"
/dev/nvme0n1p4: UUID="0EEE7736EE7714E5" TYPE="ntfs" PARTUUID="4dc6595f-cc9c-4d80-99ab-ffd9cbe3c1d7"
/dev/nvme0n1p5: UUID="aea96d7f-e091-460b-95fd-a34ab884d440" TYPE="swap" PARTUUID="0a7db4e0-17bf-40e3-8675-afec7891afc5"
/dev/nvme0n1p6: UUID="8b2f5c94-db79-4c8d-b5c6-403d912bc0dd" TYPE="ext4" PARTUUID="e373c83f-f992-4e62-a235-1fdd01ac7cf0"
/dev/mapper/cryptswap1: UUID="113abaa7-c122-4d47-a826-181ee6a29627" TYPE="swap"
Les paramètres ont persisté lors du redémarrage et tout semble fonctionner correctement. Donc, autant que je sache, cela a fonctionné. Espérons que cela aide.
Pour m'assurer que ma réponse fonctionnait correctement, j'ai essayé de reproduire le problème sur une instance EC2. J'ai eu le même comportement où courir Sudo ecryptfs-setup-swap
où il serait erroné d'essayer d'exécuter swappon
name__. Cependant, pour une raison quelconque, le mappage de périphérique /dev/dm-0
ne semblait pas être configuré correctement. Les fichiers /etc
semblaient bien fonctionner. J'ai donc simplement essayé de redémarrer l'instance. Cela a semblé fonctionner très bien; Cependant, je vous recommanderais au moins d'inspecter les paramètres de configuration appropriés avant de redémarrer pour vous assurer qu'ils sont correctement configurés afin que le noyau puisse monter le swap lors du redémarrage.
Un simple redémarrage a corrigé ce problème pour moi.