1. 在 MBR 后间隙中

1. 在 MBR 后间隙中

我有一个在启动时安装的加密驱动器。我有三个该设备的密钥:

  • 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。您还需要使用选项skipbs密钥文件偏移量指定文件的开始,就像下面的其他选项一样cryptsetup

详细来说:

  1. 首先检查是否有足够的空间来压缩文件:

    sudo fdisk -l /dev/sdx
    

假设 s 为分区的开始;然后s*512-512应该大于密钥文件的大小(以字节为单位)(假设扇区大小为 512 字节)

至少,您可以使用 gparted 等移动分区的开始位置。

  1. 然后复制你的密钥文件

    sudo dd if=/path/to/my/key/file1 of=/dev/sdx bs=1 seek=1024
    

我在这里使用了 1024,但是 MBR 只有 512 字节,所以如果你确定可以使用 512

  1. /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名称,因为它随时可能更改为其他名称。

您必须使用密钥文件大小选项(我猜是以字节为单位)

相关内容