次の手順に従って、/dev/sda4
(UUID 5da9c956-e544-47e3-bb8e-fe18d9531b2f
)の通常のスワップを16.04の暗号化されたスワップパーティションに変換しました。
古いスワップパーティションを無効にし、ゼロで上書きします。
Sudo swapoff -a
Sudo dd if=/dev/zero of=/dev/sda4 bs=4M
インストールcryptsetup
:
Sudo apt install cryptsetup
/etc/crypttab
を編集して、これを含めます:
# <target name> <source device> <key file> <options>
cryptswap UUID=5da9c956-e544-47e3-bb8e-fe18d9531b2f /dev/urandom swap
/etc/fstab
を編集して古いスワップ行を削除し、これに置き換えます:
# cryptswap on /dev/sda4 configured in /etc/crypttab
/dev/mapper/cryptswap none swap sw 0 0
Cryptdisks設定をリロードします。
Sudo service cryptdisks reload
Sudo service cryptdisks-early reload
新しい暗号化されたスワップを有効にします。
Sudo swapon -a
ただし、この最後の手順で次のエラーメッセージが表示されました。
swapon: stat of /dev/mapper/cryptswap failed: No such file or directory
実際、暗号化されたデバイスファイルは作成されていないようです。
$ ls -la /dev/mapper/
total 0
drwxr-xr-x 2 root root 60 Aug 10 18:50 .
drwxr-xr-x 20 root root 4780 Aug 10 20:16 ..
crw------- 1 root root 10, 236 Aug 10 18:50 control
ここで何がうまくいかず、暗号化されたスワップパーティションを機能させるにはどうすればよいですか?
/etc/crypttab
ファイルに問題があり、すべてが南に移動し、スワップパーティションに問題があります。
最初に、暗号化されたスワップファイルに使用するパーティションをmkswap
する必要があります。 cryptdiskユーティリティは、パーティションがスワップであると想定しているため、そのままにしておく必要があります。
Sudo mkswap /dev/sda4
ここで、これによりパーティションのUUIDが変更されることに注意してください。次のコマンドで新しいものを取得し、それを書き留めます。
Sudo blkid /dev/sda4
ここで、より大きな問題である/etc/crypttab
ファイルに対処する必要があります。次のものに置き換えます。
# <target name> <source device> <key file> <options>
cryptswap UUID=<Your new UUID> /dev/urandom swap,offset=1024
システムを再起動すると、スワップが機能するはずです!
現在、暗号化されたスワップとしてパーティション全体を再作成するようにcryptswap
を設定しています。 UUIDを保持する必要があるため、これはNot™ではありません。スワップを1024ブロックだけオフセットすることにより、UUIDを含む重要なファイルシステム情報を保持します。