Mar*_*ter 5 pipe process-substitution loop-device cryptsetup
我正在使用cryptsetup分离的标头。为此,我使用--header 参数来指定头文件。我可以使用以下方式打开我的设备:
cryptsetup luksOpen /dev/sdb1 sdb1 --header LUKS-HEADER
Run Code Online (Sandbox Code Playgroud)
但我需要提供标头,而不是作为文件,而是作为另一个命令的输出(我cat在这里使用命令进行说明)
cryptsetup luksOpen /dev/sdb1 sdb1 --header <(cat LUKS-HEADER)
Run Code Online (Sandbox Code Playgroud)
但这不起作用。我收到以下错误:
Attaching loopback device failed (loop device with autoclear flag is required).
Run Code Online (Sandbox Code Playgroud)
这很令人困惑,因为类似的方法适用于提供密钥,即
cryptsetup luksOpen /dev/sdb1 sdb1 --header LUKS-HEADER --key-file <(printf asdf)
Run Code Online (Sandbox Code Playgroud)
上面的命令工作正常(我使用“asdf”作为示例密码)。
如何--header从管道/另一个进程向选项提供参数?
赏金更新:
接受的答案有效,即我可以使用:
cat LUKS-HEADER > /dev/ram0
cryptsetup luksDump /dev/ram0
Run Code Online (Sandbox Code Playgroud)
但是,我需要一个如何使用进程替换的解决方案,即。目前,进程替换不起作用:
cryptsetup luksDump <(cat LUKS-HEADER)
Run Code Online (Sandbox Code Playgroud)
它给出了错误:
Attaching loopback device failed (loop device with autoclear flag is required).
Run Code Online (Sandbox Code Playgroud)
mik*_*erv -1
我认为无论你在做什么,<(cat HEADER)实际上并没有按照你的想法去做。我相信这一点的原因如下:
Run Code Online (Sandbox Code Playgroud)luksOpen <device> <name> (old syntax)成功验证提供的密码后,打开 LUKS 设备
device并设置映射。name如果未通过 提供密码--key-file,该命令会以交互方式提示输入。环回设备使用注意事项
Cryptsetup 通常直接在块设备(磁盘分区或 LVM 卷)上使用。但是,如果设备参数是一个文件,
cryptsetup则尝试分配一个环回设备并将其映射到该文件中。此模式需要 Linux 内核 2.6.25 或更高版本,支持循环自动清除标志(循环设备在上次关闭时自动清除)。当然,您始终可以手动将文件映射到循环设备。
不知何故,似乎您生成的参数比您打算生成的参数多,或者比您打算生成的参数少,因为,看起来,是以某种方式将您的设备参数cryptsetup关联为文件而不是块设备,因此尝试挂载它通过环回。
| 归档时间: |
|
| 查看次数: |
3722 次 |
| 最近记录: |