我的机器有一个 SSD,我在其中安装了系统和一个 HDD,我将其用作大文件和/或不常使用的文件的存储。两者都是加密的,但我选择对它们使用相同的密码。SSD 安装在 at/和 HDD at /usr/hdd(每个用户都有一个目录,可以从主目录中根据需要进行符号链接)。
当系统启动时,它会立即询问 SSD 的密码,几秒钟后为 HDD 询问密码(它是自动安装的)。鉴于两个密码短语相同,有没有办法将系统配置为只询问一次?
我正在尝试按照本指南设置加密卷
一切都已设置,但安装加密卷在启动时失败并显示错误:
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.
笔记:
可以成功手动映射、挂载和写入加密卷: …
我正在调查一个问题,即加密块设备会在写入时造成巨大的性能损失。数小时的互联网阅读和实验并没有让我得到正确的理解,更不用说解决方案了。
简而言之:为什么将 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格式化(块设备上没有分区表)。
$ 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) 我正在调整包含单个 ext4 文件系统(没有 LVM 或其他东西)的 LUKS 加密分区的大小。该cryptsetup FAQ建议删除旧的分区并重新创建它,但是,像浪费了很多时间的声音。因此,我想手动进行,仔细调整分区大小。
到目前为止,我认为我需要这样做:
cryptsetup luksOpen /dev/sdXY ExistingExt4cryptsetup resize /dev/mapper/ExistingExt4 -b $SECTORScryptsetup luksClose ExistingExt4以上步骤是否正确?
在第 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 …
我刚收到一个新的 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 标签隐藏时出现。
出于备份目的,我“快照”了一个 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) 我有一个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 压缩图像与原始原始图像的大小大致相同。
我的推理正确吗?
为什么我的理论没有转化为实践?
什么命令可用于确定 LUKS 分区上使用的加密(所有相关信息、初始化向量、生成方案、操作模式和分组密码原语)?
在LUKS/ dm-crypt/ cryptsetup FAQ页面说:
2.15 我可以调整 dm-crypt 或 LUKS 分区的大小吗?
是的,您可以,因为 dm-crypt 和 LUKS 都不存储分区大小。
我一头雾水:
如果没有存储大小信息,什么是“调整大小”?
如何在加密卷的打开/关闭过程中记住“调整大小”?