如何在 dm-crypt+LUKS 容器上设置标签?

如何在 dm-crypt+LUKS 容器上设置标签?

我刚收到一个新的U盘,并在上面设置了2个加密分区。我通过 dm-crypt (LUKS 模式)使用cryptsetup。通过附加的非加密分区,驱动器具有以下结构:

  • /dev/sdb1,加密,隐藏标记为“分区 1”的 ext4 文件系统。
  • /dev/sdb2,加密,隐藏另一个 ext4 文件系统,标记为“分区 2”。
  • /dev/sdb3,清晰可见的 ext4 文件系统,标记为“分区 3”。

由于标签附加到 ext4 文件系统,因此只要分区尚未解密,前两个标签就完全不可见。这意味着,与此同时,LUKS 容器没有标签。当使用 GNOME(自动挂载)时,这尤其令人烦恼,在这种情况下,分区显示为“x GB 加密“ 和 ”y GB 加密“直到我决定解锁它们。

这并不是真正的阻塞问题,但它很烦人,因为我真的很喜欢我的标签,并且希望看到它们出现,即使我的分区仍然加密。

因此,有没有一种方法可以为 dm-crypt+LUKS 容器附加标签,就像我们为 ext4 文件系统附加标签一样? dm-crypt+LUKS 标头是否有一些空间,如果有,我该如何设置标签?

请注意,我不想在解密之前暴露我的 ext4 标签,那会很愚蠢。我想向容器添加其他标签,这些标签可能会在 ext4 标签隐藏时出现。

答案1

要获得永久解决方案,请更改标签容器, 使用:

sudo cryptsetup config /dev/sdb1 --label YOURLABEL

编辑:请注意,标签仅适用于 Luks2 标头。在任何情况下,都可以使用以下命令将 Luks1 标头转换为 Luks2:

sudo cryptsetup convert /dev/sdb1 --type luks2

OBS:请注意,Luks2 header 占用更多空间,这可以减少密钥槽总数。将 Luks2 转换回 Luks1 也是可能的,但有报告称人们在转换回来时遇到了问题或困难。

答案2

这个方法似乎对我有用: http://www.cyberciti.biz/faq/linux-partition-howto-set-labels/

因此,如果您使用 EXT 文件系统(我在这里使用 ext4):

  1. 解锁 LUKS 分区。
  2. 设置解锁文件系统的名称(不是 LUKS 分区)。

    e2label <path> <name>
    

    一般path/dev/mapper/<something>使用 cryptsetup。但就我而言,因为我使用的是 udisk,所以它是/dev/dm-x,其中x是一个数字。

我认为这种方法将信息存储在可移动媒体上,如您所愿,但我仍然没有测试。

答案3

我认为解决方案是编写这样的 udev 规则。

KERNEL=="sd*", ENV{ID_FS_UUID}=="your-sdb1-uuid", ENV{ID_FS_LABEL}="Partition_1", ENV{ID_FS_LABEL_ENC}="Partition_1"
KERNEL=="sd*", ENV{ID_FS_UUID}=="your-sdb2-uuid", ENV{ID_FS_LABEL}="Partition_2", ENV{ID_FS_LABEL_ENC}="Partition_2"

答案4

如果您可以使用 GUI 而不是 CLI 或 API:

当文件系统已挂载时:

  • 使用“磁盘”应用程序(在 Ubuntu 上)。
  • 单击左侧设备列表中的加密设备。
  • 在卷下,单击 Ext 4 分区。
  • 单击设置图标。
  • 单击“编辑文件系统标签”(可能显示“编辑文件系统...”)。
  • 更改名称。

相关内容