标签: cryptsetup

使用单个密码在启动时解锁多个加密磁盘

我的机器有一个 SSD,我在其中安装了系统和一个 HDD,我将其用作大文件和/或不常使用的文件的存储。两者都是加密的,但我选择对它们使用相同的密码。SSD 安装在 at/和 HDD at /usr/hdd(每个用户都有一个目录,可以从主目录中根据需要进行符号链接)。

当系统启动时,它会立即询问 SSD 的密码,几秒钟后为 HDD 询问密码(它是自动安装的)。鉴于两个密码短语相同,有没有办法将系统配置为只询问一次?

linux cryptsetup disk-encryption

37
推荐指数
2
解决办法
3万
查看次数

列出打开的 dm-crypt LUKS 卷

如果我安装一个简单的循环设备,

losetup -a
Run Code Online (Sandbox Code Playgroud)

给我打开的设备。有类似的可能cryptsetup吗?

luks cryptsetup

25
推荐指数
2
解决办法
2万
查看次数

为什么我的加密 LVM 卷(LUKS 设备)在启动时无法挂载?

我正在尝试按照本指南设置加密卷

一切都已设置,但安装加密卷在启动时失败并显示错误:

fsck.ext4:尝试打开 /dev/mapper/safe_vault 时没有这样的文件或目录 可能不存在的设备?

这是我的设置:

密码表

$ sudo cat /etc/crypttab
safe_vault  /dev/disk/by-uuid/d266ae14-955e-4ee4-9612-326dd09a463b  none    luks
Run Code Online (Sandbox Code Playgroud)

笔记:

uuid来自:

$ sudo blkid /dev/mapper/<my_logical_group>-safe_vault 
/dev/mapper/<my_logical_group>-safe_vault: UUID="d266ae14-955e-4ee4-9612-326dd09a463b" TYPE="crypto_LUKS" 
Run Code Online (Sandbox Code Playgroud)

$ sudo cat /etc/fstab | grep safe_vault
/dev/mapper/safe_vault      /safe-vault     ext4    defaults    0 2
Run Code Online (Sandbox Code Playgroud)

我所做的...

所以我去了开发者的网站,在常见问题常见问题解答中他们说:

检查您的内核中是否有设备映射器和 crypt 目标。“dmsetup targets”的输出应该列出一个“crypt”目标。如果它不存在或命令失败,请将设备映射器和 crypt-target 添加到内核。

所以我做了,结果我没有crypt目标:

$ sudo dmsetup targets
striped          v1.4.1
linear           v1.1.1
error            v1.0.1
Run Code Online (Sandbox Code Playgroud)

问题是我不知道如何添加这样的目标。

我认为这(没有crypt目标)可能会导致crypttab配置在启动时被忽略,因此尝试安装条目fstab失败,因为cryptsetup我的加密卷没有映射到/dev/mapper/safe_vault.

笔记:

可以成功手动映射、挂载和写入加密卷: …

lvm cryptsetup

24
推荐指数
1
解决办法
8万
查看次数

糟糕的一般 dm-crypt (LUKS) 写入性能

我正在调查一个问题,即加密块设备会在写入时造成巨大的性能损失。数小时的互联网阅读和实验并没有让我得到正确的理解,更不用说解决方案了。

简而言之:为什么将 btrfs 放到块设备上时我的写入速度非常快(~170MB/s),而将 dm-crypt/LUKS 放在块设备之间时写入速度会下降(~20MB/s)文件系统和块设备,尽管系统能够维持足够高的加密吞吐量?

设想

/home/schlimmchen/random是一个 4.0GB 的文件,里面装满了之前的数据/dev/urandom

dd if=/dev/urandom of=/home/schlimmchen/Documents/random bs=1M count=4096
Run Code Online (Sandbox Code Playgroud)

阅读速度超快:

$ dd if=/home/schlimmchen/Documents/random of=/dev/null bs=1M
4265841146 bytes (4.3 GB) copied, 6.58036 s, 648 MB/s
$ dd if=/home/schlimmchen/Documents/random of=/dev/null bs=1M
4265841146 bytes (4.3 GB) copied, 0.786102 s, 5.4 GB/s
Run Code Online (Sandbox Code Playgroud)

(第二次,文件显然是从缓存中读取的)。

未加密的 btrfs

设备直接用btrfs格式化(块设备上没有分区表)。

$ sudo mkfs.btrfs /dev/sdf
$ sudo mount /dev/sdf /mnt
$ sudo chmod 777 /mnt
Run Code Online (Sandbox Code Playgroud)

写入速度高达 ~170MB/s:

$ dd if=/home/schlimmchen/Documents/random of=/mnt/dd-test1 bs=1M conv=fsync
4265841146 bytes …
Run Code Online (Sandbox Code Playgroud)

performance dm-crypt btrfs luks cryptsetup

24
推荐指数
1
解决办法
9578
查看次数

如何缩小 LUKS 分区,`cryptsetup resize` 有什么作用?

