启动时挂载 LUKS 加密硬盘

启动时挂载 LUKS 加密硬盘

我在 SSD 设备上安装了 Xubuntu 14.04(在安装过程中已正确加密),另外我有一个带有加密分区的硬盘,其中包含额外的数据,我想将其安装到/mnt/硬盘。为了制作这些,我遵循了以下步骤:

(之前我按照这篇文章使用 LUKS 加密了磁盘http://www.marclewis.com/2011/04/02/luks-encrypted-disks-under-ubuntu-1010/

检查 UUID

sudo blkid 
/dev/sda1: UUID="b3024cc1-93d1-439f-80ce-1b1ceeafda1e" TYPE="crypto_LUKS"

制作密钥文件使用正确的密码并将其保存在我的(也是加密的)。

sudo dd if=/dev/urandom of=/home/[USERNAME]/.keyfiles/key_luks bs=1024 count=4
sudo chmod 0400 .keyfiles/key_luks

添加密钥

sudo cryptsetup luksAddKey /dev/sda1 /home/zeugor/.keyfiles/key_luks

/etc/crypttab 中的新条目

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e /home/[USERNAME]/.keyfiles/key_luks luks

更新初始 ramdisk

sudo update-initramfs -u -k all

然后,为了测试它,我使用以下命令启动 cryptdisks:

sudo cryptdisks_start hddencrypted 
 * Starting crypto disk...                                                       
 * hddencrypted (starting)..
 * hddencrypted (started)... 

去检查加密被映射为:

ls /dev/mapper/
control  hddencrypted

创建挂载点

mkdir /mnt/hdd

/etc/fstab 中的新条目

/dev/mapper/hddencrypted /mnt/hdd ext4 defaults 0 2

无需重启即可验证 fstab:

sudo mount -a

在启动时挂载加密分区

现在我已按照建议将其挂载到 /mnt/hdd 中。但我希望在重启后自动完成此操作。但在我登录之前,我收到此错误:

the disk drive for /mnt/hdd is not ready yet or not permit

这一切让我想到在/etc/crypttab中无法访问位于我的(其他加密分区)。我不知道系统解密和安装单元的顺序。我的应该在我的硬盘之前解密,以便获得读取密钥文件的权限。

我将非常感激任何关于为什么会发生这种情况的见解。

更新: 如果我找到密钥文件在/启动(没有加密),而不是在我的/home/[用户名](加密)/dev/sda1并更新在/etc/crypttab中在启动时完美安装。

答案1

/boot 目录中的密钥文件可以被您机器上启动的任何其他操作系统读取,只要该系统能够挂载 /boot 所在的文件系统。因此,加密实际上并不有效。此论点适用于未加密文件系统上的所有密钥文件位置。

为了避免密钥文件位于未加密的文件系统上,可以使用密码进行解密。为设备创建一个强密码。然后,将 /etc/crypttab 中的行更改为

hddencrypted UUID=b3024cc1-93d1-439f-80ce-1b1ceeafda1e none luks

并保持 /etc/fstab 中的条目不变。Ubuntu 14.04/16.04/18.04 会在启动时要求您输入密码。

答案2

如果你将 fstab 中的“defaults”替换为

rw,suid,dev,exec,auto,user,async,relatime

(根据手册页,除了“用户”之外,它与“默认值”相同。)

答案3

确保列出了 hddencrypted 分区主分区,在和中/etc/fstab/etc/crypttab正如crypttab (5)手册页所述:

crypttab 中记录的顺序很重要,因为初始化脚本会按顺序迭代 crypttab 来执行其工作。

您还可以尝试将noearly选项添加到后一个分区/etc/crypttab

hddencrypted UUID=<...> /home/[USERNAME]/.keyfiles/key_luks luks,noearly

CRYPTDISKS_MOUNT在正常情况下,您可以通过将其添加到来指示必须先挂载主分区 /etc/default/cryptdisks,但由于它本身是加密的,所以我觉得这不是一个好主意。

相关内容