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


12

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

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

因为标签是贴在ext4文件系统上的,所以只要分区未被解密,前两个标签就完全不可见。这意味着,与此同时,LUKS容器没有标签。使用GNOME(自动挂载)时,这尤其令人讨厌,在这种情况下,分区显示为“ x GB加密 ”和“ y GB加密 ”,直到我决定将其解锁。

这并不是一个真正的阻塞问题,但是很烦人,因为我真的很喜欢我的标签,并且希望即使在我的分区仍被加密的情况下也能看到它们。

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

请注意,我不想在解密之前公开ext4标签,这很愚蠢。我想在容器中添加其他标签,这些标签可能在ext4标签被隐藏时出现。


USB驱动器是否已用MBR或GPT分区?我相信您可以标记GPT分区,这可能会对您有所帮助。
garethTheRed 2015年

1
我撒了谎(部分说了)-我在USB记忆棒上创建了一个GPT分区,并用来gdisk给该分区打上标签。然后,当我在该分区上创建文件系统时,GNOME仅将其识别为“ 501 MB卷”。因此,尽管可以对其进行标记,但是GNOME不能识别分区标签。仅文件系统标签。
garethTheRed

1
@garethTheRed您与我同时检查了!我使用GPT重新格式化了驱动器(我使用了fdisk默认的MBR模式),并且分区名称未出现在GNOME中。但是,这个问题并不是真正针对GNOME的,尽管GPT名称技巧在较低层次上起作用,但这仍然可能是我所描述问题的有效解决方案。我将再等一会,看看是否有人在LUKS级别上有解决方案,但是我认为GPT分区名称可能是有效答案的内容。
约翰·史密斯

1
LUKS卷没有名称。仅在映射设备时才为它们分配一个,直到您提供密钥后才能发生。您唯一的解决方案是找到一种方法,告诉Gnome有关该卷“未物理连接”的某个名称,或为包含的卷(例如分区)命名。PS:这个问题在这里很好,由于与安全性无关,所以它在信息安全性上是没有意义的,它与使用碰巧要做与安全性有关的最终用户工具有关。
吉尔(Gilles)“所以,别再邪恶了”

如果设置分区标签,则会在中获得一个名称正确的符号链接/dev/disk/by-partlabel。我知道这对于那些看起来并不在那里的工具没有帮助,但是它确实提供了可以在脚本等中使用的稳定路径。
asciiphil,2013年

Answers:


2

我认为解决方案是编写这样的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"

1
奇迹般有效!即使我更喜欢将信息存储在可移动媒体上的解决方案,但恐怕我还是必须坚持某些系统特定的配置。此外,一旦GNOME参与进来,这个问题就变得非常具体:我很高兴有人找到了一个不依赖其行为的解决方案。
约翰·史密斯


2

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

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

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

    e2label <path> <name>
    

    pathgeneraly是/dev/mapper/<something>,如果使用cryptsetup。但就我而言,因为我使用的是udisk,所以它是/dev/dm-x,数字在哪里x

我认为这种方法可以根据需要将信息存储在可移动媒体上,但是我仍然没有进行测试。


2
谢谢,但是不幸的是,这不能用于LUKS容器,因为LUKS容器隐藏了有关其内部文件系统(包括其标签)的所有信息。这里的想法是为LUKS容器命名,而不是为其内部隐藏名称,以便即使容器仍处于加密状态也可以显示该名称:p(请参阅我的第二段)
John WH Smith

抱歉,我想您想标记内部文件系统,而不是LUKS分区。也许是因为这是我在遇到这个问题时想要做的。= P
某人

0

我发现@kristóf-szalay和@someone的答案组合是我想要的,并且添加了一些注释。

特别:

sudo cryptsetup config /dev/sdb1 --label YOURLABEL

ITO原来的问题,这将使DM中的图标与YOURLABEL一起显示

如果要通过双击打开地穴,它将被安装为

/media/user/uuid
eg:
/media/fred/e54e89a-.....

如果您在CLI中,那又可能引起混乱。

通过做:

e2label <path> <name>

该名称将使安装的路径采用< 名称 > 的值:

/ media / fred / 名称

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.