我有一个在启动时安装的加密驱动器。我有三个该设备的密钥:
- Slot1:密码
- 插槽2:文件1
- 插槽3:文件2
对于无人值守启动(避免输入密码),我将其file1
存储在启动计算机之前插入计算机的 USB 驱动器上。
我想在系统启动时移除 USB 驱动器(只需拔下)并保持加密驱动器打开。
但是,只有正确卸载 USB 驱动器后,驱动器才会保持打开状态。如果我直接拔下 USB 驱动器,加密驱动器就会再次“关闭”。
/etc/fstab
UUID=<UUID> /mnt/usb ext4 defaults,nofail,x-systemd.device-timeout=1
/dev/mapper/cryptdrive /mnt/cryptdrive ext4 defaults,rw,nofail 0 0
在 Ubuntu 18.04 上使用 Luks 加密驱动器
答案1
1. 在 MBR 后间隙中
如果你的文件1足够小,你可以把它挤在后MBR如果使用 MBR,则 MBR 之后和第一个分区开始之前的间隙。
这是一个更具技术性的挑战,因为您必须使用正确的参数来摆弄命令dd
。您还需要使用选项skip
bs
密钥文件偏移量指定文件的开始,就像下面的其他选项一样cryptsetup
。
详细来说:
首先检查是否有足够的空间来压缩文件:
sudo fdisk -l /dev/sdx
假设 s 为分区的开始;然后s*512-512
应该大于密钥文件的大小(以字节为单位)(假设扇区大小为 512 字节)
至少,您可以使用 gparted 等移动分区的开始位置。
然后复制你的密钥文件
sudo dd if=/path/to/my/key/file1 of=/dev/sdx bs=1 seek=1024
我在这里使用了 1024,但是 MBR 只有 512 字节,所以如果你确定可以使用 512
在
/etc/crypttab
cryptdrive UUID=<some UUID> /dev/disk/by-id/usb-_USB_DISK_2.0_11111111-0:0 luks,keyfile-offset=1024,keyfile-size=10222
再次,您需要调整所有参数:
- keyfile-offset 是您之前使用过的,可以是 1024 或 512 或其他。
- keyfile-size 是密钥文件的大小(以字节为单位)
- 插入后,您可以在 /dev/disk/by-id 中找到 USB 密钥的 ID。
在没有重要数据的 USB 密钥上尝试此操作,以防出现问题或进行备份。
2. 原始分区
这其他解决方案是将文件存储在原始分区 未格式化使用文件系统。
假设你向 USB 密钥添加第二个分区:/dev/sdx2
然后将文件复制到该分区:
sudo dd if=/path/to/my/key/file1 of=/dev/sdx2
您无需输入任何内容即可/etc/fstab
挂载任何文件系统,因为没有文件系统。最好确保没有其他分区也自动挂载在该密钥上。您可以noauto
使用/etc/fstab
只需将分区直接传递给密码设置与/etc/crypttab
cryptdrive UUID=<some UUID> /dev/disk/by-partuuid/<some-uuid> luks,keyfile-size=10222
如果使用谷氨酰胺磷酸酶,否则使用 id
cryptdrive UUID=<some UUID> /dev/disk/by-id/usb-_USB_DISK_2.0_11111111-0:0-part2 luks,keyfile-size=10222
您需要深入研究/dev/disk/by-id
以找到分区的正确名称。不要使用该/dev/sdx2
名称,因为它随时可能更改为其他名称。
您必须使用密钥文件大小选项(我猜是以字节为单位)