私の質問に答えて cryptsetup コンテナをマウントする方法はmount
? unix.SE で、mount -t luks
が script を呼び出すことに気付きましたmount.luks
。これは現在次のようになっています。
#!/bin/bash
set -e
MAPPER=$(mktemp -up /dev/mapper)
cryptsetup luksOpen $1 $(basename $MAPPER)
shift
mount $MAPPER $* || cryptsetup luksClose $(basename $MAPPER)
つまり、cryptsetupが LUKS/dm-crypt で暗号化されたデバイスをマウントするために使用できる未使用のマッパー名を決定します ($*
サブタイプが関係している場合、危険なほど再帰が発生しやすいことはわかっています。これをプロトタイプと考えてください)。パスフレーズ)。
mount -t luks /dev/hda /mnt/decrypted
問題は、 inの結果のエントリが次の/etc/mtab
ようになることです
/dev/mapper/tmp.mpI5ClExf8 on /mnt/decrypted type ext3 (rw,relatime,errors=continue,data=writeback)
そのようなものumount /dev/hda
は失敗しumount /mnt/decrypted
、マッパーをアンマウントするだけで、暗号化されたデバイスを開いたままにします。マッパーもかなり無関係です。私が達成したいのは、エントリーをすることです
/dev/hda on /mnt/decrypted type luks.ext3 (rw,relatime,errors=continue,data=writeback,mapper=/dev/mapper/tmp.mpI5ClExf8)
そのようなものumount
はumount.luks
、次のようなものかもしれません
#!/bin/bash
set -e
umount $1
cryptsetup luksClose $MAPPER
(繰り返しますが、プロトタイプです。これはumount /mnt/decrypted
呼び出しを正しく処理するだけMAPPER
であり、マウント オプションから取得する必要があります)
では、どのようmount.luks
に変更する必要がありますか?直接変更する/etc/mtab
ことは確かに悪い考えです。(たとえばmount -n
、mount -f
これを何とか達成できますか?)