暗号化されたスワップの作成に問題があります。
私はこれらの手順に従います
Sudo swapoff -a
/etc/crypttab
の既存のスワップ構成をコメントします/etc/fstab
の既存のスワップ構成をコメントしますSudo mkswap /dev/sda5
/etc/initramfs-tools/conf.d/resume
を新しいUUIDで更新しますSudo update-initramfs -u
Sudo swapon /dev/sda5
Sudo ecryptfs-setup-swap
そしてその時点で私はこの問題に遭遇します
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
暗号化されたスワップスペースをセットアップしようとしたときに同じ問題が発生し、解決策を見つけたと思います。始めに、研究で使用したリンクをいくつか紹介します。
ecryptfs-setup-swap
を初めて実行したとき(インストール時に既にスワップスペースを設定していたため、mkswap
を実行する必要はなかったので、スワップスペースができるというエラーメッセージが表示されました。正しく取り付けられていません。
$ 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
コマンドを再度実行しようとすると、スワップスペースがなくなったというメッセージが表示されました。
$ 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
Ecryptコマンドの最初の実行からのエラーメッセージを再確認すると、/dev/mapper/cryptswap1
が存在しないようです。
$ ls /dev/mapper/
control
前述の blog の投稿に基づいて、スワップスペースが特定されなかった理由を示す証拠を求めて、システムファイルを探し回ることに決めました。ブログでは、ハードドライブパーティションの命名規則の変更がecryptfsの問題を引き起こし、UUIDベースの識別子の使用への切り替えがより一貫していると述べています。
$ 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"
スワップ領域は/dev/nvme0n1p5
であり、UUID aea96d7f...
を持っていることに注意してください。次に、/etc/fstab
と/etc/crypttab
を見て、スワップ構成がどのように見えるかを確認します。
$ 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
ここで注目に値するものがいくつかあるので、一度に1つずつ説明します。
fstab
を適切に変更して、古いスワップスペースを無効にし(スワップUUIDでコメントアウト)、暗号化されたスペースを有効にしているようです。最後に、swapon
をチェックして、スワップスペースが見つかっているかどうかを確認しました。
$ swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 31248892 0 -1
(正しいサイズの)スワップスペースを指しているように見えますが、そのスワップスペースは/dev/mapper
(fstabで参照)内で適切にセットアップされていません。
ブログ投稿の提案に従って、cryptdisks
サービスを再起動するだけで問題が解決するかどうかを確認することにしました。
$ 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
この時点で、seemsスワップスペースが適切に構成されているようです。 htop
を実行すると、適切な量のスワップ領域が表示され、上記で使用していた診断コマンドがすべてプラスになります。特にblkid
は/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"
再起動後も設定は維持され、すべてが正常に実行されているように見えるので、私が知る限り、これは機能しました。これがお役に立てば幸いです。
答えが適切に機能することを確認するために、EC2インスタンスで問題を再現しようとしました。 Sudo ecryptfs-setup-swap
を実行するとswappon
を実行しようとするとエラーになる同じ動作がありました。ただし、何らかの理由でデバイスマッピング/dev/dm-0
が適切にセットアップされていないようです。 /etc
ファイルは問題ないように思えたので、インスタンスを単純に再起動してみました。これはうまくいくように見えました。ただし、再起動する前に少なくとも適切な構成設定を調べて、再起動時にカーネルがスワップをマウントできるように正しく設定されていることを確認することをお勧めします。
簡単な再起動でこの問題は修正されました。