我在 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
答案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
,但由于它本身是加密的,所以我觉得这不是一个好主意。