次の手順に従って、ファイルシステムを内部に含む暗号化されたファイルを作成します。
1.指定されたサイズのファイルを作成するより速い方法は次のとおりです。
fallocate -l 128M /path/to/file
2. dm-cryptツールを使用して、ファイル内にLUKS(Linux Unified Key Setup)パーティションを作成します。
cryptsetup -y luksFormat /path/to/file
ファイルが暗号化されたコンテナであることを確認できます。
/path/to/file: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 7e2af5a1-3fab-43ea-a073-3b9cc6073f00
3.暗号化されたコンテナを開きます。
cryptsetup luksOpen /path/to/file data
data
デバイスマッパーのボリューム名です。他の名前を選択できます。
これにより、LUKSデバイスが開き、指定した名前にマップされます/dev/mapper/data
。この例では、ファイルを作成します。
4.ext4
このデバイスにファイルシステムを作成します。
mkfs.ext4 /dev/mapper/data
5.次に、マウントポイントを作成します。
mkdir /path/to/mount
6.そしてそこにデバイスをマウントします:
mount /dev/mapper/data /path/to/mount
7.ファイルシステムをアンマウントしてLUKSデバイスを閉じるには:
umount /path/to/mount
cryptsetup luksClose data
これで、ext4ファイルシステムを内部に含むLUKSコンテナーが暗号化されました。使用する場合は、ステップ3と6を繰り返します。終了したら、ステップ7を呼び出します。
この記事は私にとって非常に役に立ちました。
また、ある日、コンテナのスペースが不足します。暗号化されたコンテナファイルのサイズが128 MBで、そのサイズを512 MBに増やしたいとします。容量を増やすには、次の手順を実行します。
1. LUKSデバイスをアンマウントして閉じます(上記リストのステップ7を参照)。
2.コンテナファイルのサイズを大きくします。
dd if=/dev/zero of=/path/to/file bs=384M count=1 oflag=append conv=notrunc
3. LUKSデバイスを開きます。
cryptsetup luksOpen /path/to/file data
4.コンテナファイルのサイズに合わせてLUKSデバイスのサイズを変更します。manページから:
--size(セクター単位)が指定されていない場合、基盤となるブロックデバイスのサイズが使用されます。
したがって、次のことができます。
cryptsetup resize data
5.次に、ext4ファイルシステムのサイズを変更します。
e2fsck -f /dev/mapper/data
resize2fs /dev/mapper/data
6.これで、ファイルシステムをマウントして戻すことができます。
mount /dev/mapper/data /path/to/mount