systemd:访问时解密 luks 设备

systemd:访问时解密 luks 设备

我有一个带有 LUKS 加密分区的外部驱动器。由于该设备是外部 USB 设备,我并不总是需要它,所以我只想按需解密和自动挂载。我可以轻松地使用 in 在解密的分区上自动挂载文件系统x-systemd.automount/etc/fstab但是,我无法按需解密分区。我尝试了两种不同的方法:

  1. 我添加了行

    mnt-usb-crypt UUID=<UUID> /path/to/keyfile luks
    

    /etc/crypttab。但是,现在分区是总是解密,即使我没有在中指定挂载点/etc/fstab

  2. 我修改/etc/crypttab并添加了noauto选项:

    mnt-usb-crypt UUID=<UUID> /path/to/keyfile luks,noauto
    

    现在,根本没有 systemd 设备,预期的dev-mapper-mnt-usb.device不存在。

根据的手册页crypttab,没有类似x-systemd.automount加密设备的选项。

是否有可能配置 systemd 仅在访问时解密设备?

答案1

问题中的选项 2 确实有效,但您必须在和中对加密设备使用相同的/etc/crypttab名称/etc/fstab

/etc/crypttab如下所示:

# <name>        <device>            <password>      <options>
mnt-usb-crypt   UUID=<device-uuid>  /path/to/key    luks,noauto

/etc/fstab如下所示:

# <file system>             <dir>       <type>  <options>                             <dump>    <pass>
/dev/mapper/mnt-usb-crypt   /mnt/usb    btrfs   defaults,noauto,x-systemd.automount   0         2

请注意,如果您使用解密文件系统的 UUID 而不是路径/dev/mapper/mnt-usb-crypt,则 systemd 无法确定要解密的设备。但如果您使用上述设备名称,则设备将按预期自动解密和挂载。

一个不同的解决方案是明确指定要求用于 systemd crypt 设备。

相关内容