我正在调整包含单个 ext4 文件系统(没有 LVM 或其他东西)的 LUKS 加密分区的大小。该cryptsetup FAQ建议删除旧的分区并重新创建它,但是,像浪费了很多时间的声音。因此,我想手动进行,仔细调整分区大小。

到目前为止,我认为我需要这样做:

  1. 创建文件系统的(加密)备份。重要的!在执行以下任务时,您不会是第一个丢失数据的人。
  2. 卸载现有的 ext4 文件系统(例如通过引导到 Live CD)。如果从 Live CD 启动,请使用以下命令挂载加密分区cryptsetup luksOpen /dev/sdXY ExistingExt4
  3. 调整现有 ext4 文件系统的大小
  4. cryptsetup resize /dev/mapper/ExistingExt4 -b $SECTORS
  5. 使用关闭/“卸载”LUKS 分区 cryptsetup luksClose ExistingExt4
  6. 缩小分区大小。

以上步骤是否正确?

在第 4 步中,我应该选择$SECTORS什么?这一步有必要吗?cryptsetup手册是不是真正描述性的resize选项:

resize <name>
    resizes an active mapping <name>.
    If --size (in sectors) is not specified, the size of the underlying
    block device is used.
Run Code Online (Sandbox Code Playgroud)

最后,如果我将 ext4 分区缩小 15 GiB,我是否可以安全地假设可以使用parted …

partition encryption ext4 luks cryptsetup

19
推荐指数
2
解决办法
3万
查看次数

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

我刚收到一个新的 USB 闪存驱动器,并在其上设置了 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 标签隐藏时出现。

partition gnome dm-crypt luks cryptsetup

17
推荐指数
2
解决办法
9727
查看次数

无法关闭 Luks 分区

出于备份目的,我“快照”了一个 LVM 分区。这个分区是加密的,所以我打开了这个 Luks 分区(快照)来做我的备份。

问题是我忘记删除快照,因此它达到了100%的使用率。

当我尝试删除快照时:

lvremove /dev/mapper/vgx-LogVolDBSnapshot
/dev/vgx/LogVolDBSnapshot: read failed after 0 of 4096 at 375809572864: Input/output error
/dev/vgx/LogVolDBSnapshot: read failed after 0 of 4096 at 375809630208: Input/output error
/dev/vgx/LogVolDBSnapshot: read failed after 0 of 4096 at 0: Input/output error
/dev/vgx/LogVolDBSnapshot: read failed after 0 of 4096 at 4096: Input/output error
/dev/mapper/SnapshotDecrypted: read failed after 0 of 4096 at 375807475712: Input/output error
/dev/mapper/SnapshotDecrypted: read failed after 0 of 4096 at 375807533056: Input/output error
/dev/mapper/SnapshotDecrypted: read failed after 0 …
Run Code Online (Sandbox Code Playgroud)

partition io lvm cryptsetup disk

13
推荐指数
1
解决办法
4766
查看次数

独立验证TRIM确实适用于SSD

我有一个luksOpen的LUKS分区:/dev/sda1--allow-discards

cryptsetup --allow-discards luksOpen /dev/sda1 root
Run Code Online (Sandbox Code Playgroud)

然后我ext4使用discard选项挂载文件系统:

grep /dev/mapper/root /proc/mounts
/dev/mapper/root / ext4 ro,relatime,block_validity,discard,delalloc,barrier,user_xattr,acl 0 0
Run Code Online (Sandbox Code Playgroud)

然后我修剪已安装分区上的可用空间:

fstrim -v /
Run Code Online (Sandbox Code Playgroud)

df,我看到/有80%的可用空间。这意味着在 上/dev/sda1,磁盘的 80% 是二进制零。

如果我克隆图像 cat

cat /dev/sda1 > sda1.img
Run Code Online (Sandbox Code Playgroud)

并使用 压缩图像xz,我希望磁盘上的所有零都被压缩。由于磁盘上 20% 的数据是加密的,因此它看起来应该是随机的并且是不可压缩的。因此,xz 压缩的图像应该是近似的。原始尺寸的 20%。

但是,生成的 xz 压缩图像与原始原始图像的大小大致相同。

我的推理正确吗?

为什么我的理论没有转化为实践?

ssd ext4 cryptsetup trim fstrim

13
推荐指数
2
解决办法
2832
查看次数

如何确定 LUKS 分区正在使用什么加密?

什么命令可用于确定 LUKS 分区上使用的加密(所有相关信息、初始化向量、生成方案、操作模式和分组密码原语)?

partition encryption luks cryptsetup

12
推荐指数
2
解决办法
2万
查看次数

如果 LUKS 不存储分区大小,`cryptsetup resize` 会做什么?

LUKS/ dm-crypt/ cryptsetup FAQ页面说:

2.15 我可以调整 dm-crypt 或 LUKS 分区的大小吗?

是的,您可以,因为 dm-crypt 和 LUKS 都不存储分区大小。

我一头雾水:

  1. 如果没有存储大小信息,什么是“调整大小”?

  2. 如何在加密卷的打开/关闭过程中记住“调整大小”?

dm-crypt luks cryptsetup volume device-mapper

12
推荐指数
1
解决办法
7126
查看次数