「cryptsetup luksOpen」と「mount」を実行する単一のコマンドは何ですか?

「cryptsetup luksOpen」と「mount」を実行する単一のコマンドは何ですか?

現在、次のスクリプトがあります。説明したディスクをマウントする必要がある場合は、このコマンドを手動で実行してください。起動時にディスクを自動的にマウントする必要はありません。

disk1="/dev/disk/by-uuid/84ea2a10-abcd-abcd-abcd-06deabcdabcd"
sudo cryptsetup luksOpen "${disk1}" disk1-crypt
sudo mount /dev/mapper/disk1-crypt /mnt/disk1

このディスクをマウントしようとすると、luksOpenコマンドが自動的に実行されるようにLinuxを設定できますか?可能であれば、取り外し時にも閉じてください。

ベストアンサー1

これはエレガントなソリューションではありませんが、お客様のユースケースに適している可能性があります(確かに私が自分で解決した方法です)。

mountコマンドをエイリアスとしてオーバーライドし、引数を確認し、正しい引数を渡すときに必要な操作を実行し、他のものをmount渡すときに実際のコマンドに戻るbashスクリプトを作成できます。

このスクリプトを見てください。

#!/bin/bash

mount_disk1 () {
    disk1="/dev/disk/by-uuid/84ea2a10-abcd-abcd-abcd-06deabcdabcd"
    sudo cryptsetup luksOpen "${disk1}" disk1-crypt
    sudo mount /dev/mapper/disk1-crypt /mnt/disk1
}

[[ "$@" == "disk1" ]] && mount_disk1 \
|| mount "$@"

ここに必要なタスクを実行する機能があります。渡された唯一のものがdisk1関数を実行するだけであれば、そうでなければmountすべての引数を渡す元の関数を実行します。

~/.bashrcこのスクリプトをフォルダーに配置するか、~/.zshrc次を使用してエイリアスを設定できます。

alias mount='<path to script>'

その後、ソースを使用するには端末で実行mountできます。\mount

(再)役立つことを願っています!

おすすめ記事