「マウント」のみを使用してcryptsetupコンテナをマウントする方法は?

「マウント」のみを使用してcryptsetupコンテナをマウントする方法は?

以下で暗号化されたコンテナを作成しました。

#!/bin/bash
dd if=/dev/zero of=$1 bs=1 count=0 seek=$2
MAPPER=$(mktemp -up /dev/mapper)
LOOPDEV=$(losetup --find --show $1)
cryptsetup luksFormat $LOOPDEV
cryptsetup luksOpen $LOOPDEV $(basename $MAPPER)
mkfs.ext3 $MAPPER
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV

つまり、たとえば、このスクリプトに割り当てられたファイルには、container暗号化されたext3ファイルシステムが含まれますcryptsetup luksFormat

それをインストールするには、現在次のような他のスクリプトを使用してくださいdm.mount container /mnt/decrypted

#!/bin/bash
set -e
MAPPER=$(mktemp -up /dev/mapper)
LOOPDEV=$(losetup --find --show $1)
cryptsetup luksOpen $LOOPDEV $(basename $MAPPER) || losetup -d $LOOPDEV
mount $MAPPER $2 || (
  cryptsetup luksClose $MAPPER
  losetup -d $LOOPDEV
)

それを削除してくださいdm.umount /mnt/decrypted

#!/bin/bash
set -e
MAPPER=$(basename $(mount | grep $1 | gawk ' { print $1 } '))
LOOPDEV=$(cryptsetup status $MAPPER | grep device | gawk ' { print $2 } ')
umount $1
cryptsetup luksClose $MAPPER
losetup -d $LOOPDEV

冗長性が高く、ループデバイスとマッパーを手動で検索する必要があり、どちらも匿名のままにすることができます。mount -o luks ~/container /mnt/decrypted(パスワード入力プロンプト)やumount /mnt/decrypted簡単な方法などの操作を行う方法はありますか?


編集する基本的に私は上記のスクリプトに満足しています(エラーチェックを改善することはできますが...)。

私が書いたスクリプトを使うのと同じマウントオプションをどのように実装しますか-o luks=~/container-o loop ~/loopfile

書き直さなくても実装できますかmount?それとも実装は可能ですか-t luks -o loop ~/container

ベストアンサー1

実際にmount学んだ通りに修正が可能です。しかし、これが電話をかけるmount.ntfs-3g疑問です。ここで修正するか、実際の文書を引用してください。特に、このオプションは処理されたため、もはや必要ありません。mount -t sometypemount.sometype $DEV $MOUNTPOINT $OPTIONS-o looplopsetup

/sbin/mount.crypto_LUKSループユニット部分を取り外し、スイッチのみを使用してください-o loop。これは私のものです/sbin/mount.crypto_LUKS

#!/bin/bash
set -e
if [[ $(mount | grep ${2%%/} | wc -l) -gt 0 ]]; then
  echo "Path $2 is already mounted!" >&2
  exit 9
else
  MAPPER=$(mktemp -up /dev/mapper)
  cryptsetup luksOpen $1 $(basename $MAPPER)
  shift
  mount $MAPPER $* || cryptsetup luksClose $(basename $MAPPER)
fi

実行するmount -o loop ~/container /mnt/decryptedと、mountパスワードを入力するように求められ、コンテナがマウントされ、コンテナが閉じられるとループデバイスが自動的に解放されます。復号化されたファイルシステムをマウントできない場合、コンテナは再びシャットダウンされますが、もちろん変更できます。またはすべてをmount

私はこれを実行して同じ効果を得ることができることを望みまし/sbin/umount.luksたがumount /mnt/decrypted、(を使用しても-t crypto_LUKS)まだ一般的なマウント解除を実行し、コンテナを開いたままにします。umount私のスクリプトを呼び出す方法を見つけたらdm.umount教えてください...現在の名前を手動で調べる必要がumountあるため、直接呼び出しはお勧めできません。少なくともループメカニズムが以前に使用されたことがある場合は、自動的に解放されます。/dev/mappercryptsetup luksClose $MAPPERmount -o loop

おすすめ記事