执行“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

是否可以设置 Linux,使其知道在我尝试挂载此磁盘时自动执行 luksOpen 命令?如果可能的话,卸载时也请关闭。

答案1

这不是一个优雅的解决方案,但它可能适合您的用例(这绝对是我自己解决它的方式)。

您可以创建一个 bash 脚本,将mount命令覆盖为别名,检查参数并在传递该确切参数时执行所需的操作,mount在传递其他任何内容时回退到实际命令。

看看这个脚本:

#!/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在终端中运行。

希望它(再次)有帮助!

相关内容