在启动时装载LUKS加密的硬盘驱动器

我在SSD设备上安装了Xubuntu 14.04(安装期间HOME已正确加密),此外我还有一个带有额外数据的加密分区的硬盘,我想在/ mnt / hdd中安装。 为了制作这些,我按照下面的步骤:

(之前我在这篇post后用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" 

使用正确的密码创建密钥文件并将其保存在我的HOME (也是加密的)中。

 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 

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

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

要检查hddencrypted是否已映射:

 ls /dev/mapper/ control hddencrypted 

创建一个挂载点

 mkdir /mnt/hdd 

/ etc / fstab中的新条目

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

无需重启即可validationfstab:

 sudo mount -a 

在加载时挂载加密分区

现在我按照我的建议将它挂载在/ mnt / hdd中。 但我希望在重启后自动生成这个。 但在我登录之前,我收到此错误:

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

所有这些让我觉得/ etc / crypttab无法访问位于我的HOME (其他加密分区)中的密钥文件。 我不知道系统遵循未加密和安装单位的顺序。 在我的HDD之前,我的HOME应该是未加密的,以便访问读取密钥文件。

如果发生这种情况,我将不胜感激。

更新:如果我在/ boot (未加密)中找到密钥文件 ,而不是在/ home / [USERNAME] (加密) / dev / sda1中更新/ etc / crypttab中的条目,则在启动时完全挂载。

/ boot目录中的密钥文件可以由您的计算机上启动的任何其他操作系统读取,该系统能够在/ boot所在的文件系统上挂载。 因此,加密并不真正有效。 此参数适用于未加密文件系统上的所有密钥文件位置。

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

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

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

如果用fstab替换“defaults”,它是否有效

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

(根据mount man页面,除了“user”之外,它与“defaults”相同。)

确保在/etc/fstab/etc/crypttab的主分区之后列出了hddencrypted分区。 正如crypttab (5)页所述:

crypttab中的记录顺序非常重要,因为init脚本会依次遍历crypttab来执行其操作。

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

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

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